前端工程师学习路线 --书籍

前言

  前端工程师在中国兴起也就5年左右,之前公司里没有专门前端工程师的这个职位,不少前端方面的任务都是由全栈工程师来完成,有的基础一点的后台或者设计的帮助分担一些。可是随着互联网的快速发展,特别是所谓的Web2.0的发展,前端业务变得复杂起来,须要有专业的前端工程师来知足用户多样化的需求。javascript

  然而,高校的计算机教育并无跟上互联网快速发展步伐,如今高等学校里没有的前端课程,对于须要打基础的前端同窗来讲学习起来比较困难。 学校里没有前端的课程,那如何学习JavaScript,又如何使本身成为一个合格的前端工程师呢? 若是入职了,能够在项目中学习和跟着有经验的同事学习,而对于尚未入职的同窗,书中就有着相对完整的知识体系,每读一本好书都会带来一次全面的提升。但若是深一脚浅一脚的学习,写出代码的质量会良莠不齐。初学者的首要任务是成为靠谱的熟练开发者,可以稳定的输出有必定质量的代码,这样才能让人放心的把任务交给你。不过前端原本就是一门杂而多的领域,刚进入前端,可能难度不大,可是要进一步系统深刻放入学习,思路就不会那么清晰。前端书籍又难以正确挑选,很容易就会迷茫。废话很少说,入正题。介绍一下前端学习的一些书籍(后面附有前端海量资源,点击访问)css

学习路线

大部分技术,熟读下列四类书籍,就是一个很好的学习提高html

  • 入门,用浅显的语言和方式讲述正确的道理和方法
  • 全面,巨细无遗地探讨每一个细节,遇到疑难问题时每每能够在这里获得理论解答
  • 实践,结合实际中常常遇到的情景环境,来描述如何设计和解决问题
  • 深刻,讲解一些文化,思路,甚至于哲学上的东西,真正作到深刻一种语言去编程,如unix编程艺术,程序员修炼之道等等

接下来介绍的这些书籍,无法说这是前端学习最优路线,但真看进去了得到一个IT民工从业资格是没啥问题的。(HTML和Web标准这里就不介绍书籍了,这个书籍的话也没有什么表明性的。HTML知识很少,主要就是要领悟Web语义化的精髓,结构决定上层建筑。Web标注你们去W3C中国官网去查找,按照标准来,写多了,天然就理解标准了,背下来没用。) 前端

书籍推荐(CSS系列)

推荐书籍:

  css那些事儿,精通css(高级Web标准解决方案)。java

  理由:一、css那些事儿,他是一本介绍css基础类的书,是入门的经典读物。系统的介绍了css的选择符,伪类,工做环境,盒模型,两列,三列自适应布局。文字样式,图片处理,列表,表单,还有选项卡,相册,导航,新闻列表等其它大部分的实践。二、精通css,这书已经出到第二版了,相比初版,第二版的大部分目录结构保持不变,内容变得更丰满了。此书从一另外一个视角介绍了css的博大精深。我通读了三遍,以为做者心思细腻,真的吧这个职业作的很标准。 

书籍推荐(JS系列)

第一批次

入门级,也适合想掌握一些前端技能的非前端工程师 <JavaScript Dom编程艺术>jquery

第二批次

成为一名合格的前端工程师 <JavaScript高级程序设计>(或<JavaScript权威指南>) <精通JavaScript>程序员

第三批次

更优秀的代码,更优良的设计 <JavaScript语言精粹> <JavaScript设计模式>正则表达式

第四批次

  从语言细节到复杂工程实践,想开发靠谱的各种底层代码,应该看看 <Secrets of the JavaScript Ninja> <JavaScript Patterns> <ECMA-262 in Detail> 应该重视跟踪阅读一些大牛们的Blog了编程

番外篇

各种专题书籍,读好第二批次书籍以后,有精力就接触下设计模式

  • <高性能网站建设指南>
  • <高性能网站建设进阶指南>
  • <高性能JavaScript>
  • <Ajax实战>
  • <JQuery实战>
  • <精通CSS>(或<CSS权威指南>)
  • <正则表达式必知必会>(或<正则表达式权威指南>)
  • <HTML5与CSS3权威指南>
  • <NodeJS开发指南>
  • <深刻浅出Node.js>
  • <锋利的jquery>

找书技巧

关于一个主题的书不少,那咱们怎么找到一本合适咱们阅读的书呢?由于适合本身的才是最好的。下面是一些些小技巧:

  1. 在各大图书网(如当当、亚马逊、京东等)上搜索关键词,如jQuery,能够选择按照销量或好评排序,通常排在前面的就是很抢手的好书,值得阅读
    1. 若是想看一本书的评价怎么样,那就去豆瓣读书搜索吧,那里的评论仍是值得参考的  

JavaScript Dom编程艺术(第二版连接) 
 
  话说这本书的中文名有一些标题党的,当初若是知道这仅是一本入门书籍,我是不会买来的.拿到后一天就看完了,对我来讲没有太多技能上的实质帮助.不过这个书语言很流畅,重要的是对知识深浅度把握的很好,html/js/css/dom各个方面都把握在一个合适的度,这很符合我对书籍指望,一步步走,每一步都踏踏实实. 
  这本书经过几个实例,按部就班的介绍了前端开发的方方面面,让你们可以了解前端的技术体系概况,又能具有了一些简单的动手能力.若是你们对我以前写过的<浏览器端技术体系概览 -- 前端开发的七种武器>有些感受,那读读这本书正好能上手实践一把. 
  去年淘宝前端懒懒交流会的豆瓣小站上作了一个调查,若是非要您推荐一本适合新人学习的js方面的书,您的推荐是什么?虽然投票的人很少,但这本书倒是遥遥领先. 

JavaScript高级程序设计(第二版连接) 
 
这本书的初版很全面且不枯燥的书籍,年纪轻轻的NCZ有这样的大做难能难得.读懂这本书,前端技能又能够上一个台阶,基本上能够成为专业的前端工程师了. 
      对于当时的我来说,这本书及时的补充了浏览器兼容性方面的知识,特别是事件相关的知识,这个浏览器间差异最大.有些内容讲的很是简单明了,好比call和apply的用法,以前老是理解很差,NCZ几句话+一个例子就说明白了. 
      然而做为全面型的书籍,初版也是有一些问题的: 
      1.闭包只半页篇幅,没说清楚. 
      2.匿名函数没怎么讲. 
      3.全书没提到constructor,更别说hasOwnProperty,__proto__. 
      这带来了我以前说的深一脚浅一脚的困扰,这些知识基本上是经过<JavaScript权威指南>阅读中补充的,固然当时版本的权威指南也有一样的问题,好比它没解释instanceof.也没提到__proto__.这形成了我对面向对象理解的不全面,当时在作了N多测试后还很蛋疼的写了一篇博文<JavaScript constructor和instanceof,JSOO中的一对欢喜冤家>,后来接触到<JavaScript设计模式>关于OO的全面论述以后,果断删掉了这篇JY. 
      相信这本书的第二版,以及权威指南的第六版确定会在这些方面进行补充.不过这两本书都是十足的大部头,高级程序设计第二版已经比权威指南去除附录要厚了. 
      一本全面且不枯燥的书太难找了,因此我仍是喜欢初版.对我技术上的提高帮助很是之大.忍不住再秀一张图(当时在封闭开发Alimama.com,马云时常来,他不愿在书的第一页签名搞得好像他写的,因而把签名画在了第二页.) 


精通JavaScript 
 
      我会把书籍分红两类,一类是全面型,一类是犀利型.前面介绍了一本全面型的书籍,接下来介绍的这本的特色是很是犀利,这类书籍的特色是做者能找对重点(2/8原则掌握的很好),在重点位置深刻挖掘.这本书的做者John Resig也是JQuery的做者,他显然是个足够犀利的人儿.JQuery从未承诺解决全部问题,但再一些重点部位的突破,让这个类库如此流行.这本书并无着重介绍JQuery,仍是基于原生的JavaScript和DOM API. 
      列一些这本书的重点话题,可以很好的看出做者为何会开发出JQuery,或者说JQuery为何是如今的样子: 
      1.如何建立可复用的代码?如何调试,测试?(这是基础) 
      2.如何判断DOM什么时候加载完毕?如何遍历,修改DOM?(JQuery以DOM为核心,节点的增删改查,事件响应是重点)
      3.如何肯定元素的位置,相对于页面/屏幕?如何作平滑的动画?(思考下CSS相关的话题不少,做者为何选了这两个?) 
      4.如何改进表单验证,封装完整的Ajax程序?(涉及数据交互,是另外一个重中之重.) 
      不算厚的一本书,基本上就是以上的话题+几个实例.当咱们看过了一本全面型的书籍,对前端的知识有了深刻的了解以后,这本书的做者指出了从此的重点,并告诉你们如何把知识用到解决重点问题上. 

JavaScript语言精粹 
 
      推荐你们看看阮一峰老师的博文<JavaScript诞生记>,JavaScript是Brendan Eich大神10天时间设计出的语言,如今成了Web前端领域的惟一语言. 
      一方面这门语言博采众家之长,也帮助它维系了长久的生命力: 
      "1.借鉴C语言的基本语法; 
       2.借鉴Java语言的数据类型和内存管理; 
       3.借鉴Scheme语言,将函数提高到"第一等公民"(first class)的地位; 
       4.借鉴Self语言,使用基于原型(prototype)的继承机制。" 
      另外一方面"因为设计时间过短,语言的一些细节考虑得不够严谨,致使后来很长一段时间,Javascript写出来的程序混乱不堪。"Brendan Eich对其这10天工做的评价是:"它的优秀之处并不是原创,它的原创之处并不优秀。" 

      Douglas Crockford经过<JavaScript: The Good Parts>这本书对JavaScript进行了一次大审判,老道认为JavaScript语言有不少优秀的地方,也有一些鸡肋和糟粕.老道不反对用这门语言,在规避一些鸡肋和糟粕以后它天然是优秀的. 
      老道认为JavaScript优美的特性以下: 
      1.函数是头等对象(能够做为其余函数的参数和返回值,支持闭包) 
      2.基于原型继承的动态对象 
      3.对象字面量和数组字面量(构成JSON的基础) 
      老道列出了不少鸡肋和糟粕,并提供了JSLint这个工具,来校验代码是否使用了很差的部分.书中给出的语法图让我有深刻学习一下<编译原理>的冲动,也理解了JSLint做为用JS语言分析JS语言的工具成型的理论基础. 
      强烈建议你们使用JSLint来检测本身的代码,可是咱们没必要教条,能够违返其中一些的检测规则,只要咱们清楚老道为何会设置这个规则,有什么风险?若咱们不遵照这个规则,是否能回避相应的风险. 
      我以为这本书最重要的意义是告诉咱们为何"它是鸡肋,它是糟粕"这是通过前面的学习和大量实践以后,成熟的开发者应该关注的.好比: 
      1.hasOwnProperty,老道说它糟粕的缘由是由于这不是一个关键字,而是一个Object.prototype上能够被重写的方法.那么这个告诉咱们,并非不要用hasOwnProperty,而是要注意不要覆盖它. 
      2.eval的主要问题是性能,大量的eval(类eval)语句下降了JS引擎的性能.而通过测试少许的eval语句+eval大段的JS文本性能并不差,有必要也能够考虑使用. 
        
JavaScript设计模式 
 
      这是一本介绍JavaScript面向对象编程以及设计模式很是好的书籍.相对于又一本全面型书籍语言精粹,犀利型书籍登场了. 
      我对面向对象的见解是:隐藏细节,方便作大.基于良好的抽象和封装,咱们能够方便的自顶而下的设计,自底而上的开发.面向对象的优缺点不是本文的重点,这里不讨论,只能说这是一个很是不错的代码设计实现方法论. 
      JavaScript究竟是不是一个面向对象的语言,从本质说必定是的,从表象来讲OO的不那么明显.咱们必须经过一些额外的代码实现诸如,划分公有/私有,接口,继承,多态等特性.因为JavaScript语言的灵活性,实现的方式很是多.这本书的第一部分对常见的两类实现模式:类式继承和原型继承都有很是好的最佳实践总结.因此个人想法是彻底读懂它,而后按照这个来作就行了.若是这里介绍的实践足够强大,咱们没有必要发明新的继承实现模式了,事实上YUI一直是这种模式,而新的JavaScript引擎甚至引入了Object.create方法,将一些动做写入标准内置在JS引擎中. 
      咱们应该将视点放在设计模式上,GoF的设计模式那本书里的例子,对于前端开发来讲并不都是很好理解,而这本书的例子所有是前端相关,有助于你们理解设计模式的精妙.还有些同窗说,即便我不了解GoF的理论,我也在默默的用这些模式了.确实是这样,但我想咱们关注设计模式,不光要学会各类模式是怎样的,更重要的是学习到各类模式适合什么场合,不适合什么场合.了解有什么优势,也要了解有什么缺点,你正在默默使用的模式存在隐患么?系统学习以后会对其更有把握. 
      前几天听同事说这本书全面断货,不知道是太火,仍是印的太少,但愿能尽快看到上架. 

Secrets of the JavaScript Ninja 
 
      进入第四个批次,这里的书籍多数没有中译本出版.现阶段想开发靠谱的底层类库代码,确实须要啃一些外文书了.英文书不少,没有精力大量阅读,一般读一些口碑较好的书籍. 
      另外,到了这个批次,个人阅读量也至关的有限,因此确定有不少好的内容没有提到,指望你们能继续推荐.并且到了这个批次,书籍产出确定跟不上知识的更新速度,跟踪阅读一些JS大牛们的Blog应该成为习惯. 
      这是JQuery做者的第二本书,天然又是犀利型的表明.John Resig已经陆续放出这本书的大部份内容,从2008年开始写,计划2012年5月出版. 
      若是说JR的第一本书可以看出为何有JQuery,那么这本书能看出让JQuery发展下去,做者关注了哪些.咱们会看到其实一些很细节的内容,好比强调测试用例的构建/自动化测试的方法,好比如何利用每一个function实例的length属性,好比对with,eval的思考和发散等等. 
      关于这本书具体如何的好处,我还理不清,拿来开开眼界是很是不错的.记得玉伯大大组织了一波同窗在翻译,不知进展如何了. 

JavaScript Patterns 
 
      乍一看这本书标题,觉得又是一本讲设计模式的书,那和<JavaScript设计模式>重复了,开始没有仔细关注.今年拔赤推荐了它,才发现者并不只仅介绍GoF的设计模式而是涵盖前端开发各个方面的先进理论。虽然是09年的书,这两年前端的不少较深入变化在这边书里都能看到雏形。上一本书犀利,这本更全面。 
      做者Stoyan Stefanov是Yahoo的前端技术专家,从这本书中能够看到不少YUI3设计上的本源,好比在对象建立模式中介绍的模块模式/沙箱模式.近来CommonJS Loader的流行在这之上的继续深刻发掘.这本书还包括代码测试,打包,部署,加载策略等各个流程中的诸多细节,这些构成了完整的体系在Yahoo在YUI3都有很是好的实践. 
      据说咱们的同事拔赤和一舟在翻译这个本书,很是期待. 

ECMA-262 
      这不是一本书,是俄罗斯小伙子写的一系列ECMA-262标准分析文章,ECMA-262-3系列已经很完整.标准像汇编语言同样枯燥,而这系列文章把枯燥的标准转化为一系列深刻讨论的话题,配合恰到好处的示例,必定会让你们对JS引擎的认识再上一层. 
      网上有一些译文,可是因为相似文章译文比较少,不少英文还未达成一致表述,因此推荐阅读英原文.另外做者很好,遇到的棘手的问题,去咨询他都能很快收到很好的回复. 

期待:一本JavaScript语言做者或引擎实现者写的书 
      一直以来期待JavaScript能有一本像C语言的K&R这样的大做,最近也在读计算机系统概论补一些大学时没学好的知识,很是认同书中"自底而上"的学习路线.我想对JavaScript引擎的透彻分析,可以减小你们看着实验结果,猜想着写书的境况.随着NodeJS的火爆,引擎的技术分析文章愈来愈多,期待很快出现集大成者. 

高性能网站建设指南  进阶指南  高性能JavaScript 
 
      进入番外篇,推荐的书籍都是有针对性的领域之做,内容每每并不高深,你们根据本身的实际状况进行选择阅读. 
      高性能的网页是前端必然的追求,Steve Sounders率先在Yahoo开启了这方面的专题研究,伴随着<高性能网站建设指南>的出版和YSlow工具发布.网站性能优化,特别是前端角度和运维角度的优化方案,进入了人们的视野,同时得到了巨大的效果,甚至造成了名为WPO(Web Performance Optimization)产业. 
      第一本书除了介绍了可以立竿见影的规则的同时也开启了民智.你们开始思考如何作优化,如何结合本身的应用实践作优化.然后两本书基本上是遵循优化思路的继续得来的实践总结.关于优化的工具,思路,方法是我特别强调的.感兴趣的同窗能够看下在Yslow 34 Rules以后 -- 网站性能优化思路和进展 这一篇. 

其余领域之做 
 
      接下来介绍这些专题类书籍,并非特别推荐,每每每一个专题都有不少书籍可供选择,随手写一些读书心得吧. 
      Ajax实战:06年的书,很早就购入.书中介绍了不少RIA高级应用的相关话题,很开眼界. 
      JQuery实战:必定须要一本介绍JQuery的书,这书还能够,不过如今看来应该比较旧了,JQuery已经更新了不少.我主要从这本书了解了JQuery的工具函数扩展机制和插件机制是如何实现的.JQuery让彻底不了解prototype属性的同窗也能写出可复用的复杂组件,很是不容易,之后再单独写写对JQuery的一些见解吧. 
      精通CSS:必定须要一本介绍CSS的书,工做中一直以来CSS用的不是很深刻,不作特殊介绍. 
      正则表达式必知必会:必定须要一本正则方面的书籍,这本小册子查起来蛮方便. 

 
      HTML5揭秘HTML5高级程序设计买回来一直没看,对HTML5的新增特性仍是有了解的,等能用到时再看再评.
 
      但愿看到NodeJS方面的书籍,尽快引入. 


写在最后       只能针对我了解的书,在网站找一些参考推荐给你们。      当有了领域内必定的实践经验以后,阅读一本相关的书籍并非难事,也并不会耗费不少时间.       全面型的书籍可让你们技能水平Step By Step的稳步提升,让你们站得高也站得稳.       犀利型的书籍可让你们了解重点,了解别人是怎么运用那些你也会的知识的.       专题类的书籍是拓宽眼界,帮助你们完成工做任务的好手.       对于非英文专业的同窗,若是有中译本,不用非得纠结着去看原版,咱们要最快学到知识,最快进入思考与实践. 

相关文章
相关标签/搜索