前端技术最近学不动了怎么办?如何突破技术瓶颈

904 阅读4分钟

个人经验,不要学太多细枝末节的东西。

例如,学一堆库或框架 Vue、React、Angular、JQuery、easyui....

像这样学,永无止境,是个人都会觉得累,最重要的是,对于你技术的积累没啥用,换个框架,原来的知识就排不上用场了。

一、只学当前工作中要用到的东西

比如你公司用的是 Vue,就深入学习 Vue,最好看看源码,不用全部都看,只看重点部分的源码。例如模板编译、Diff 算法、Vue 原生组件实现、指令实现等等。

剩下的两个框架 React、Angular 做个 DEMO 熟悉一下就行,毕竟原理都是相通的,等你公司要上这两个再深入学习,不过也不建议阅读源码了,太累。看别人写的现成的源码分析文章就行。

其他的,像 JQuery、easyui、Backbone.js、各种小程序... 用不到的时候坚决不学,浪费时间。用的时候看文档就行了,当然,如果有兴趣了解如何实现也是可以的。

二、一定要深入学习的知识

1. JavaScript

原生 JS 掌握得好,学习其他库或框架的速度真的是不要太快。

举个例子吧:

我在学习 Vue 时,因为对 Vue 改变数据,页面自动刷新这一现象特别感兴趣。所以决定学习 Vue源码,得益于自己的基础比较好,研究 Vue1.0 的版本并模仿它写了一个MVVM库,实现了1.0版本70%-80%的功能,大概花了一个月时间,还开发了几个 Vue 组件。

如果 JS 基础不好,要看懂 Vue 源码也是一个很困难的事情。

2. 计算机科学理论知识

为什么这么说呢?因为我是中途转行的,还是高中毕业,所以对于计算机理论知识是一窍不通。导致在工作中遇到一些问题,不知道原理,不知道如何解决,还得经常去网上搜答案,而且对答案也是一知半解。举个例子:

转行前端后去的第一家公司,在开发页面时,其中有这样一个需求:

有一个 ul ,下面有四个 li ,要求点击其中一个 li 时,高亮显示,其他的 li 取消高亮,我和别人纠结用 for 循环写性能比较好,还是用 JQuery 的 each 写性能比较好。

前端

关于前端学习,我的宗旨是:

  1. 基础知识为主,库、框架为辅。
  2. 理论与实践结合,学习更高效。
  3. 时常写文章总结,将学到的知识消化了再写出来(费曼学习法)。

库、框架都是工具,基础打好了,学习第三方工具才能事半功倍。

基础知识(JavaScript、CSS、HTML)

在这三年里,我看了大量的前端书籍,具体如下:

在看书的同时,我还做了百度前端技术学院 2017 年的任务。功夫不负有心人,看书和做练习让我的技术水平得到了极大的提升,以至于后面对 Vue 源码的学习起到了很大的作用。

库、框架

关于第三方库的学习,我只对 JQuery 和 Vue 进行了深入学习,其他的库都是看文档按需使用。 深入学习 JQuery 的成果:写了两个组件。 深入学习 Vue 的成果:

  1. 写了一个 Vue 动态表单组件,发布到 NPM上。
  2. 模仿 Vue1.0 版本写了一个 MiniVue,这让我对 Vue 的理解达到了源码级别。
  3. 写了几篇关于 Vue 的文章。

nodejs

学习 nodejs 的时间比较少,主要是工作用不上。成果是写了一个个人博客 node-blog,涉及到服务器和数据库知识。

计算机理论知识

计算机理论知识决定了一个程序员的天花板(在国内还得加上英语)。

数据结构与算法

算法看的是 《算法 4th》这本书,课后习题没做,改成用刷 leetcode 代替,目前已经刷了 200 道了,还在继续刷。

编译原理、计算机原理

由于编译原理和计算机原理是看的同一本书《计算机系统要素》,所以就放一起说了。

这是本神书,内容通俗易懂,涉及计算机原理、编译原理、部分操作系统知识,每一章后面都有对应的练习,需要你写代码完成。

如果完成了本书所有的项目,你将会获得以下成就:

  • 构建出一台计算机(在模拟器上运行)
  • 实现一门语言和相应的语言标准库
  • 实现一个简单的编译器

操作系统

操作系统看了《操作系统导论》以及《深入理解计算机系统》(这本书更像是计算机导论),并且做了MIT6.828 的项目写了一个简单的操作系统内核。