作为前端开发者我是如何跟上时代脚步的

4,183 阅读7分钟

本文作者:André Pena

编译:胡子大哈

翻译原文:huziketang.com/blog/posts/…

英文连接:How I stay up-to-date as a Developer

转载请注明出处,保留原文链接以及作者信息

译者注:本文中提到的一些网站也是译者经常逛的网站,对于新技术的了解和学习确实很有帮助,希望大家也能习惯于经常浏览前沿知识网站。

我的观念里,没有任何一个行业像软件开发业一样从满活力和诱惑力。我是说比如当你年轻的时候,你想要成为世界上最好的心脏外科专家。那么自高中毕业以后你要持续学习 11 到 13 年的时间,你才可能独立承担一次外科手术。假设你想获得诺贝尔化学奖呢?你必须得建立一个自己的实验室并且反复地实验、实验(实际上概率也微乎其微)。

但是对于开发工程师情况则不同。

作为一个开发者,你可以注册一个 Github 账户。现在的开源软件这么多,只要你懂计算机基础,学习一些编程原理,你就可以开发任何你想开发的东西。你所需要的知识,在网络上都可以免费获取到。这也是为什么现在在 Github 上有 780 多万的 repo(我猜的)。也许此时此刻,正有一批 14 - 18 岁的孩子们在玩《我的世界》(Minecraft),而这款游戏也正在开发自己的下一个版本。软件在不断地更新,技术在不断地进步,虽然可能会导致某种程度的技术疲倦现象,但是这也正是人类不断发展的规律。ಥ_ಥ。

那么问题来了:我们如何能保持和相关的技术与时俱进,同时还能不影响自己的生活呢?答案是:几乎不可能。保持与时俱进需要一些代价,因为事物发展的速度太快了,所以这都取决于你是否能牺牲一些固有的生活方式。

那么,你为什么要与时俱进呢?

再次强调,依据个人意愿,你没必要一定要这么想。但是这里我还是列出来你为什么要考虑这个问题。

  1. 你需要了解你所从事工作的市场现状。不论你喜不喜欢,你所从事的工作,很可能需要你了解最新的技术是什么。我所谓的新技术不是指“3 个月内的新技术”,而是说“1 到 3 年内的新技术”。这不取决于你所从事工作的环境,而是取决于大环境。如果你是做 C/C++、Prel 或者 Pascal,那可能市场变化没那么快。但是如果你是从事前端开发,那技术发展的是相当的快。
  2. 你需要让自己处于生产力的外缘上。意思是说你应该不断突破自己的能力瓶颈。如果一个技术没能解决什么问题的话,那它永远也不会流行起来。一种技术之所以流行,是因为它可以用比较简单的方法解决某种以前很难解决的问题。如果你正在尝试解决的问题属于这一类的,那么你应该保持这种状态,因为一旦你成功了,你就会很大程度上提升自己的生产效率,甚至是提升解决某种问题的效率。再次说明这种情况不适用于所有的细分领域,但是我想对于前端领域是适合的。
  3. 你喜欢它。哈哈,这是我。可能很多人不同意这一点。但是这就是我们,愿意做永远的学生。

下面我给出一些相关资源,让你可以在这个充满变化、充满活力的产业中,保持与时俱进。

Reddit

Reddit 是一个非常好的网站。我主要用它来看当前市场上都发生了什么。

创建一个账户,移除掉所有默认的订阅选项,在这里选择你所喜欢的领域。然后你可以搜索你感兴趣的技术,并且完成你的列表。这是我的:

  • /r/programming: programming
  • /r/technology: Technology
  • /r/web_design: web_design
  • /r/javascript: JavaScript
  • /r/dotnet: .NET
  • /r/webdev: webdev: reddit for web developers
  • /r/react

或者你可以听 Abhinav Kumar 的建议,给开发版块设置一个 “multi”,让你其他感兴趣的内容出现在你的主页上。

Hacker News

这是 YC 的新闻网站,对于了解新知识也是很好的一个选择。你还可以用这个网址:hckrnews.com/,这是我发现的一个 UI 上体验更好的 hacker news。

如果你想学习最新的知识,那么没有什么方法比看哪个 repo 最吸引开发者们的注意力更好的方法了。Github trending 可以帮你知道现在哪个库最流行或者或者哪种语言最流行。你还可以根据语言来过滤,比如 JavaScript

Stackoverflow 最热问题

通常大家去 SO(Stackoverflow)是因为太懒了,自己不愿意去尝试。实际上他们去 SO 之前会先去 Google,通常 SO 的结果都显示在第一的位置。运气不好?(没有显示在第一的位置)那么试着搜索 “stackoverflow” + [你的问题]。还运气不好?那么在 SO 上提问吧。

不开玩笑了,Stackoverflow 的功能不仅仅只是供你复制粘贴代码,你真的可以从上面学习到很多东西。比如我想温习一些知识点的时候,我通常浏览一些最新的问题。我想学习新知识的时候我会浏览最热的问题。你可以在上面学习到你感兴趣的知识,它还会告诉你那些东西是比较流行的,当然时间上会有些延迟,因为只有当人们采用了一些新技术以后才会发现问题,发现问题才会来提问。这也是为什么 Stackoverflow 自己说:聚集一群有问题的人们。

Podcasts

我喜爱播客,尤其关于技术方面。有两个我最喜欢的:

  • softwareengineeringdaily.com:微服务很酷吗?不不不,它已经过时了,你应该用自包含系统了,“跟 Jeff Meyerson 一起学”。看这种表述你就知道这是个玩笑了,并不是真的说微服务怎么样。播客平台主要介绍软件架构和开发相关的东西。我刚开始学开发的时候它还不成气候,现在它已经变得很流行了,尤其对于 web 开发人员来讲。
  • www.dotnetrocks.com:这个名字很具有欺骗性。他们最开始是以播 .NET 为主,现在什么都聊了。也很值得听。

另外还有 runasradio.comhanselminutes.com

CodePen

我至少一周会浏览一次 CodePen,对很多知识,它会让你知其然,也知其所以然。在这上面我可以肯定我学了很多新知识。当然是对我个人的新知识,而不是对整个世界的新知识(毕竟太阳底下无新事)。

下一步

如果你决定开始自己“与时俱进”的里程,那么请看我的另一篇文章:最好的学习方式是实践,这里会给你启示

保持好奇心

但是请注意,不要痴迷于新技术。新技术并不代表合适你。对于一个新的库,里面肯定是有可以使你效率提升的地方、有值得学习的地方。但是使你效率提升还有另外一个重要的因素:你的经验!如果你认为新的方式不适合你,如果你认为新的方式并不会使你的能力得到突破,那么尽管让他去吧。

Happy Hacking!如果想了解我更多,请点击我的主页


我最近正在写一本《React.js 小书》,对 React.js 感兴趣的童鞋,欢迎指点