前言
之前在博客上写了一篇装逼的博客《我是如何同时拿到阿里和腾讯offer的》,在文章上面本着学习和共享的精神分享了自己的简历,无意中暴露了不少个人隐私,结果这几天不少认识的和不认识的朋友都加我QQ或微信,请叫我怎么学习Web。在只有一两个人问的时候,我都是耐心回答的,但从长远的角度来看,还是写一篇博客来压压惊好一点。需要声明的是,此文章中的观点仅代表个人意见,不代表大众的观点,如您有异议,欢迎在评论中指出。
从哪里来
Web现在是一个非常热门的话题,不管是计算机专业的还是非计算机方向的,都嚷嚷着要学Web。从我个人的角度来看,如果您真的想学Web,起码保证您是理工方向的。这完全不是看不起文科生,只是大部分理工专业都会涉及计算机方向的课程,比如操作系统
、编译原理
、计算机网络
、计算机组成原理等
。这些课程看似没有实际作用,但深刻影响着你的编程思想。换一个角度说,你知道越多越底层的东西,越有利于你以后的发展。
Web是一个自定向下的方向,一开始你就写HTML
、CSS
和Javascript
,看到了炫酷的效果,但是对于背后的原理一无所知。只有一直往下学,才会越精通。这和我们的课程学习不同,学校一开始就安排计算机组成原理
和C++
这类课程,给了你一个自底向上的学习过程,所以一开始总是枯燥乏味的,只有学到后面才能有乐趣,但是很多人没等体验到乐趣就已经放弃了。
所以,我希望所有想学习Web的同学,一开始就要想明白,自己是不是真的对Web感兴趣。如果没有兴趣,这个自顶向下的过程会让你越来越枯燥,直到放弃。
该从何开始
万事开头难,如何快速步入正轨可能比掌握一些高级技巧更加重要。
前端很大的一个特点是入门容易精通难,所谓容易也不是分分钟就能学会的,我推荐按照下面的步骤去试试水。
好好把w3school上面有关HTML、CSS、JavaScript部分看两到三遍
相信W3School是很多Web开发者的启蒙老师,这个网站有一个好处就是标准,并且支持在线编辑,这样能够很好巩固每一个知识点。当然,我还是非常推荐大家一开始就去看这个网站的英文版(不幸的是英文的网站http://www.w3schools.com/貌似要翻墙才能访问,用Chrome的朋友推荐大家用红杏这个翻墙插件http://honx.in/i/VKquOX8mTlxxAR1U。)看英文好处还是非常大的,因为等你技术成熟,想找到高级问题的解答的时候,通常都是英文问答才能满足你的需求。
一开始就应该多看书
很多初学者有一个很不好的习惯就是为了实现某一个效果,网上查了一些demo代码,用上了觉得很开心。这样做很不好的一点是,即便你弄懂了demo的原理,你的知识还是支离破碎的,没有系统性可言。所以,一开始多看书潜意思里面培养自己的编程思维很重要。在这里我想推荐一些我看过的觉得好的书。
《JavaScript DOM编程艺术》
很经典的一门入门书籍,对于初学JavaScript的同学来说还是很重要的。建议把书本上的代码都老老实实敲一遍,特别是最后面那个静态网站Demo。《JavaScript高级程序设计》
一本经典到不能再经典的书。这本书有700多页,可是我我前前后后大概看了三遍。看这么多遍是有原因的,第一这本书的知识点广而浅,看完第一遍你就可以知道JavaScript到底能干啥;第二,这本书耐读,随着你对于JavaScript理解的深入,对于这本书的理解也将深入,你会发现这本书第四、五、六、七章大大道出了JavaScript的精华,实在是写得好;第三,这本书对于面试还是非常管用的,本人也是在面试前花了几天把这本书再次过了一遍,效果很好。所以学前端的同学都买一本实体书,好好琢磨。《JavaScript权威指南》
这本书的赞誉很高,我也有这本书的实体书,是一个朋友送的,老实说这本书我并没有看很多,但是仍然建议大家好好看看,因为凡是书名中加入了指南
二字的,几乎都为佳作。《CSS实战手册》
写前端最痛苦的莫过于调CSS样式了,本人对于CSS并没有多少好感,只推荐不说话。
这远远不够
老实说,即便你把我上面说的都学习了一遍,也未必能够成为一个前端工程师,因为前端实在是太广了,而且经验非常重要。所以实战比什么都重要。
说到实战,很多人第一感觉就是,我实战什么?让我做一个项目,我一开始那个水平远远不够;让我写一个个人主页?我好像还没有优秀的设计才华让我觉得我做出来的主页足够惊艳。于是,资源成为了非常重要的一点。我们学校有一门课叫做Web2.0程序设计
,我还有幸做了一个学期助教,感觉这门课的作业还是相当有用的,如果能好好把十多次的作业认真做一次,前端怎么也入门了。可惜的是,校内资源还是不要随意公开好,以免生事。
如果我没有好的资源,在这儿说这么多也是扯淡了。我本身在我们学校的一个Web俱乐部,俱乐部有很多优秀资源,当然也包括培训作业什么的,如果你需要,可以在评论注明你的邮箱,我会提供一些资源。
项目项目项目
项目对于任何一个工程师来讲都是非常重要的,书看再多也是理论,只是实战操作才是王道。我刚开始做项目的时候,是跟着一个团队写写简单的页面,尽量跟着别人学点东西。跟着师兄师姐学东西还是很有好处的,之前说过,Web是偏经验编程的,别人做得多了,自然懂得也多。
当然,很大一个问题是,项目哪里来?这涉及到另外一个话题,就是怎么做一个不止会写代码的程序员。我个人认为程序员总归不是一条长远的路,等到年龄增长,思维跟不上年轻人,终究是需要转型的,所以在转型之前培养人际关系什么的尤为重要。于是,项目一开始都要自己主动去找,如果你不能很好把自己推销出去,面试的时候也很难表现良好,所以,多接触懂技术和搞技术的人还是很重要滴。等你技术成熟了,不需要自己去找项目,通常都是项目找上门。本人建议,在你找工作之前,怎么都得做上五六个项目。
不只是JavaScript
很多人误以为前端就是写写CSS和JavaScript,很简单的,其实不然,一个合格的前端工程师需要掌握的比这个多得多。在这里列举一下本人简历上的技术栈,告诉大家前端有哪些值得掌握技术。当然这些技术绝对是皮毛。学到后面怎么挖掘自己需要的技术才是更重要的。
- JavaScript类库:jQuery、Prototype
- JavaScript框架:BackBone、Vuejs、Angular.js、React.js
- CSS预编译器:LessCss、Sass
- JavaScript模块加载器:RequireJS、Browserify
- 项目构建工具:Grunt、Gulp
- 项目管理和协同工具的使用:SVN、Git
- 前端测试框架以及工具:Jasmine、Mocha
- 基本后端开发:NodeJS、Python
- web相关技术:MongoDB、CoffeeScript、SEO、Socket.io、Express、Tornado等
不要停止看书
上面推荐的几本书很好,为什么不一口气推荐完呢?理由很简单,有些书适合初学者,有些书就只适合中高级开发者。我接下来推荐的几本书入门者去看也看不懂,没有足够的编程积累,看起来也没有那么深的体会。
《JavaScript语言精粹》
好书!如果你编写的JavaScript足够多,就会发现里面字字珠玑,耐人寻味。《基于MVC的JavaScript Web富应用开发》
Web前端架构级别的书,每一项技术都是目前的热门,看上两边不为过!《JavaScript设计模式》
当你做富交互的应用的时候,就会知道这本书有多管用!《HTTP权威指南》
虽然是学前端,但是如果一个前端工程师只会前端那也不叫前端工程师了。深入理解HTTP协议对于Web性能优化非常重要,对于前后端交互也能有更好的体会。一本值得啃的书籍。
好书太多,等到了一定水平,自己发掘去吧~
总结
其实说了这么多,也暴露了Web前端的缺点,作为一个国内的新兴职业和朝阳职业,不可能有系统级的教程,一切真心需要自己自己琢磨,我只能帮你到这儿了。如果您觉得对您有用,欢迎点个赞~