我的前端学习之旅
正文
事实上我不是一个很喜欢回忆很久以前事情的人,因为我对于这些记性比较糟糕,就像javascript垃圾回收机制。所幸之前有写日志备份资料的习惯,从中一点点回忆曾经摸索的经历。因为感觉自己技术比较渣,但一直坚持学习,今年刚入大三也算完成自己大一制定的职业规划(现于某创业小公司作为前端开发)。
大一
其实高三之前我有过编程经历,不过一直没想到自己会走上web开发这条路。如果早知道如此,初中便跟随大神S学php或许现在还能有点沉淀。:)
大一刚进来就准备当学霸,没错,目标就是这么”伟大”。当初一头扎入学习的海洋。装了半年学霸后除了这个头衔能伴随我的大学生涯,我收获了:
1.知乎
2.时间管理
3.大量阅读技术类书籍以及编程思想相关的书。
4.Mooc(完整的跟完史记和中国历史人物秦始皇。玩票的跟完andriod开发)
5.Acm经历,后来觉得自己不适合于是逃票了。
因为大量的阅读,web这块我好像名词懂的很多。
也是这个阶段,我有了一种职业应该是网站开发这块的想法。
第一次接触前端项目
当初不知道名声是怎么传出去的,反正后来有个朋友介绍一个外包,一位艺术系老师需要一个产品展示站。事实上我当初水平很浅,但是初生牛犊不怕虎接了下来。这位艺术系老师自己设计网站,设计稿有了,整站用php做,上面说过大神S是初中开始学php的,因此对于整站开发我也有大概的思路,去图书馆借了几本书.然后就直接开做了,网站基于PHP+mysql.后来这位老师在开发期间请我去咖啡馆调试细节(人生第一次咖啡馆)。结束后还请吃了顿大餐。并付了报酬。这对我来说鼓舞很大。而且因为这个项目的缘故我开始对前端深入学习。
大一暑期实习
因为我奶奶的对我的关心,于是我被一名亲戚托关系送到一家公司实习,打杂。当时很惶恐,因为感觉自己什么也不懂。于是每天早晨公司都没开门的时候就到了。那家公司Boss人很棒,他给我指了学习的道路。那时候第一次听说有Bootstrap。第一次听说BackBone(但对于当时的我来说,那很难)。在公司其实没做什么产品,但是Boss给了我很大的触发,他让我负责一个项目的设计。这对于我来说受益无穷。不过当时公司的前端因为产假并不在,因此我没有接触到真正的前端应该是如何工作的。后来因为Boss让我学Node.js,没错,大一暑假我就知道了Node.js,当时如同天书一般。因此我逃避了。干满一个月我提出了结束。
现在想想当时内心是非常恐惧的,因为当时确实什么都不懂,一下子接触到Node.js这么高大上的东西,感觉自己无法掌握。
后来我自己琢磨着,悟出了一个道理,一家公司需要的是能干活的人,一旦你进入公司,你不可能从基础做起,你需要的是能产出产品的能力。
于是我开始发奋学习。
大二
大二我正式确定我的职业为前端,大多数前端都是野路子,我也是,因此我大量阅读,幸好当初还有个更加困难的东西-ACM在摧残我的自信,因此我学习基础的并没有多大问题。
后来在ACM群一位学姐邀请我去实习,闭关几个月的我感觉应该做些东西,因此在那家公司实习了几个月。后来因为一些原因,我感觉不到我的进步,于是我辞职了。这次不是逃避,而是看清了自己努力的方向。接着我学习了Ruby,学习了Rails。第一次知道社区,从社区中我看到了很多,学会了很多。还线下参加过活动。后来还开发了一个阅读分享的Web应用。从后台到前端一手包办。
不过那个阶段心性没定,还想着学ios,学swift。后来学了一个月,觉得非人哉,弃坑。
这个时候第二个转折点来了。
这个时候,不知道名声怎么传出去的,咦,好熟悉的感觉。
有人找我一起做外包。当时没啥事,就应下了。
期间各种学习各种磨合各种感想我都忘了。于是我们来说结果,第一个外包飞单了,第二个外包拿到了钱。
大二暑期
这是我人生的爆发期,我什么地方也没去就窝在家里学习。我定下了学习目标,按部就班。
我学的是Node.js和React。
学Node.js的时候顺便学了Express4.x,并写了几个项目。
学React的时候结合Node.js写了一个私人定制版咨询应用,现在我每天看的咨询都是它爬的。
还在github开通了博客,记录学习经验。这个期间我积累非常多的东西,明白了前段自动化流程,学了gulp。期间跟大神S聚餐,看到他在给一个开源翻译项目作审核。于是我在博客开了一个国外优质文章翻译系列,坚持了20多天,把积累的大部分给输出了。这个过程让我眼界大开。
并且我养成了屯学习资源和每天学习的好习惯。
暑假两个月,脱胎换骨。
大三
开学初直接跟暑假谈好的公司,于是真正成为了一名前端工程师。
于是我完成了大一的职业规划之旅,并开始我大三的职业规划之旅。
我的学习经验
曾经为了回报知乎,我做了一个前端技能树的网站,结合自己的学习经验我谈几点:
初学者:
1.学会翻墙
2.学会自己搜索资源(更全的学习曲线知乎现在都有很多大牛总结了)
3.学会坚持
初学者Js路线:
第一步果然还是w3school。
http://www.w3school.com.cn/js/index.asp
这个,刷的又快,半天能解决,然后有一点概念你就能写最基础的js。
第二步
根据自己的学习能力分为看书或者视频,但是!没有人能从视频中把js学的很好,顶多就是会用!
因此看视频能掌握很高深的内容只是一个自我心理欺骗而已。所有的知识除了书本就是网上大牛的文章或者回答。
这一步的书我推荐Head First系列的Javascript系列,我认为对于新手而言,没有什么比直接上手制作一个小项目更有成就感更加有效果了。
在这一步中可以去看慕课网的一些基础视频。
第三步
学习一些常用框架和库,推荐Jquery上手,然后可以接触其他框架,并不需要强迫学习,不过还是建议用用看。比如BackBone。
第四步
学习一些Mvvm的框架或者库,比如React,Vue.js,Avalon。
基础
不懂就百度,百度不到就google,不会google就去学翻墙,不会翻墙就学会买买买。这么简单的事情不需要说第三遍。
国外的内容超级多有质量的文章。还有多订阅一些国内的前端优质内容。这年头,咨询是王道。
还有开发工具的使用一个是sublime2/3,一个是国内开发的Hbuilder.至于其他Atom什么的我没怎么用就不说了。
善于自己去学习这是非常重要的。
初学者Css路线:
第一步果然还是w3school。
http://www.w3school.com.cn/css3/index.asp
这个,刷的又快,半天能解决,然后有一点概念你就能写最基础的css3。
=-=你会发现这边的说辞和javascript一样一样的,毕竟最简单的就是刷概念。
第二步
根据自己的学习能力分为看书或者看文档。
所有的知识除了书本就是网上大牛的文章或者回答。
这一步的书我推荐Head First系列的css3系列或者Html系列,我认为对于新手而言,没有什么比直接上手制作一个小项目更有成就感更加有效果了。
在这一步中可以去看慕课网的一些基础视频。
然后就是去大漠的站学习
http://www.w3cplus.com/
想提高自己,看不懂一些含义?
张鑫旭的博客你刷几遍就行了。
http://www.zhangxinxu.com/wordpress/
第三步
学习一些常用框架,推荐Bootstrap上手,然后可以接触其他框架,并不需要强迫学习,不过还是建议用用看。
第四步
去codepen.io把popular的你挑喜欢的看一遍,自己尝试一遍。但是,codepen可能需要翻墙,还有些效果需要js这类。还有些css代码是sass来写的。所以还需要自己多提高然后再去尝试这些难的。
关于Sass
请自己查资料学习,快的一天就能上手。主要是编译问题,可以看我博客前端环境的搭建。
PS:
正式开发中或者自己小项目中,你可能没有设计稿这类,可以去
http://themeforest.net/购买Admin后台模板来尝试自己的小项目。
关于书籍推荐,首先我个人认为书是死的,你能从什么书中学到一些东西,那么这本书就是好书。然后看书的时候你必须做笔记,必须做笔记,必须做笔记。嗯,重要的事情说三遍。
javascript:
JavaScript DOM编程艺术
JavaScript Dom高级程序设计
JavaScript高级程序设计(第3版)
精通JavaScript
ppk谈JavaScript
锋利的jQuery
高性能JavaScript
JavaScript语言精粹
JavaScript权威指南
编写可维护的JavaScript
Effective Javascript
JavaScript设计(和下面的是两本书哦)
JavaScript设计模式
css:
CSS权威指南 (第3版)
精通CSS
Css禅意花园
图解CSS3:核心技术与案例实践 (大漠的书,必看。可以当成字典。)
总结
现在我每天依旧坚持学习刷咨询刷优秀博客,不管每天上班还是上课,我都会抽时间看书而且写博客。
我现在觉得写博客是提升水平的最好途径。因为你只有输出才会有积累。
初学者最好建立自己的技术博客,当你学到一定程度时你会发现自己走过的路有多美。