Background]
If you have just entered the Web Front-end R & D field and want to try it out, read this article;
If you have been developing Web product front-end for two or three years, you cannot find the path to improvement. read this article;
If you are a front-end developer in year 45 and have no difficulties, you will be able to find your lonely master. Let's take a look at this article;
Web Front-end R & D engineers are a job in Chaoyang in China. They have been in this profession since, but it was only in. There is no formal education in this field, and there is no internal theoretical guidance. Almost all people engaged in this profession are self-taught. Self-taught, a difficult road, I also come along this way. It has been nine years since we started to engage in Web Front-end R & D in 2002. Now, looking back, we have taken a lot of detours. If you can make those later users take less detours, it's a great deal!
[Preface]
The so-called genius is just faster than ordinary people to master the skills and complete the work; as long as you find the right direction, and with enough time, you can embark on the other side of success.
This article divides Web Front-end R & D programming capabilities into eight levels, each of which lists the corresponding features and the method for improving the level through breaking, I hope that everyone who is reading this article will first accurately locate their level (instead of comparing your current level with the level of your current level, so as to avoid detours ), refer to the breakthrough method.
The so-called level is just an attitude towards your needs: being able to complete, be able to complete perfectly, and be able to complete beyond expectation. A solid programming skill with a perfect attitude is your programming level.
Remember to be confused. The level is enough. Then, you can understand what is in that level. If you are enlightened, you will be enlightened. If you are not enlightened, you can just calm down and put in time.
1. [Getting Started]
Able to solve some problems. Have a certain degree of Foundation (such as the most common HTML tags and their attributes, events, methods, the most common CSS attributes, and basic JavaScript programming capabilities ), able to meet some simple Web Front-end R & D requirements.
For example, delete a character specified in a string.
var str="www.baidu.com/?page";str=str.replace('?page',"");alert(str);str=str.substring(0,str.indexOf("/"));alert(str);
First, do not blame the code for its correctness and rigor. After all, every programmer has such a process. Second, there may be no major faults and flaws in the two codes in this instance, but it can solve the problem (delete the specified characters), which is the feature of this level.
Another example:
// The current computing system is the day of the week var STR = ""; var week = new date (). getday (); If (week = 0) {STR = "Today is Sunday";} else if (week = 1) {STR = "Today is Monday ";} else if (week = 2) {STR = "Today is Tuesday";} else if (week = 3) {STR = "Today is Wednesday ";} else if (week = 4) {STR = "Today is Thursday";} else if (week = 5) {STR = "Today is Friday ";} else if (week = 6) {STR = "Today is Saturday";} // or better var str1 = "Today is the week"; var week = new date (). getday (); Switch (week) {Case 0: str1 + = ""; break; Case 1: str1 + = "1"; break; Case 2: str1 + = "2"; break; Case 3: str1 + = "3"; break; Case 4: str1 + = "4"; break; Case 5: str1 + = "5"; break; Case 6: str1 + = "6"; break;} alert (STR); alert (str1 );
The entry stage is the only way for every programmer. As long as you get started, you are on the road. The so-called "Master leads the door, practice depends on the individual", with the foundation of this "entry", you can explore the way forward.
[Advanced path]
Read every method/attribute in the help manual for coding JavaScript, HTML, CSS, and so on several times! Only by laying a good foundation can we continue smoothly in the future. Refer to these help documents to try to write flawless code.
We recommend that you not only take a look at these encoding documents during the getting-started period, but also take a look at each stage in the future. The most basic things are often the most powerful things, sometimes it can bring you unexpected gains.
2. [boarding Ceremony]
Able to solve problems correctly. Whether you search for the network or transform some finished code (jquery/dojo/EXT/Yui) cases, you can fulfill your requirements without error.
Take the preceding "string pruning" code as an example:
var str="www.baidu.com/?page";str=str.replace(/?page/,"");alert(str);
Solving the problem is no longer a problem for the "boarding" stage. The solution provided at this level cannot be exposed. The above code is used as an example: although the first parameter of the replace method supports strings, the best type is regular expression;
VaR A = new array ("day", "one", "two", "three", "four", "five", "Six "); vaR week = new date (). getday (); var STR = "Today is the week" + A [week]; alert (STR );
Compared with the "entry-level" code, whether it is from the code volume, code efficiency, code beauty, code ideas, the "boarding" level of this date Processing code is much better.
[Advanced path]
Although a correct solution can be provided at this stage, it is not necessarily the best solution. How can we get the best solution? The first is to accumulate various solutions that can solve the needs, and then verify each solution. Select the best one among these solutions. Therefore, the Advanced path at this stage is to "walk the miles and read the books", and accumulate various solutions for various needs.
You can join a Professional Forum (blue ideal, carefree, and csdn) to read all the FAQs and posts. You can open a search engine and outline all the search results. Build a test environment to verify the code one by one: to figure out the intention of each code segment and compare the differences between each code segment. These two ways allow you to quickly complete the original accumulation. When you face most of your needs, you can say that I have done these problems before, and then you can easily step up.
Iii. Entry]
The strongest code, know all the solutions that can solve the needs, and be able to choose the best solution to meet the needs. This level is basically the main code in product development and programming. The trick is a trick.
For example, can you tell the difference between 1, 2, and 3 and apply it to that environment?
VaR STR = "www.baidu.com /? Page "; // 1. String pruning Str. substring (0, str. indexof ("? Page "); // 2. Regular Expression Str. Replace (/? Page/, ""); // 3. Split string and merge Str. Split ("? Page "). Join ("");
There are many ways to solve the problem, but programmers should choose the best. The above Code indicates that the "Regular Expression" is the best in terms of the amount of code. for code execution efficiency, the "string pruning" method is the highest (the "Regular Expression" method in Chrome is the most efficient ), the split method is the most time; in terms of scalability, the "Regular Expression" method is the best. The specific use of this solution depends on the specific needs of the environment.
In the "entry" stage, the programmer should be able to answer with certainty:For this requirement, my code is the best code..
Take "Today is the day of the week" as an example. Do you dare say that the code at the "boarding" level is the best code?
// The current computing system is the day of the week var STR = "Today is the day of the week" + "May 15, 1234". charat (new date (). getday ());
How do you feel when comparing the sample code at the "boarding" level? Programmers are pursuing perfection. The entry level is perfect for every trick.
From the perspective of Web Front-end programming, after two years of efforts, many people can achieve this level. However, a large part of people's programming capabilities also stop here. Or limited to the singularity of product requirements, or limited to the urgency of demand development, or limited to the inertia of people, it is enough to perfectly solve the current needs.
Engineers at this level are usually dry because they have been in the technical platform for a long time and cannot be improved technically. In terms of technology, small achievements, pursuit of personal breakthroughs, or the freshness brought about by product differences, or just a new mood, many engineers at this level often change their company.
Guard against arrogance and rashness:
Do not be complacent that you can write beautiful code;
Do not think that others will "claim" you say "hero", and you will be "hero;
Don't think you have accumulated some proud code and become a framework-based development.
The Details determine success or failure. A good solution cannot guarantee the final success. Taking "delete specified string" as an example, the original string should have a URL link in terms of format. After "Pn = 0" is removed, a tail "? "; If the original string is "http://www.xxx.com /? Pn = 0 & A = 1 ", after" Pn = 0 "is removed? And the two symbols closely together, which is even more obvious bug.
[Advanced path]
The path to this stage is:Do not be angryYou are not taken by the demand, but by the demand. Pay attention to the details, and pay attention to the details that are not given in plain text in the current requirements: Differences in code performance, differences in running platforms (browsers), implicit extension of requirements, and backward compatibility of codes.
Read the HTML, CSS, and JavaScript help documents several times.
I suggest engineers at this level make a webtreeview control and require that the total number of nodes be around 10 thousand. Your promotion path is in the coding process of this control.
Link: http://hszy00232.blog.163.com/blog/static/430227532011119105237357/