JS said must be an artifact, the 10 days of the year was developed by the artifact, to a person who can not imagine the speed of rapid development, it defeated the Java Applet, forcing the Flash, when Android and iOS seemingly unified the world, JS leisurely and HTML5 together to eat the app market, even out of Nodejs this even the back end are not spared the brutal things. The two ways of native and web have been arguing, and I myself three years ago is absolute Web supporter, Windows for JS support more thorough, just Winphone has not been to force. Well, I'm still a little reluctant to take Nodejs as a back-end project, but it's nice to have a variety of assistive tools and stuff. Jquery,ajax and Requirejs and Angularjs and PhoneGap are some of the most iconic shifts, including Reactjs. JS is simply, simply, almost nothing to let go. so JS is simple? I'll take you to know what JS engineer looks like.
1 Job Description: JS Engineers In fact divided into two categories, one is a set of pages, one is the front and back of the separation. for the set of pages, JS Engineer's responsibility is very simple, one is to do some simple animation and interaction and verification, carousel diagram, frame, verify that the user name is empty and so on. The other is to get some background data through Ajax and then show it on the page. At that time, the JS engineer is not too much attention, many times the back end of the people to do the front-end work-in addition to writing CSS, most of the back-end engineers to write a bit JS is not a problem. However, the emergence of the separation of the front and back, the end of a completely changed the world. The front end actually has the structure, the front end actually also has "compiles" the concept (can you imagine, JS project actually cannot directly open the source code direct use, must have to pass compiles only then). Front-end engineers and back-end engineers only interact with JSON data (thanks to Nginx for a perfect cross-domain solution, no more jsonp), and then the server-side classmate discovers: "It's easy, I just need to provide a set of APIs for Android, iOS, and HTML." ~~ front-end classmates more happy, no longer need to build a variety of tragic development environment! The front end becomes very light, and the control desire is very strong (angualarjs good praise), the page jumps God horse's soeasy, but also has the Bower such package management tool, also has the similar to the JSP custom tag instruction, the MVC, also has the service concept, Mactan, the front end what happened! So what we are talking about now is basically the separation of the front and back of the engineer, their job is the same as the Ios&android engineer, with the back end of the interface, determine the framework and architecture, sub-module, and then with the back end of the joint to spit each other is slag slag. after the completion of the project to repair the online bug, and constantly said to the user: "I am normal here, you change a browser to try?" No, just clear the cookie, or change the computer.
2 skills Required: Environment "IDE (webstorm,sublime,editplus), source Control (svn/git), Web server (nginx)"Basic "http,rest, cross-domain, syntax, component, F12,json,websocket"frame "Jquery,angularjs,bower,requirejs,gruntjs,reactjs,phonegap"Business "Finance, education, medical, automotive, real estate and so on and other industries"third party ", QQ and other third-party login, payment, IM, map, voice, video, pictures"Environment does not say, reference CSS. base with CSS difference is very big, want to have some basic concept of network protocol, want to know what is HTTP, what is HTTPS, what is websocket, what is rest, various JS syntax (too complex completely without tube, Don't worry about closures what prototype what this is pointing to), JSON is an essential thing. There 's more to the frame. Just take jquery to learn, the table to too care about what native grammar, most of the scenes you do not have to worry about the introduction of a jquery library caused the system to slow down, Angularjs is really a good thing, the table too tangled some details, Bower, Requirejs and Gruntjs These will have some front-end Daniel help you to set up a good frame you directly use just fine. want to do some app to use PhoneGap, want to try Reactjs to try it (I would like to try but see the render will not go down). must be reminded once, if you are from CSS to JS, here is to emphasize that you have to understand the business logic, which does not need to understand the CSS is completely different from the business logic, many times you are not because of technology to learn JS, but the lack of understanding of business logic. of course, it's not finished. There are countless third-party libraries waiting for you, do you have to use WX SDK, to use Baidu map must use Baidu's SDK, there are all kinds of payment ah God horse. If you want to do im there is a ring letter Ah god horse. so. JS is a real programmer, a real engineer, not only to be able to implement the code, but also need to understand the requirements, need to know how to control the project process and schedule risk, need to repair the offline bug, need to tune, need to do version management, need to develop interfaces, need to write technical documents, There is also a need to do research on new technologies or bring new people. Now you know what's going on?
3 development prospects: I said so much, your expectations of JS is also very high bar. Frankly, that's a little high! JS is the only job that can be paid to 20K within two years. Although the work five years or seven years of JS in the salary difference is not too big, but also has made a lot of people incredibly good. many people in other industries, work 10 years can not get 10K AH Pro. 0-6 months: 6k~10k6-12 months: 8k~14kone year ~ two years: 12k~20ktwo years ~ five years: 18k~30kmore than five years: 24k~JS's entry is relatively more difficult than the CSS, but his advantage is to learn a bit, not like Java, is definitely a pre-gank hero, to the level 6 can kill around. Java is late, to the level of 16 to be able to shock the full audience. so JS relatively smooth, and now learning curve is relatively clear, slowly in the industry has formed a relatively perfect framework. JS can choose the way forward there are many kinds, as long as you are not too blind, there is no big problem.
growth path:JS rookie-js Junior Engineer-js Intermediate engineer-js architect-ued-Front leader-front end Daniel probably this way, JS engineer in the back a little follow-up weakness, generally speaking, I still strongly recommend js,ios,android all-in-one, in my team also always asked them to do so (although not fully implemented success). There are so many similarities between the three, and in the end you will find that language is just a tool. To do things, in fact, is not too much, do not need to all the language is particularly familiar with a type of bottom, the other can be free to play.
4. Entry Threshold Must have a CSS base, must have a CSS base , must have a CSS base. Or there is a backend Java foundation. Anyway, you either will be a CSS, or proficient in a back-end language, do not CSS did not learn, back-end language will not directly learn JS, the heart will not end, not practical. nothing else, the basic knowledge of the list, you can slowly fill the line.
5. Which industries are suitable for JS it: CSS, and then all that is possibleOther sectors: all of them can Good Egg pain Conclusion However, the fact is that this JS dividend benefits from, as well as the popularity of the mobile side. I'm not sure if this is the case in three years or five years, but three and five years are enough to change your life, so you're waiting for the yarn?
6. Occupational Restrictions JS Career Restrictions are also quite a lot, mainly lies in the direction of learning is very easy to go astray (at least in my eyes is this, believe me, I am not a good person, I do not say that every word of responsibility). For example, always adhere to the original, all kinds of like to write some strange grammar (I do not understand the grammar is attributed to the odd grammar), various callbacks and so on. learning some good frameworks is really great, and for most people, that's enough. Just a lack of clear guidance. Sometimes you will find that the less you know about HTTP, the more it will be a bottleneck. you are a group of AH, circulation ah do not understand, is a bottleneck. you don't know about MVC, it's another bottleneck. Do not understand the JSON, do not know how to set the interface, is also a problem. all of these have learned and will encounter some problems. Is the JS engineer three years, five years, seven years of difference, most people are not particularly big. so there will always be people want to learn the backend-but I definitely do not agree to learn Java,nodejs also can not learn, better to learn python, not to mention PHP (I really do not like PHP, do not know why) or, the backend is not a grammar, but involves the algorithm, architecture, performance, business, selection and so on with the front-end has little to do with the knowledge, so learn a scripting language, can do something simple is good. still need to turn the attention to the ios,android to go up.
7. Where to learn, how to grow If you do not want to study in this way, or the words I said before, and then do something, then go to a company internship.
References: Bird's note: 14 popular posts in the Internet industry
JS Engineer's growth path