我的三年前端之路

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

在国企晃了一年

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

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

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

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

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

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

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

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

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

在大型互联网公司的一年

离职后我的目标很明确,就是互联网公司,工作强度越高越好。于是就加入了当时正处于虎狼之年的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.除了写博客外,我还在写自己的微信公众号,内容是技术之外的一些思考,有兴趣的同学可以关注哦:

时间: 2024-10-05 23:54:25

我的三年前端之路的相关文章

【前端之路】这世上哪有一路鲜花的康庄大道

一:程序员基本功 1:数据结构+算法  (acm/icpc/oj ) 2:离散数学,数字逻辑,线性代数,概率论,数理统计(学堂在线,mooc) 3:计算机组成原理,操作系统,编译原理 二:语言基础 1:html(html5网页游戏开发,微信游戏开发) W3Schools-HTML(英) , W3School-HTML(中) <HTML5高级程序设计 > 2:css(css设计基本功,css3动画) <精通CSS> <瞬间之美 ><网站重构 ><CSS禅

【系列】后端程序员前端之路(2016/3/24更新)

后端程序员前端之路01 后端程序员前端之路02--CSS选择器详解 后端程序员前端之路03--HTML语义化 后端程序员前端之路04--html元素分类 后端程序员前端之路05--盒子模型详解 后端程序员前端之路06--布局模型,颜色值,长度值 --不断更新中,如果有帮助到你,请点“推荐”.你的支持,是我坚持的动力O(∩_∩)O谢谢~

漫谈前端之路

前言 前端之路何其漫漫~ 说明:本篇文章原是写给学弟学妹的,但想来花的功夫确实不少,就把此篇文章当做自己的一个阶段性总结文章了,会保持长期更新. HTML 总的来说HTML并不难,甚至可以说很无脑--HTML的标签个人觉得过一遍就得,知道什么时候该用什么标签就可以了,因为在以后的开发中打交道最多的就是各种各样的标签,想不熟都难.就像现在我写这篇文章用的Markdown一样,只是几个标签的反复应用.那么html的学习就相对来说很自由了,可以跟着w3schoolW3school网址过一遍标签,网上也

我的前端之路

从事前端工作刚刚一月有余,作为一个通过自学而进入这个行业的人来说,未来充满着挑战.前端之路怎么走,总是萦绕在我脑海里,每天面对各式各样的技巧,各种炫幻的效果,恨不得自己全部能够实现它们,但有时觉得自己太浮躁了,基础不牢固.带着这些困惑,一个多月来感觉自己提升的太少,提升的太慢,难道这是每个前端er必须经历的吗?

前端的路还很长

1.会做一些简单的设计(能够熟练使用ps.fireworks.ai.Flash等设计软件做出一些特定的效果) 2.使用html+css进行合理的页面布局 (考虑页面兼容性---->最终要学会做响应式页面或者能够做                               到页面的自适应:注意一下他们的区别于联系                               性能优化------>了解浏览器怎样工作的:渲染与重绘) 3.使用css3做出一些特定的动画效果(Canvas或SVG也可

第24课 《前端之路,以不变应万变》

今天的内容有些借鉴于业内大佬的内容,由于本人技术实在太渣,几乎没有可以用来演讲的素材.抱歉 大家好,我是来自存勖科技的Rocken.我今天演讲的内容是:前端的未来.大家都知道,前端所依托的基础直到上世纪九十年代才出现,前端职位也是近十年才出现的.之前大多数是后端工程师在做前端的事情,随着前端内容的不断增加,前端方面的工作也越来越多,这时候如果全部由后端来做的话就不大现实了.所有就出现了咱们前端工程师这个物种.我相信在座的各位都有一种感觉,那就是发展太快了.各种框架.工具层出不穷,我记得当初发布d

《前端之路》- TypeScript(二) 函数篇

目录 一.定义函数方法 二.定义函数传参 三.可选传参 四.默认传参 五.传递剩余参数 六.函数重载 七.箭头函数 八.总结 一.定义函数方法 在 es5 中定时函数的方法有 命名函数和函数表达式(匿名函数)这门两种.那么同样的,在 TypeScript 中,函数的定义是什么样子的呢? 1-1 命名函数 这里需要注意的一点是: viod 类型,是函数不返回任何类型数据 TypeScript 语法 function func1(): string { return '213'; } functio

【转】别人家的孩子之《说说我的web前端之路,分享些前端的好书》

链接http://www.cnblogs.com/Darren_code/archive/2011/02/09/JavaScript.html   2011-10-31 22:56 by 聂微东 PS:(11年现在都16年了 落后了5年哎...) WEB前端研发工程师,在国内算是一个朝阳职业,这个领域没有学校的正规教育,大多数人都是靠自己自学成才.本文主要介绍自己从事web开发以来(从大二至今)看过的书籍和自己的成长过程,目的是给想了解JavaScript或者是刚接触JavaScript的朋友,

女孩的前端之路-开始我的nodejs程序之旅[1]

一个女孩的前端学习之路,希望可以帮助到别的在编程代码上学习的朋友们.(1)初识node.js学习 目的:利用nodejs可以架设起一个网站,可以全面了解一个网站是如何架设起来的.开始学习:一台mac学习步骤:1-刚开始我是去寻找一些比较好的教程,如果只是自己捣鼓的话,会有很多不明白的地方.2-在搜寻好的教程的是时候,我遇到很多问题,比如:怎样找到一个适合自己自身情况的的教材.[所幸,我利用google的关键字搜索搜出了一个叫nodeschool的网站,推荐大家]3-安装:直接去官网上安装,但是安