在敲下这个标题的时候,心里好虚。话说我一直不太喜欢发表这些看上去很假大空的文字,每个人的职业规划都是独有的,不具有太大的可复制性,把自己的经历放出去,容易误人子弟。只是最近很多师弟们(别问我为什么都是师弟,我想静静……也不要问我静静是谁!)问起这个,也就根据自己的经历发表一下对前端工程师的看法吧,“我说的都是错的”,仅供参考。另:本篇是纯文字,密集恐惧症换成勿入!
从我接收第一份前端需求开始,到现在也有五个年头了。自己也从一个愣头青变成一个快到而立之年的大叔,时间真的是哗啦哗啦的快。这五年里,其实可以分成三部分:1~2, 3~4, 5。
刚毕业时满腔热情,一门心思只往前端事业发展。刚从学校出来,看到什么都是新鲜十足,什么都想学。不断的买书看书垫枕头,最疯狂的时候一个礼拜晚上看完正本犀牛书+做笔记,后来再也达不到这种速度了。很幸运我能加入到AlloyTeam,依靠WebQQ,使得我的编码能力、项目经验duang duang duang的上去了。同时也搞了很多奇形怪状的业余项目,基本上无论遇到什么跟JS相关的“新”技术(新是对于我自己来说的),我都想去尝一尝。
对于刚毕业的初学者来说,头两年真的真的是非常重要,学习的激情、速度以及熬夜的能力可以发挥的淋漓尽致。在这个阶段,通过大量的编码提升JS能力,同时尝试各种JS框架和库,寻找适合自己的框架,甚至自己也写了一个JS库和构建工具。“不要重复的造轮子”这句话,初学者都应该无视。你不造轮子,怎么知道别的轮子好不好用?怎么知道造一个轮子有多难?怎么知道如何改进轮子?我不认为一个新手去看jQuery的源码能看懂,反正我当时就晕晕乎乎的。
在这个时间点里,其实还没怎么考虑以后的发展,而且也仅认为前端工程师,学好JS/CSS/HTML就够了,其他的没兴趣也没意愿去学。
在JS/CSS/HTML里探索了2年后,突然发现越学越不懂了。出了HTML5,看了WebSocket,想学会,结果要看网络协议、要看HTTP/TCP,还要学Server开发等。顿时感觉分身10个也不一定能学好。为了跟上潮流,也得硬着头皮上。好不容易Server、网络、前端、浏览器各种知识都多少了解的时候,移动潮流来了!OMG,Android、iOS还有WP……生命不止,学习不休。
其实到了这个阶段,多少也算是个有经验的攻城师了。开发一般需求不在话下,偶尔还能承担个架构设计。在提升JS能力的同时,开始要往多方面发展。前端工程师远远不仅是JS而已。制作一个性能高、交互好、视觉美的页面,需要从前端框架选型、架构设计、构建工具,到后端通信机制、设计与交互、网络和浏览器优化等各方面的知识。一专多长才是前端工程师的终极目标。有个人说得对:一专是指你不可替代,多长标示你可以替代别人。这样你在团队在公司的地位才更加牢固,公司也会给你提供更多的资源。
同时还要开始提升自己的名气,可以通过发表技术博客,提交和参与开源项目,做部门级公司级还有业界分享,参加业界会议等等。在这个信息瞬息万变的互联网时代,保持交流才会让自己不落伍。同时名气大了,能找到更多志同道合的人一起研究技术(探讨生命的起源也不是不可能的),甚至想跳槽,也是放个屁的事儿(意思是简单-_-|| 这都什么比喻)。
这个时候,如无意外,你也应该成为高级工程师了。编码在工作中比例已经不算太高,更多的工作是承担技术评审、架构设计和项目管理等事情。工作中除了完成自己的事情,可能还需要指导新人,做新人培训,带领新人完成项目。同时还会有一个抉择摆在眼前:继续深入研究技术 or 往管理方向进发。
技术 or 管理,这里没有对错之分,只有合不合适。有的人就不善于交流,同时喜欢专研,可以继续走技术的路,发展成专家;有的人则可能有比较强的领导力,可以带领一群人完成项目,那可以转向管理,成为Team Leader等。
不管选哪个方向,你都已经是个优秀的人,而且应该把这种优秀传承下去。成为导师,使新人变得优秀;成为面试官,挖掘优秀的人;成为讲师,让更多人学习到优秀,等等。
总的来说,头两年一定要打好基础,找准自己的G点,深攻下去;高潮之后,往广度发展,掌握其他相关和不相关的配套知识(这不是矛盾么?Σ( ° △ °|||)︴);然后摸到自己的目标,发售大胆的爱爱(老了,手抖打多了)吧。不仅自己爱(前端),也要让更多人一起爱(前端)哦。