我太熟悉这个问题了。在过去,我的回答常常与学习动机密切相关。你是想最大化你的就业能力呢?还是你对你个人的学习成长更感兴趣?你的这个想法是一时兴起,还是基于长期的考量?

现在,我不再采用这种方式回答这个问题了。相反,我已经有了一个放之四海而皆准的标准答案。

就在我们将要进入 2016 年的时候,Web 开发领域的变化步伐日渐加速这一现象已经愈加明显了。本来就没有可用于学习的『唯一编程框架』这种事情。事实上,这个世界没有任何一种东西是一劳永逸的。仅仅在 2015 年一年的时间里,我已经使用过三种不同的构建工具、三种不同的 Web 开发框架,以及三种不同的编程语言。

我所经历的唯一不变的事情就是持续学习。

疯狂的技术正在绵绵不断地涌现出来,尤其是在 Compile-to-JavasScript 领域,发展速度远比以前快了许多,从长远来看,我不认为未来的技术一定会建构在我们当前所拥有的编程框架之上。即使是 React,它也只是我的选择方案之一(求求你,千万别问我的选择方案具体有多少)。

如果你想要你的技能永葆青春与活力,只需确保在一件事情上投入即可:你的学习能力

那么,你应该怎样做才能学会学习呢?

鉴于我们正在谈论的话题主要涉及前端 Web 开发,我建议你可以从学习 JavaScript 语言基础开始入手。尽可能多学一些,学得越多越好。找到那些对你真正有用的方法(图书、博客、视频、练习等),深入地钻研下去。请记住,这是一种终生学习。当然,我建议你至少应该花费一个月时间专注在这一方面。你在这一段时间学到的知识和技能,将会成为你未来成功的基石。我这样讲的意思并不是说,你必须辞掉你目前的工作,或者忽略你正常的社交生活。我的意思是,在你已经分配给这项学习的时间里,你应该百分之百地专注在这项主题上。如果你已经是一位 JavaScript 『大师』,这个时间也许一个月都用不了,但是一定要利用这个时间复习一下,因为有时候,你很可能对自己的知识缺陷并不了解。

在此之后,你就可以进入 Web 前端技术堆栈的下一个抽象层次:文档对象模型(DOM)。重复上述我们讨论过的学习策略,直至你熟练掌握这一主题。

当你在这一领域建立了较为深厚的基础之后,相比之前而言,学习编程框架将会变得异常轻松自然。在这个阶段,我推荐你学习尽可能多的编程开发框架。我之所以这样说,并不是意味着,你必须将这些东西都用于生产环境之中。但是你应该构建尽可能多的简单的应用程序。你将会发现,这种一个框架接一个框架的学习方式非常高效。不久之后,你就能在几个小时之内掌握一个编程框架的精髓,而不是数天之后。

这种学习方式的目的,不是迫使你精通每一种编程框架,而是为了让你更加擅长学习新的技术和新的工具。我不是说你不应该精通一种编程框架,或许,你应该选择一到两种编程框架,把它们重点应用到你目前的工作上,或者,你想象中的某些未来场景之中(直到其淘汰,最终一定会出现这种情况)。这项练习的宗旨主要是为了磨砺你的学习能力,并且使你永远保持一种学习状态。

大多数人无法在他们的工作或学习中开展和实施这项任务。因此,它可能会占用一部分你工作之外的时间。终有一天,我们这个行业能够进化到支持这种类型学习的那种阶段,因为这会给我们所有的人带来好处和利益。但是截至今天为止,大多数公司还不是这样。因此,你必须利用自己的时间来完成这项任务。就像你喜欢经常浇灌自己的花园一样,我建议你找寻一个自己特别感兴趣的业余项目,当你需要学习新的工具和框架的时候,你可以周而复始地重用这个项目。

如果你做的还不赖,你不仅会成为一名优秀的 Web 开发者,而且你还会大幅改进你在一个全新领域快速攀爬以及提升自我的能力。希望进入移动开发领域吗?没问题。希望进入后端技术开发吗?没问题。希望进入嵌入式开发领域吗?也没问题。你非常擅长学习和掌握新的知识与技能。

总之,把你的主要精力投资在学习能力上,要比你学习任何特定的语言、技术或者工具都要重要。努力避开那些过度炒作的技术概念,通过持续学习学会如何学习才是真谛。


作者:Dave Smith,软件工程师,就职于 HireVue 公司。

原文:What web framework should I learn?

感谢:Qingniu 帮助审阅并完成校对。