可以说,web1.0的时代是form的时代,web2.0的时代是ajax的时代,而web3.0?我觉得已经开始了,它应该是web工程化的时代。
每一次技术的革新,都不是对上一时代技术的否定,而成一次由量变到质变的升华。软件更新的速度越来越快,要做一个优秀的软件工程师,不是一件容易的事情,如果你心里长时间没有危机感,而又在一个地方呆太久,那你就需要重新审视自己了。你需要:变! 需要去学习,去接触一些新的东西,哪怕只是了解一些概念也好。
当然,技术也不一定非得频繁地换,“博”与“约”的辩证关系普遍存在着,你可以由博返约,精修一门,也可以由约转博,举一返三,殊途同归。“博”的代表就是现在很新潮的“全栈工程师”的职位,而“约”的代表也是“资深工程师”,全栈工程师要有广泛的知识领域,要熟悉好多种技术,比如web全栈工程师需要从前端到后端,从软件到硬件都比较了解,他可以不必每门都精通,但需要每个都能顺手使用;而资深工程师则需要在某个技术领域下深钻多年,手到擒来。
以前web开发比较注重后端,后端开发的攻城狮工资水平都普遍高于前端,而前端大多是自学html,css,js成才的人,有的还是做设计或美工转过来的,代码水平参差不齐,所以前端开发可以叫网页开发,如今,随着google,fackbook,twitter等国际一流互联网巨头的引领,众多框架的出现,即使一个单页面的应用也比以前复杂了很多,加之移动应用的飞速发展,新标准的推进,各种东西加在一起,使前端越来越受欢迎,国内BAT等也紧跟不放,真正前端开发工程师的职位非常紧缺,职位的要求也相对提高,薪水待遇也今非昔比,甚至在逐渐超越后端的职位。来看一看某公司前端工程师的JD:
岗位职责:
1.使用跨终端前端技术实现产品的移动化,提升产品的多终端互动的体验,并对产品进行持续优化及性能提升。
2.多终端混合式开发模式的研究与推广。
3.类Native的Web组件库开发。
4.前端开发技术规范的制定和推广。
5.研究和探索创新的开发思路和最新的前端技术。
6.对团队开发人员进行代码质量审核和技术指导。
7.负责网站应用前端开发,与后台工程师协作,完成数据交互、动态信息展现;
8.为组员的技术成长制定目标、计划并帮助实施,提升整体技术水平。任职资格:
1.掌握iOS,Android,WP平台浏览器的特性,精通各平台浏览器兼容性解决方案,熟练无线端的性能优化。
2.深刻理解Web标准,对前端性能、可访问性、可维护性等相关知识有实际的了解和实践经验。
3.技术视野广阔,有主导前端技术方案设计的能力和经验。
4.了解面向对象编程技术,以及MVC等流行框架技术;了解.NET/Java/PHP等任一种服务器端编程语言。
5.对 NodeJS 有一定了解;熟悉HTTP协议、cookie等Web技术。
上面的要求里前端开发需要有移动经验,对web前端基础好,了解前端MVC框架(如AngularJS,Backbone等等),甚至还有使用JS开发后端的要求(node),前端工程师的知识面要求有点”博”了。
现在前端开发的框架不再局限于库了,在“库时代”里jQuery,ExtJS,prototype,Dojo等火拼结束,jQuery全面胜出,而新的web3.0时代则冒出了更多真正的框架,如bootstrap , angularjs , react, seajs, backbone, requirejs, 还有新的标准规范cmd,amd,es5,es6等,这些都是要去了解或学习的。有时后你不仅要去学习怎么用框架,还要去分析源码,就像以前分析jquery源码一样,这样的学习成本非常高,再加之nodejs的流行,与其相关的扩展库多如牛毛,你又不得不与国外开源社会保持点联系,来争取扒上最后一节车厢。
妈妈,我再也不想搞前端了!!!!!!!
但是,我们也没必要害怕,知识都是触类旁通的,无论什么框架,前端无非是html,css,javascript,如果你在这方面的基础不够好,那就亡羊补牢,打好基础,如果你是从其他岗位转到前端的,更应该避功利,把基础吃透,再去学习类库,之后是框架,很庆幸的是,web2.0时代的类库不需要都学了,你只用学习jQuery就可以了。
前端工程化无非是把后端工程的一些先进思想与前端技术相结合,所以这方面全栈工程师具有先天优势,mvc也容易理解。
模块化、组件化、自动构建是前端工程化的核心,backbone火了几年了,但现在angularjs似乎比他更流行,了解各框架的特点才最重要。
找到合适的资源。各框架的官网是最可靠的学习渠道,其次,需要找一些中文资料,比照着学习,毕竟只看英文可能理解上不够准确。
关注开源社区,你会有很多收获的。
把学到的知识应用到工程里,才能发现它的问题所在。
学习是一个成长的过程,成长是个痛苦的过程,但也是个快乐的旅程!祝所有爱学习的人学有所成。