1 重复读了两本经典的前端书籍:《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方案研究
⑥ 移动端调试工具研究
⑦ 深化重构思想、深化面向对象思想、深化工程思维
⑧ 扩大视野
第三个阶段当然是读源码了,一定要读源码,而且必须好好读!!!这里尤其推荐读自己熟悉并且不太包含思想的源码
比如我上个星期看了下backbone就搞得莫名其妙的,原因是没有用过,这里推荐几个库:
Zepto
zepto与jquery类似,说白了就是借鉴,但是zepto很是轻便,读起来轻松,但是首次读若是没有半个月的话基本就是没读(不考虑神人)
因为工作后很少专门有时间去读源码,读的时候要细细的读,看不懂的地方就反复看,慢慢的就全部清晰了
zepto读完后,整个js的水平会看似上升一大截,这个时候再加紧来点经验就稳稳的前端入门了
underscore
第二个推荐的库是underscore,这个库比zepto还要简单,建议好好读下,务必读明白,不要不懂装懂
Fastclick
若是有移动端编程经验的朋友,建议好好的读下这个库,写的非常不错,完了后会让你对移动端的事件兼容有深入的理解
iScroll
与Fastclick类似的库
初级程序员读以上几个库就差不多了,而且建议花一到两个月详细的研究一个库,并且将里面的思想用于项目中去,这样才能真正的吸收
读源码不是看热闹,看热闹会一问三不知
自己学习前段也接近一年了 但是效率比较低,希望通过这些计划来 一步步加强自己的学习。
1.看书是最好的途径 不在多 在于精反复阅读 JavaScript高级程序设计 和 css揭秘(最新出版的css秘籍)
2.由于自己反复了学习原生js的知识 但是缺少实践。所以加强js的练习。
3.jquery是自己最常使用的 库。通过jquery库来实践出更多的功能 一来更加熟练使用jquery 二来增加自己的编程感觉
4.开始仔细学习h5 的新知识 当然最主要的还是js的能力 所以阅读几个js源码。 underscore zepto fastclick backbone 反复仔细的研究 对提升你的js很有帮助
高手行列(取自叶小钗叶老师的博客)
以上几个阶段结束后,就可以去外面看看自己的斤两了,真的做到以上的朋友,基本是面几个有几个了,真正的瓶颈就出现在大公司了
这个时候又到了另外一个阶段:
① 深度-细节点
② 广度-知识面
以细节点来说,真正的高手一个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拿到手软了,那么恭喜你,你成为了中级程序员了!!!!