本文作者:驻云科技,邓昌亮
曾经我问过别人,“你知道什么是前端工程师吗?”, 他的回答是: “不就是画画页面,写写js,调调页面嘛!”。也曾经有人问过我,“你的职业规划是什么?”,我的回答是: “在短期内成为一个真正的合格的前端工程师”,他的回答是: “端也就那些东西而已,你真的认清了自己的职位规划吗?”。每当这时候,我都很想反问一句, “你真的了解前端工程师吗?”。
我还记得,我刚毕业时候,怀着满腔热情投入到了前端事业发展当中,那时候的自己只要一打开浏览器,就会下意识的打开调试工具,看到什么,就想学什么,基本上遇到跟前端有关的新技术,都想去尝试尝试。所以我一直认为对于刚毕业的初学者而言,前三年是我们学习新东西的黄金时期,那时候的自己能够为一个你不了解的东西,投入您的激情,您的活力。也是在这个阶段,我们的代码驾驭能力得到了显著的提升。在这段时间内,当然也并不是一帆风顺的,我还记得当时,为了学习如何使用CSS3,构建一个稍微复杂一点的动画。不得不捡起学校时候丢回老师的’贝塞尔曲线’相关知识,那时候恨不得自己有两个脑袋。但是最后还是硬着头皮慢慢学下来了。“不经一番寒彻骨,哪得梅花扑鼻香”,不去经历,了解一些你不知道的东西,你又怎能知道什么是适合自己的呢。
现如今前端发展到现在,可谓是包罗万象,产品形态也五花八门,每时每刻都有新的框架,基础库的诞生。也许我相信任何一个项目都不可能是从零开始做。哪怕是政府的项目,用个简单的jquery还是很正常的。在做一个web项目前,我想,每一项目的负责人,都会面临四个问题?1.库/框架的选型。是用Jquery,bootstrap,backbone,angularjs, react…2.是用开源的项目构建工具还是自己写一个呢?我想大家马上想到的是grunt,gulp..3.是否选用js/css模块化开发工具。webpack,browserify, requirejs, less/sass、stylus等预处理器。4.是否要考虑前端性能问题。CDN部署、缓存控制、文件指纹、缓存复用、请求合并、按需加载、同步/异步加载、移动端首屏CSS内嵌、HTTP 2.0服务端资源推送。当然一些小项目,小访问量的的问题可以不要考虑第四点。借用百度前端工程师fouber的一张图和一句话:从本质上讲,所有Web应用都是一种运行在网页浏览器中的软件,这些软件的图形用户界面(Graphical User Interface,简称GUI)即为前端。
也许有人会问。现在已经进入移动互联时代了,PC上面的Web流量大幅萎缩下降,但是却并没有转到移动设备的Web上面,而是转到移动App上面。在移动终端上,Web技术只能作为一个补充,移动设备并不是Web前端工程师的主战场。所以现在很多前端工程师会比较迷茫,或者说未来怎么发展,是不是要转行去做Android开发,或者iOS开发,很多人会有这样的想法。
在我看来,你会这样想,说明您并没有真正意义上的理解前端工程师。也许你说的这个问题是存在的,但是未来的事,你又怎么能预料的准呢,就算这个事情发生了,在这个前端技术飞速发展的时代。javascript能够从浏览器上移动到服务端上运行。facebook react native的出现谁又能说不是一个突破口呢。
前端的技术体系就是逆水行舟不进则退,基本上以周甚至以天为单位更新自己的知识体系,要时刻保持关注。正如腾讯大牛说过的一句话:’要想前端有所成,有两条路,一是往前,webGL, canvas, SVG领域,这需要对图形敏感,有设计感,有动画素养,有相当的数学知识,以及最重要的JavaScript控制能力;一是往后,走开发路线,工具,富应用,运维(数据统计、前端安全、前端部署)领域,这需要懂后台、计算机网络、逻辑思考能力,以及最重要的JavaScript开发功力。’
这些只是一个小小的前端工程师结合各位前端大神的体验心得,同时也是对自己的总结,非是吐槽。各位看官,看看就好。谨以此篇献给那些还在前端道路上努力探索的前端工程师们。