早前在公司曾作过一些关于前端的技术分享,而往往跟你们谈到深处时,你们会疑惑这些知识点从何而来。javascript
我会常常在内部去推荐本身读过的好书,但愿你们在技术层面上都能更上一个台阶。html
今天写下这个帖子一方面是记录本身在一年多时间里快速转变为前端人所度过的好书,另外一方面也但愿将这些好书分享给你们,前端
不但愿前端人只是为了完成业务而学习,须要有求索的心态和积极性。java
大概两年前,我是一个纯正的Javaer,不过在面临公司产品转型的路上,我开始接触基于Web的产品开发以达到跨平台的效果。面试
因而,慢慢走上了前端道路,带着学习Java的习惯开始逐步探索Javascript。编程
这一路,从接触语法到理解动态语言特性,从不了解javascript的this到理解执行做用域,从模拟Java继承到理解原型继承,后端
从一大堆全局变量到模块化,从过程式编程到面向对象编程,从强耦合到组件化,从一大堆事件绑定到数据驱动,从手工压缩到设计模式
借助工具构建工程,经历了不少前端人经历的东西。由于前端太多东西并未标准化,导致入门虽低,但想比肩高手,仍是须要学习太多太多。数组
在分享书籍以前,我分享这些一路走过来的经历,是但愿能够为你们强化学习之路,不要一直游离于表面。网络
在前端界,我知道虽然Javascript并不能像Java那样强大的去完成各类线程、IO、网络等功能,但那不是由于Javascript语言自己的局限,
而是不能像Java那样强大的背景和社区为Java提供各类标准化的东西。现在,Node来临,若是前端同窗们想在Javascript上有一番做为,
Node可提供大家无限的想象,能够完成大家曾经以为只有Java这类语言能完成的事情。
我本出身后端,对UI上的东西不敏感,所以我对CSS了解颇少,只能给你们提供一些Javascript方面的书籍,以打好Javascript能作一些的基础。
另外,我不想推荐一些彻底对编程无概念的入门书籍,因此只推给一些有基础且愿意深刻研究的同窗。
接好,一大票书籍来了,先列上书目,关于为什么推荐此书将在以后详细补充。
第一波:适合有基础,想系统学习Javascript语言特性及原理的同窗
1.JavaScript高级程序设计(第3版)
2.JavaScript权威指南(第6版)
第二波:适合对Javascript有必定理解,想深刻学习语言特性和设计的同窗
3.JavaScript语言精粹(Javascript Good Parts)
4.Javascript设计模式(Javascript Design Pattern)
5.Javascript 模式(Javascript Patterns)
6.ECMAScript5.1(Javascript规范)
特别推荐:
汤姆大叔的博客 这几乎是我走向深刻Javascript的启蒙教程
The Surprisingly Elegant Javascript Type Model详细描述了Javascript中的类型继承关系,Object、Function、Array之间的相互关系
End of the Chain详细描述了Javascript中prototype/__proto__的含义,Function、Object之间的相互关系
第三波:适合在前端单页应用项目构建上深刻和优化的同窗
7.MVC的JavaScript Web富应用开发
8.单页Web应用 JavaScript从前端到后端
第四波:适合对前端项目进行优化和改进的同窗,此波颇具实际意义
9.高性能网站建设指南
10.高性能网站建设进阶指南
第五波:适合开始考虑在Node上有所施展的同窗
10.深刻浅出Node.js
11.Node.js权威指南
最后一波来个大集合,此类不为书籍,而是各种基础框架源码,适合有意愿创造本身前端类库或框架的朋友。
1.Underscore:基础类库,封装了对对象、数组、集合、函数的操做和一些实用函数;
2.jQuery:大名鼎鼎,基础类库,封装了各种选择器、DOM操做、事件、回调、延时执行、队列操做、数据绑定、AJAX等;
特别感谢:Araon的源码分析
3.Backbone:轻量型前端MVC框架,封装了事件、模型、集合、视图、控制器和路由管理等功能;
4.RequireJS:前端模块化功臣,解决了模块依赖,异步加载等;
固然,有各类关于Javascript的书籍是不足于写出优秀的代码和类库的,在这里推一些关于代码编写和设计模式的好书:
1.重构-改善既有代码的设计
2.设计模式-可复用面向对象软件的基础
以上这些书籍都是我已读或还在读的书籍,推荐给你们,但愿你们前端之路一路光明,逃离混沌的前端世界。
还有一点须要说明,若是深刻理解这些知识点,去面试一些所谓的前端开发岗位可能被拒,由于大量前端开发岗位还是传统的业务型岗位,
须要运用CSS/HTML/Javascript去真正作一些项目,因此若是有空,能够去翻翻关于CSS/HTML方面的书籍。
我将在前端之路绝不停歇的一路向前,也但愿有更多的更好的前端工程师加入这个队伍。