Web开发学习避免陷入框架旋窝

2017-11-07 18:44:50 济南网站建设 3

好吧,这本不是什么值得说道的事儿,但我注意到最近出现了一种行为趋势,尤其是在技术和软件开发领域。我不知道它的确切名字,就暂且称之为「学习者综合征」吧。它描述的是一种行为特征:那些“感染者”会不停地学习新知识,却从不真正地去应用它们。

这个综合征的高发区在 Web 开发领域。最近几年我注意到, Web 框架的数量有了显著的增长。下图展示了一个大致的数量。

济南网站建设


你看,过去的 5 年内,出现了大量的框架。我还注意到,Web 开发者都希望能了解并掌握一定数量的框架,这看起来是一种荣誉,并能代表他们的成就。那是什么造成了现在这种局面哪?

我本人也饱受学习者综合征的困扰,我必须站出来对抗它。学习一门新的语言或技术,对我来说通常是一个有趣的经历。我发现自己在构建简单的 Web 应用程序时,会用到以下框架:

  • Go

  • TypeScript

  • NodeJS

  • React

  • Angular

  • Spring

  • … x100

这个列表还在不断更新。我创建了许多 todo 应用程序,已经远超我愿意承认的数量。我现在甚至都认为自己很擅长做 todo 应用程序,恩?这点可能要放到我的简历上。

面试官:你有实际做出一些东西?

我:基本上没有,但你可以从我的档案看到,我做了许多 todo mvc web 应用程序,是用 NodeJS 的一个同构 react 服务器创建的。

要成为一名“优秀”的 Web 开发者,你需要了解并掌握许多技术(包括后端),这是众多技术带来的最大问题。但我认为这一点也不公平。几年前,前端和后端的界限十分清楚;而今天,这条界限已经模糊了,甚至不存在了。前端和后端现在已经合并,称之为“全栈(full-stack)”。这听起来更像是一个狡猾的借口/说辞,一名全栈工程师需要同时处理前端和后端两个方面,工作量反而翻倍了。

我自己对后端技术更感兴趣,但随着异构服务器的兴起,我发现自己也经常为前端编写代码。如果你不熟悉同构服务器,下图给你举了个例子。(译注:与异构相对,同构 JavaScript 应用指的是用 JavaScript 编写的应用,能够同时运行于客户端和服务器。这也让在客户端和服务器之间共享代码变成一种更普遍自然的选择。)

济南网站建设

我觉得,当我学习了多种框架和技术时,我运用它们来做出有价值东西的能力会降低。这是因为我花在学习上的时间,超过了做东西所用的时间。如果我开始将时间投入做东西,我感觉会错过了学习新技术的时机,甚至担心被别人超过,而跟不上时代的潮流。

我认为解决这一切的办法,是找到一个平衡点。你必须专注于某一项技术,并且围绕它来分配你的时间。当然,你也可以学习新技术,但每天花在上面的时间不能超过一小时。你需要保证它只能是你的兴趣爱好,而不是一个会上瘾的坏习惯。如果在工作中你只使用一种技术,此时学习者综合征似乎更明显,因为我们大部分的业余时间都花在学习新技术上,而不是用于做东西。不过当你在一个能提升学习的地方工作,那在两方面都能做到最好。

我建议你现在退后一步并思考一下,过去的一年中,你学习了多少新语言或新框架?你创建了多少 todo 应用程序?如果超过 3 个,那你可能“学得太多了”。当然,你可以说这是因为你热衷于学习(新知识),但我觉得对于更多人而言,将时间专注于一门技术上能带来更大的收益。