自学前端的读书路线(基础)

知识分级

公司往往会在招聘简章上列出希望应聘者拥有的技能,并且用了解、熟练等关键字要求应聘者的理解程度。这就像是修真的境界划分。

  1. 知道
    这是理解程度最低级,意味着只知道某个技术名词,但不了解它是什么、做了什么。
  2. 了解
    了解意味着对于某个知识点,能够说出它是什么,做了什么,解决了什么问题或是有什么好处。
  3. 熟悉
    熟悉说明你已经能够在项目中实际使用这个知识点去解决具体问题,了解它的具体应用场景。并且结合实践能够发现它在某些场景下存在哪些局限性。
    在前端中这意味着你可以驾驭一张页面的样式与交互。
  4. 掌握
    掌握也就是你已经熟悉该知识点的最佳实践模式,不仅能够根据应用场景选择正确的实现方式,而且还能在出现问题后快速定位并解决。
    这时,你已经能够驾驭一个项目。
  5. 精通
    我没见过,不知道。大概是出本书吧。

前端书籍就是一本本武功秘籍,但目前这些书质量参差不齐,有的深入浅出,能帮助读者到达大师的层次;有的则是浅尝辄止,晦涩难懂。
而评判一本书好坏,可以看看两个因素:

  1. 前置知识门槛;
  2. 读者阅读后能够到达的最高境界。

下面推荐的书大多是让读者到熟悉的程度,再往上进阶就必须接触实际项目,总结经验,积累破境。

CSS

CSS是层叠样式表,利用样式属性解决如何给页面设置样式的问题。

《CSS权威指南》

前置知识:无
读后境界:熟悉CSS2.1
总结:这本书的定位是CSS2.1字典,也就是说功能只有一个:罗列CSS2.1属性。建议通读一遍,达到了解每个CSS属性后,再根据实际项目查询重点属性的相关情况,熟悉重点属性,比如盒模型、margin、padding和行盒、line-height与vertical-align。

《图解CSS3》

前置知识:了解CSS2.1
读后境界:熟悉CSS3
总结:淘宝UED前端工程师大漠总结的一本CSS3字典书。也是了解并且熟悉重点属性即可。重点知识包括background、flex、transform、transition和animation。

《CSS世界》

前置知识:熟悉CSS2.1
读后境界:熟悉CSS2.1
总结:阅文集团前端体验经理张鑫旭构建的CSS世界。并不能提高CSS的理解程度,但是能够帮助读者巩固基础。该书将CSS知识点相互关联起来,利用实际项目描绘这些属性合作时的场景。阅读时需要一些实践与理解。

JS

任何一本JS书都会告诉你JS=ES+DOM+BOM,这是前端的重点,也是决定程序员在前端路上能走多远的关键。

阮一峰的JS教程

链接:JS标准参考教程
前置知识:无
读后境界:熟悉ES5+DOM
总结:入门必读教程。能够让读者熟悉基本类型、对象、函数以及DOM和BOM操作。

《JavaScript语言精粹》

前置知识:熟悉ES5
读后境界:熟悉ES5
总结:剔除JS中的缺陷特性,总结工程中应该合理使用的优势特性。

《ES6入门教程》

链接:ES6入门
前置知识:了解ES5
读后境界:熟悉ES6
总结:阮一峰写的ES6入门书,重点阅读新增API、class类的声明与继承还有模块化、新的异步方式promise和generator。了解async和await。

《你不知道的JavaScript·上卷+中卷》

前置知识:熟悉ES5
读后境界:熟悉ES5
总结:该系列一共三卷,目前我读了上卷和中卷两本书。
上卷讲了作用域与闭包的概念、函数在不同调用方式中this的指向。
中卷先看前半部分语法篇,在熟悉generator相关知识后再看后半部分异步教程。

《JavaScript DOM编程艺术》

总结:全文两个项目,核心思想是渐进增强和优雅降级。如果有电子免费版,就不要买书了,不值钱。

《JavaScript高级程序设计》

前置知识:了解JS
读后境界:熟悉JS
总结:这本书讲的很基础很全面,但因为太厚,所以建议放在稍后的时间阅读,这样能够深化理解,巩固基础。而且这本书非常重要,建议反复阅读。

《深入浅出React和Redux》

前置知识:熟悉JS
读后境界:熟悉React
总结:如果选择react相关技术栈,可以阅读这本书。前4章是基础,往后是进阶。如果没能理解前4章的知识,建议反复阅读。

《深入浅出Node.JS》

前置知识:熟悉JS
读后境界:熟悉Node.JS
总结:还没看,但确实是前端学习Node跨后端的必读书籍。

《JavaScript设计模式》

前置知识:熟悉JS
读后境界:准·掌握JS
总结:重点读单例、工厂和观察订阅设计模式。

《深入浅出Webpack》

链接:http://webpack.wuhaolin.cn/
前置知识:了解模块化和CommonJS规范
读后境界:了解webpack
总结:了解entry、output、loader、plugin和resolve属性。不需要熟悉tapable对象和compile以及compilatin。

计算机基础知识

《数据结构》

前置知识:无
读后境界:熟悉常见算法

《网络原理》

前置知识:无
读后境界:了解DNS和HTTP状态码

《图解HTTP》

前置知识:无
读后境界:跟网络原理一样。