面对众多的前端框架,你该如何学习?
记得就在刚接触 AngularJS 的时候,那时市场上正值 React、Vue、AngularJS 三足鼎立,大量的前端新人可能都会有这样的困惑:这三个框架到底该学哪个好呢?我自己当时也是非常的迷惑,找不到一个合适的答案。
作为一个 React、Vue、AngularJS 都写过的人,现在这个已经不再是问题了。先说结论:
公司用哪个框架就先学框架;其次自己喜欢哪个框架就学哪个框架
我的经历是因公司业务而以 AngularJS 起步,再因个人兴趣学习 Vue,最后再因为新公司以 React 技术栈为主,从而拥抱 React。
知识和学习能力是可以迁移的,掌握了 Vue 技术栈,再去学习 React,其迁移成本非常的小,你所需要做的是看文档,比较二者的异同,然后就可以直接上手了,反之也成立。因为 Vue 和 React 的相似度确实蛮高的。
经过了这三个框架的学习,发现学习可以总结成3个步骤:
- 第一步:基础学习。撸一遍官方的文档及教程(如果有的话),这时候不推荐其他二手教程,因为以正确的姿势学会走路才能让你后面跑得更快。别在一开始的时候学错了姿势;
- 第二步:项目驱动学习。要想快速熟练掌握一门框架,少不了大量的写代码。通过项目的方式来写编写大量的代码,可以帮助你快速掌握该框架的用法及踩坑,快速积累经验;
- 第三步:求知驱动学习。在求知驱动学习过程中,遇到任何产生困惑或者感兴趣的点,都要去深入学习。这样的学习过程虽然比较慢,但是足够的系统,持续学习下去,能让我们对于这个领域保持足够的专业。
第一步:基础学习
基础的重要性已经无需强调了。打好基础才能走得更远。所以在一开始的时候,尽量选择官方文档及教程。优先选择英文原版,如果阅读有困难,退而求其次,选择中文翻译版。撸一遍文档能帮你快速建立对于框架的认识。
第二步:项目驱动学习
技术学习中最推崇的可能就是Learning by doing,做中学。光看文档的学习是不完整的。真正快速有效的学习是通过项目驱动学习。因为通过项目,你能将你学到的知识用于解决实际的问题。在解决问题的过程中,又发现了知识的不足,再反过去查阅文档,学习。一方面,因为正反馈非常及时,会让自己更有成就感;另一方面,也能快速得吸取知识。
这种方式吸取新知识的效率非常高,能够对新技术进行快速的学习和应用。但是它的缺点便是:不够系统。因此你还需要求知驱动。
第三步:求知驱动学习
在项目驱动学习中,讲究的是效率。但是对于整个框架,你掌握得并不全面、系统。这三个步骤的关系就好比建造一座大厦的过程,先是打地基(基础学习,撸文档),再是搭建建筑的水泥主体框架(项目驱动学习,帮助建立对于框架的整体架构),最后才是上砖,装修(兴趣驱动学习,深入学习,不断补全之前遗漏的知识,完善整体架构)。求知驱动的意义在于通过对于该框架的深入研究,不断完善你的系统知识,最终建立一个完整的系统。所以在项目驱动学习过程之后,你应该花更多的精力这一阶段。通过深入学习来不断构建你的对于这个框架的系统体系。
这三个过程并不是独立隔断的,而是一个不断循环、交替的过程。只有通过这样的交替、循环,才能构建最终的知识体系。
但是很多人会只停留在第二步项目驱动学习就止步不前了。一旦觉得自己能hold住项目开发后,就不再去深入学习了。不会再花时间去补上之前的不足,不再花时间去了解框架或者语言背后的优秀思想及实现。缺少求知驱动学习这一阶段,虽然并不妨碍你成为一个合格、高效的开发者,但是绝对无法让你成为一个优秀的开发者。
一个优秀的开发者或者说学习者,一定是保持着好奇心和钻研的动力。