大学两年前,小钗发了一篇水文:两年内,我要成为国内优秀的前端技术人员!
从那以后小钗又回到了大学的学习状态,晚上会私下学习总结,周末学习新知识,跌跌撞撞,两年时间快结束了,两年时间小钗经历了些神马呢?今天来一篇总结的水文。
01 重复读了两本经典的前端书籍:《Javascript高级程序设计》、《CSS权威指南》,基础知识得到了巩固
02 换了一个工作,经过一轮业务开发,进入框架组,开始全站基础框架开发
03 工作中逐渐接手框架核心业务,面向对象思维,框架思维,设计思想逐渐得到熏陶
04 研究webapp模式的框架,接触并解决移动端各种各样难题,如300ms延迟,点透、层级管理、兼容性,渲染问题......
05 源码学习,包括:zepto、Backbone、underscore、requireJS、Fastclick、IScroll......
06 公司业务产生井喷效应,业务快速发展,全站CSS文件三易其手,框架庞大化、复杂化,公司架构变化,由无线框架组转战公司框架组
07 框架积重难返,要做优化不易,思考之前所学,由工作总结出轻量级webapp框架blade,并再上做大量优化
08 框架变慢,维护成本变高,团队开始框架升级,将blade的优化成果重新回归框架
09 开始全站优化,与几位老大哥优化框架,框架尺寸下降1/3,框架结构清晰
10 开始全站样式迁移,分拆CSS入各个UI,引入shadow dom技术,梳理全站样式,样式文件尺寸下降一半
11 过程中写了接近200篇博客;然后接触了很多高手,如Aaron、OD、左盟主、周文斌、结衣等
所以,在接近两年的时间里,我觉得我勉强能算得上优秀的前端技术人员了,我的第一个计划算是实现了吧?温故而知新,于是第二轮的计划也要开始了
后两年计划,成为一个合格的架构师,所以15年的计划是:
① 全站优化整理总结
② web components研究
③ 正则、nodejs
④ 架构思想、文档水平学习提升
⑤ webapp框架再研究,pad方案、seo方案研究
⑥ 移动端调试工具研究
⑦ 深化重构思想、深化面向对象思想、深化工程思维
⑧ 扩大视野
还是那句老话,一个人进入优秀的团队,再遇到一个好的老大,那简直就是中了彩票一样,不知不觉自己就成长起来了
但是,这种几率却很低,所以多数朋友的工作是不如意的,不如意的原因各种各样,但是我还是认为责任主要在自己,因为没有团队会放弃创造价值的人
你在团队不如意,一定是你自己不努力,如果你努力了仍然不如意,就是你努力的时间不够长,如果你自己真的做的很好了还是不如意的话
我就建议你离职了,因为经过你如此的工作,离职涨个50%完全不是问题,问题是你是不是真的在努力
其实以我最近两年的经历来说很多朋友也许觉得我很幸运,进了大公司,还担当了重要的业务,做了好多优化,事实上哪里那么简单???
最初进入无线团队时候,我也只是完成一些简单的业务工作,只不过自己私下去吸收了整个框架代码,不懂就问,对前辈尊重,态度良好
一个月后,框架组吸收熟悉框架的人,我顺理成章的进入框架组学习,并接手一些简单的业务;然后leader会逐渐出招,让你去抗难的甚至琐碎的事物,比如文档维护什么的、性能对比。
你每次都接招成功后,并且还会干出几件出彩的事情,老大哥们自然信任你,喜欢你,单纯技术好意义不大,产出高技术好才是王道,所以开发不但需要技术好,还得情商高,态度好!
但是,优秀团队,好的leader这种好的事情,今天就出现了,我原来的leader招聘,钱多人傻,速来,有能者请与我联系!!!
书籍这个事情贵精不在多,我这里推荐两本即可:
为什么只推荐两本呢?因为我发现很多朋友看书其实是有问题的,我个人看javascript高级程序设计至少三篇,其中写了很多demo
而很多朋友看书就跟看连环画似的,第一次看一个星期就看完了,我是该说你悟性高呢还是喜欢装B啊,这种书要细看,要慢慢看,要反复看
学习要有成果,学习要有效率,比如这小半年我就干了这些事情,是拿的出来的:
那各位看书后,或者看博客后会留下痕迹么,如果留不下痕迹,那么多数就给忘了
第三个阶段当然是读源码了,一定要读源码,而且必须好好读!!!这里尤其推荐读自己熟悉并且不太包含思想的源码
比如我上个星期看了下backbone就搞得莫名其妙的,原因是没有用过,这里推荐几个库:
zepto与jquery类似,说白了就是借鉴,但是zepto很是轻便,读起来轻松,但是首次读若是没有半个月的话基本就是没读(不考虑神人)
因为工作后很少专门有时间去读源码,读的时候要细细的读,看不懂的地方就反复看,慢慢的就全部清晰了
zepto读完后,整个js的水平会看似上升一大截,这个时候再加紧来点经验就稳稳的前端入门了
第二个推荐的库是underscore,这个库比zepto还要简单,建议好好读下,务必读明白,不要不懂装懂
若是有移动端编程经验的朋友,建议好好的读下这个库,写的非常不错,完了后会让你对移动端的事件兼容有深入的理解
与Fastclick类似的库
初级程序员读以上几个库就差不多了,而且建议花一到两个月详细的研究一个库,并且将里面的思想用于项目中去,这样才能真正的吸收
读源码不是看热闹,看热闹会一问三不知
以上几个阶段结束后,就可以去外面看看自己的斤两了,真的做到以上的朋友,基本是面几个有几个了,真正的瓶颈就出现在大公司了
这个时候又到了另外一个阶段:
① 深度-细节点
② 广度-知识面
以细节点来说,真正的高手一个javascript事件机制就可以问的多数人哑口无言:
① javascript绑定事件的方式
② javascript事件对象
③ 自定义事件
④ 如何触发自定义事件
⑤ zepto/jquery事件机制
⑥ 解决移动端300ms延迟
⑦ ios android事件差异
⑧ 事件冒泡/捕获机制以及鬼点击
⑨ javascript事件底层实现......
以CSS来说,一个position就够了
① Position的各种属性值
② 行内元素块级元素
③ 行高问题
④ fixed在移动端的问题
⑤ 由fixed引导至viewport
⑥ 缩放等等问题......
所以,javascript真正的高手对这些把握是很细的,不是全部都会,但不可能全部都不会。这里可能会有朋友提出学院派以及实干派的想法
其实我的道友Aaron就是真正的实干派,完全白手起家,他就肯定知道这些问题,至少七七八八
所以深度一定要有,而且是慢慢积累的,不信看正美那700篇博客吧,有了深度再提广度,不然你的广度就不值钱
深度完了就是广度,光有深度还不够还得有广度,广度代表业务能力,代表工作水平
① nodejs
② 打包工具
③ H5嵌入APP
④ 移动端调试工具(如何在手机console,如何在页面上调试手机程序)
⑤ 压缩工具
⑥ 项目管理工具(git/svn)
⑦ 各种开源框架
这些都是广度的体现,优秀的人不只是知识稳固,而且还能推动团队使用新技术,带给团队不一样的感觉
前端知识点繁杂,绝不止局外人看见的那么点
若是你发现各个大公司想去就去,offer拿到手软了,那么恭喜你,你成为了中级程序员了!!!!
然后再怎样我就真不知道了,我的眼界暂时只能到这里了,希望对处于迷茫阶段的前端同学有所帮助
招聘要求:
不要提钱,那个团队不差钱,就是非常任性!!!
① 前端高手
② 可培养、吃苦耐劳型优质新手资源
③ 有开源框架甚好
④ 能读流行源码甚好
⑤ 工作3年以上甚好
⑥ 有大项目经验,大项目优化建议甚好
水文结束,不喜勿喷,想面试的请私信