前言
在阅读这本书之前,不知道大家有没有思考过一个问题:
前端学习到底有没有捷径?
在我看来,学习的捷径并不是指不用付出多少努力就能够获得成功,而是在我们付出努力之后,能够感觉到自己的努力没有白费,能够学到更多的知识,能够真正做到一分耕耘,一分收获。
所以学习有没有捷径?我的答案是:一定有。
其实大多数人并不是不想付出努力,而是不知道如何去努力,不知道如何有效地努力。我们想要学好一个知识,想要掌握一门技术,但是往往不知从何下手。
前端的学习也是如此。也许上手简单的HTML/CSS 知识,会给刚开始学习的读者一个掌握
起来很容易的印象。但是整个前端知识体系繁杂而庞大,导致大多数人在掌握了一些知识之后,仍然觉得自己并没有真正入门,特别是近几年,前端行业的从业人员所要掌握的知识越来越庞杂,入门的门槛也越来越高,甚至进阶道路也变成了一场马拉松。
也许在几年以前,我们只需会用jQuery 就可以说自己是一名合格的前端开发者,但是现在
的JavaScript 语言已经不再是几年前那样,只需处理一些简单的逻辑就足够了。随着前后端分离的方式被越来越多的团队运用于实践,用户对UI 的要求越来越高,对性能的要求也越来越高,JavaScript 承载了更多的任务。虽然前端行业大热,但是我们的学习压力也随之倍增。
所以我一直在思考,在这样的大环境背景下,对于新人朋友来说,什么样的学习方式能让我们的学习效率更高?或者说,一本什么样的前端书籍才算是好书?
是将所有的前端知识按部就班地罗列出来告诉大家吗?肯定不是。
很多书籍,以及各类官方文档其实都在做这件事。但是对于多数读者来说,把所有知识罗列出来摆在眼前,并不是一个能够掌握它们的有效方式。这种学习方法不仅效率低下,而且学完之后,也并不知道在实践中到底如何使用它们,我们其实是迷茫的。
所以,如果有一本书,它在努力地向读者传递一种行之有效的学习方法,那么对于适合这种学习方法的读者来说,就一定是一本好书。
这就是我们这本书努力的方向。
凭借多年的工作经验,在长期写博客并与读者互动的过程中,我总结出了一套适合大多数人的学习方式,那就是:
围绕核心,渐进增强。
本书将整个JavaScript 相关的知识点简单粗暴地划分为核心知识与周边知识。
周边知识的特点就是相对独立,不用非得学会了其他的知识点之后才能掌握它,也不用掌握了它之后才能学习其他的知识。例如Ajax,如果仅仅只是想要使用它,那么用别人封装好的方法,通过官方文档或者搜索引擎,只需要两分钟你就知道怎么使用。周边知识不会成为我们学习的瓶颈。
而核心知识不一样,核心知识是整个前端知识体系的骨架所在。它们前后依赖,环环相扣。
例如,在核心知识链中,如果你搞不清楚内存空间管理,你可能就不会真正明白闭包的原理,就没办法完全理解原型链,这是一个知识的递进过程。我们在学习过程中遇到的瓶颈,往往都是由于某一个环节的核心知识没有完整掌握造成的。而核心知识的另一个重要性就在于,它们能够帮助我们更加轻松地掌握其余的周边知识。
所以,如果读者知道这条核心知识链到底是什么,并且彻底地掌握它们,那么你就已经具备了成为一名优秀前端程序员的能力。这样的能力能够让你在学习其他知识点的时候方向明确,并且充满底气。
所以这本书的主要目的就在于帮助读者拥有这样的进阶能力。
基于这个思路,这本书的呈现方式必定与其他图书不同。本书不会按部就班地告诉你如何声明变量、如何声明函数,不会罗列出所有的基础知识,对于基础知识的传授,《JavaScript 高级编程》已经做得足够好,因此没有必要重复做同样的事情。我会一步一步与大家分享这条完整的核心链。我的期望是,当大家学完这本书中的知识后,能够对前端开发的现状有一个大致的了解,知道什么知识是最有用的,什么知识是工作中需要的,拥有进一步学习流行前端框架的能力,拥有在前端方向自主学习、自主进步的知识基础与能力。
最后希望在这本书的陪伴下,大家能有一个愉快的、充实的学习历程。