个人三年前端之路

弹指一挥间,毕业已经三年了,昔日的小鲜肉变成上了年纪的小伙子,真是有些猝不及防。站在时间的分岔口,思绪万千。从事了三年的前端工程师,这一路是如何走来的呢,在此作个总结,也给初入前端的新手一点参考。css

在国企晃了一年

在大学期间,个人技术并不算突出,资质平平。以致于参加百度、360的校招都被刷了。因此毕业后就进入了北大方正这样的大型国企。但愿能从大企业中习得一套软件开发之法。前端

这期间我完成了从学生到软件工程师的转变,知道了标准的软件开发流程是怎么回事。简单说就是“步入社会”了。vue

个人岗位是前端工程师。在2013年,seajs已经小有名气了,可是咱们并无用,总体开发模式仍是原始的刀耕火种。一个jQuery做为基础库,整站的js都用<script>标签来引入。当时的后端是PHP,也没有先后端分离啥的,代码的目录结构就按照PHP框架的来组织,模板固然是后端模板。node

至于代码的压缩合并,那时候也尚未grunt/gulp,我记得是用了一个客户端小工具来压缩过代码。react

页面也都是我切的,这个值得说一说,由于当时咱们的项目要同时支持PC访问和平板电脑访问。因此就用了当时比较流行的响应式设计,即不一样设备使用同一套页面。那个时候就和Android/iOS的webview开始打交道了。踩的坑真是很多。webpack

为了学习流式布局,我每晚都抱着张鑫旭的博客看,他css方面的文章不少,我基本都看了不止一遍。根据学到的东西,用百分比单位+inline-block流式布局+媒体查询,咱们的项目在我一个新手的尝试下,成功的兼容了各类设备。那个时间是成长最快的,也是很充实的。web

可是过了新鲜期,我很快就感觉到了与国企的“水土不服”,国企的工做节奏是拖沓的,而我是血气方刚的,真是水火不容。有段时间我一直为项目的事情着急上火,可是其余人却不为所动,任凭项目一再延期。要知道在互联网公司,延期是很严重的事情,而在国企,简直是屡见不鲜。面试

另一方面让我不爽的就是,我没有可交流的对象。部门只有我一我的作前端,做为前端新人的我此时是很渴望汲取知识的,常常跑去参加w3ctech组织的分享会。然而在公司内却没有一个能够交流技术的人。我甚至不知作别人家公司的前端都是如何工做的,我到底算不算一个真正的前端。express

叫你一声前端你敢答应吗?我不敢。因此在不满一年的时候,我就离职了。redux

在大型互联网公司的一年

离职后个人目标很明确,就是互联网公司,工做强度越高越好。因而就加入了当时正处于虎狼之年的360.

以后个人工做是很充实的,看到了更大的世界,知道了大型互联网公司的前端都是怎么搞的。一开始有成银大神带着,后来又跟@墨尘频繁接触交流,成长很快。尤为是奇舞团的每周分享,我基本每期不落,吸取到了不少知识。这个时候,我才敢说本身是一名前端工程师了。

公司有不少大牛,也有不少现成的工具能够用。而我当时只是业务线上的一名小小前端,没有机会可以和大牛们一块儿造轮子。从技术框架上看,我当时开始接触了angular,requirejs和seajs也有所研究,当时因为微信H5游戏开始火爆了一阵,还接触了一下开发H5小游戏,学了学cocos2d-js,不事后来H5游戏的风彷佛是刮过了,我也就没再深刻cocos2d。

当时也有些需求是要作手机上的页面的,因此移动端的项目也作了一些,当时也没有如今比较成熟的rem方案什么的,切图须要有些额外的技巧,好比字号大小就是约摸着写,看上去差很少就行。

mvvm开发模式以及模块化开发,是前端发展历程中比较重要的两个里程碑,有幸本身没有落下这两个关键节点。

在我敢认可本身是一名真正的前端工程师以后,又开始有了别的想法,总在大公司作一个零件有点没劲。此时我迫切想干的事情就是,靠本身的力量去架构起一个项目的前端。因此除了各个流行框架,我还研究了一些前端工程化方面的东西,grunt尝试了一把。

感受准备的差很少以后,我又开始蠢蠢欲动了。

在创业公司的一年

出于一些很现实的缘由,我加入了如今的公司,一家比较成熟的创业公司。两方面缘由:1.开得起工资,2.前景不错。毕竟,北漂了两年了,我也该为本身在北京落脚作一些准备了。

加入如今的公司后,个人定位再也不是大型机器的一个零件,我须要对公司的前端担负更多的责任,由于我已是一个老鸟了。因而个人思考方式也必须发生变化,之前不求甚解的知识如今也必须搞明白,而且更多的从项目总体上来考虑问题。

我开始承担面试工做,开始带新人。时刻思考着如何能利用多余的时间来作点事情,给公司的前端工做带来实际收益。

在技术方面,自由度也比较大了,能够尝试一些新的东西。首先是mvvm的大规模使用,若是之前使用angular只是走马观花的话,那么如今是在千万级pv的大站点施工了。因为咱们的网站还需支持IE6(主要用户是老师学生,没办法~),因此采用了可以支持IE6的knockout。外加requirejs以及knockout的amd-helper插件,也搭建起一套模块化开发框架。

在移动端项目上,其余同事已经开始使用vuejs,使用webpack打包。尴尬的是,我对这二者兴趣极大,可是一直没能参与到移动端项目中去。

去年开始在公司推广sass,由于以前还一直是手敲css的。另外构建流也用上了gulp,来作一些项目上线的构建工做。

因为ES6也日渐成熟,并且咱们有些项目也是不兼容低浏览器的。因此前段时间开始在项目中使用ES6,配置babel来编译,虽然如今使着还不是很熟练,但也总得跟上潮流不是。另外,咱们项目中jQuery代码已经几乎没有了。

关于nodejs,本身业余也在学习,今年年初用express框架写了一个团队内部用的小项目。话说nodejs这个玩意吧,虽然我以为前端都得会点,可是若是没有项目驱动,要写nodejs的机会仍是不多的。

如今比较流行的东西,没用上的一个就是react了,由于如今尚未合适的场景,并且目前的框架也能知足业务须要。可能得之后有功夫了再尝试了。只是不要等我用的时候就发现过期了就行。

这就是创业公司的诱人之处,能够尽情尝试各类新技术。总之如今的状态我仍是挺享受的,手中忙碌,心中平静,脑中计划将来。

关于前端学习

发现这么多年本身折腾的仍是挺多的,本身还在成长的道路上慢慢前行,学习的脚步一刻不能停。

若是要我给新手同窗们写点建议的话,我仍是很乐意的。首先前端的知识体系多而杂,因此点滴积累是必要的。在我是新手的时候,有一个习惯帮了我不少,那就是写博客。毕业三年,在博客园开博也三年了,写博客对你的学习有很大的驱动力,并且要想准确得表达出你的理解,你必须对某个知识点了然于胸,这反过来能增长你的学习深度。

另外就是知识路线,得有一个规划,大致上来说,这条主路径不要偏移:原生js、使用jQuery及编写jQuery扩展、前端模板、前端mvc(backbone)、模块化开发(amd/cmd)、mvvm开发模式、react为表明的redux模式。

另外css也是前端的一项基本功,有一些从后端转到前端的同窗不想写css,我以为这样不行,理解css有助于你去理解前端总体。因此关于css的学习,大致有这些就够:运用css完成页面、css基本原理(看w3c标准文档)、sass/less等预编译、架构可维护易扩展的整站css。至于css界新出的一些东西,好比OOcss、css module,我也还未研究,这些感受是锦上添花的,能够先放一放。

nodejs的话,倒也不是最迫切须要学的,我看一些新手同窗,js/css还未熟练,就扑到nodejs上,这就有点舍本逐末了。若是有余力,在学好前端的基础上再去碰nodejs。

PS.除了写博客外,我还在写本身的微信公众号,内容是技术以外的一些思考,有兴趣的同窗能够关注哦:

相关文章
相关标签/搜索