JS 提及来必须是一个神器,这个当年10天内被开发出来的神器,以一种谁也想象不到的速度快速发展,它击败了Java Applet,逼死Flash,当Android和IOS看似一统全球的时候,JS慢条斯理的和Html5一块儿蚕食App市场,甚至还出来了NodeJS 这种连后端都不放过的残暴东西。
原生和WEB的两种方式一直在争论不休,而我本身在三年前就是绝对的WEB支持者,windows对于JS支持的更完全,只是Winphone一直不给力。
好 吧,对于拿NODEJS作后端工程项目我仍是有点不情愿,然而提供各类辅助工具什么的仍是挺不错的。JQuery,Ajax和RequireJS和 Angularjs和PhoneGap都是一些标志性的转变,还包括ReactJS。JS简直了,简直了,简直什么都不放过。
因此JS简单么?我带着大家了解一下JS工程师是什么样子的。
1 工做内容:
JS工程师其实分红两类,一个是套页面的,一个是先后端分离的。
对 于套页面来讲,JS工程师的职责很是简单,一个是作一些简单的动画和交互和验证,轮播图,弹框,验证用户名是否为空等等。另外一个就是经过Ajax取一些后 台数据,而后在页面上展现出来。那个时候的JS工程师并不被太多人重视,不少时候一些后端的人把前端的工做也作了--除了写CSS,大部分的后端工程师写 点JS仍是不成问题的。
可 是先后端分离的出现,不折不扣的改变了前端的世界。前端竟然有架构了,前端竟然也有“编译”的概念了(你能想象么,JS的项目竟然不能直接打开源码直接使 用了,必需要通过编译才能够)。前端工程师和后端工程师只经过Json数据交互(感谢Nginx提供了一个完美的跨域解决方案,不再用什么Jsonp 了),而后服务器端的同窗发现:好简单啊,我对Android,对IOS,对Html都只须要提供一套API就够了~~
前 端同窗更开心,不再用去搭建各类悲剧的开发环境了!前端变的很轻,并且控制欲很强(AngualarJS好赞),页面跳转神马的SoEasy,并且也有 了Bower这样的包管理工具,还有相似于JSP自定义Tag的指令,MVC,还有了Service的概念,马丹,前端到底发生了什么!
因此咱们如今说到的,基本上就是先后端分离的工程师,他们的工做职责就是和IOS&Android的工程师同样,跟后端定接口,肯定框架和架构,分模块,而后跟后端联调互相吐槽对方是渣渣。
项目结束以后修复线上Bug,不停的跟用户说:在我这里是正常的,你换个浏览器试试?不行就清一下Cookie,再否则就换台电脑。
2 须要技能:
环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】
基础【Http,REST,跨域,语法,组件,F12,Json,Websocket】
框架【JQuery,AngularJS,Bower,RequireJS,GruntJS,ReactJS,PhoneGap】
业务【金融,教育,医疗,汽车,房产等等等等各类行业】
第三方【微信,QQ等各类第三方登陆,支付,IM,地图,语音,视频,图片】
环境不说了,参考CSS的。
基础跟CSS差异就好大了,要有一些网络协议的基本概念,要了解什么是Http,什么是Https,什么是WebSocket,什么是Rest,各类JS的语法(太复杂的彻底不用管,别去管什么闭包什么Prototype什么This的指向),Json是必不可少的东西。
框 架就多了去了。直接拿JQuery来学习就好,表去太在乎什么原生语法,大部分场景你都不用担忧引入一个JQuery的库致使系统变 慢,AngularJS真是一个好东西,表太纠结一些细节,Bower,RequireJS和GruntJS这些会有一些前端大牛帮你搭好框架你直接用就 好了。
想作点App就用PhoneGap,想尝试一下ReactJS就去试吧(我很想试一下然而看到有Render就看不下去了)。
必须提醒一次,若是你是从CSS转到JS的,这里强调的就是,你必需要懂业务逻辑,这跟CSS彻底不须要懂业务逻辑简直是天壤之别,不少时候你并非由于技术而没法学会JS,而是缺乏对于业务逻辑的理解。
固然啊,这并无完。还有无数的第三方库等着你,作微信呢你必需要用WX的SDK,要用百度地图呢就必需要用百度的SDK,还有各类支付啊神马的。若是你要作IM就有环信啊神马的。
因此。JS就是一个真正的程序员,一个真正的工程师,不但要能把代码实现,还须要理解需求,须要懂得编码规范,须要知道如何控制项目流程和进度风险,须要修复线下Bug,须要调优,须要作版本管理,须要制订接口,须要编写技术文档,还须要作新技术的调研或者是带新人。
如今你了解了咩?
3 发展前景:
我说了那么多,大家对JS的指望也很高了吧。坦白的说,有点高的离谱!
JS是惟一一个能够在两年以内薪水到20K的职业。虽然工做五年或者是七年的JS在薪水上差异并不太大,可是也已经让不少人难以置信了好么。
好多人在别的行业,工做十年都拿不到10K啊亲。
0~6个月:6K~10K
6~12个月:8K~14K
一年~两年:12K~20K
两年~五年:18K~30K
五年以上:24K~
JS的入门相对来讲比CSS难的多,可是他的好处是学会一点是一点,并不像Java同样,绝对是前期Gank型英雄,到了6级就能四处杀人。Java是后期,要到16级之后才能出山才可以震撼全场。
因此JS相对来讲比较平滑,并且如今学习的曲线也比较清晰,慢慢在业界都造成了相对完善的框架。JS能够选择前进的路有不少种,只要你不是太瞎,就没什么大的问题。
成长路径:JS菜鸟-JS初级工程师-JS中级工程师-JS架构师-UED-前端Leader-前端大牛
大概这个样子啦,JS工程师在后面有一点后续无力,通常来讲,我仍是强烈推荐JS,IOS,Android三者通吃,在个人带的Team中也一直要求他们这么作(虽然并未能彻底实施成功)。
这三者有太多类似之处了,到最后你会发现,语言只是一种工具而已。要作的事情,实际上是差不太多的,并不须要对全部的语言都特别熟悉,有一种打底的,其余的均可以随意去玩了。
4.入门门槛
必须有CSS基础,必须有CSS基础,必须有CSS基础。或者是有后端Java基础。
总之你要么是会了CSS,要么是精通了一种后端语言,千万不要CSS没学好,后端语言也不会就直接学JS,内心会没底,不踏实。
其余的都没什么了,列出来的基础知识,本身慢慢补就好了。
5.哪些行业适合作JS
IT界:CSS,而后是全部的均可以
其余界:全部的均可以
好蛋疼的结论然而事实上就是如此,这波JS的红利受益于微信,以及移动端的普及。我不肯定在三年或者是五年以后会不会仍是这种状态,然而三年和五年已经足够能够改变你的人生了,因此,你在等毛线?
6.职业限制
JS的职业限制也挺多的,主要就在于学习的方向上很容易误入歧途(至少在我眼里是这样的,相信我,我不是什么好人,我并不会我说过的每一句话负责)。好比说一直坚持喜欢用原生,各类喜欢写一些奇奇怪怪语法(我把我看不懂的语法都归结为奇怪的语法),各类回调等等等等。
学到一些好的框架其实很赞的,对于大多数人来说,就够了。只是缺乏一个清晰的指引。
有的时候你会发现,你对Http了解的比较少,会是一个瓶颈。
你对数组啊,循环啊不了解,是一个瓶颈。
你对MVC不了解,也是另外一个瓶颈。
对Json不懂,不知道怎么定接口,也是个问题。
这些都学会了,也会遇到一些问题。就是JS的工程师三年,五年,七年的差异,大多数人都不算特别的大。
因此总会有人想学后端--可是我绝对不同意学Java,NodeJS也能够不去学,不如去学习Python,更不要提PHP啦(我真心不喜欢PHP,不知道为嘛)
或者说,后端并非语法,而是牵涉到算法,架构,性能,业务,选型等等跟前端几乎没有任何关系的知识,因此学习一门脚本语言,能作点简单的东西就行了。
仍是须要把注意力转到IOS,Android上去。
7.去哪里学,怎么成长
若是你不想用这种方式去学习,仍是我以前说的那些话,W3C,而后作点东西,跟着去一家公司实习。
参考文献 : 鸟哥笔记:互联网行业14个热门岗位html