【翻译】停止学习框架(Stop Learning Frameworks)

简介:   我们作为程序员,对技术要时刻保持着激情,每天都需要不断地学习编程语言、框架或库,并且会的工具越多越好。很多人都还会觉得学习Angular、React、Vue、Riot、Ember和Knockout等框架是一件有趣而高大上的事情。

一、我与导师之间的一次谈话


1)时间

  时间是最宝贵的资源,既不可再生,也无法购买到,正所谓:“花有重开日,人无再少年”。技术现在就像时尚那样日新月异的变化着,我们必须加快自己学习的速度才能赶上变化的步伐。这是一场没有赢家的比赛,因为没有终点。


54.jpg


图片引自华尔街的狼(2013年)

2)谈话

  我的导师曾经教过我一课:

  导师:“艾德,你在做什么?”

  我(自豪):“我正在读一本关于使用GWT构建现代Java应用程序的书。”

  导师:“为什么?”

  我:“作为Java程序员,我需要跟上趋势。 GWT是一种非常流行的技术。”

  导师:“你在GWT之前读过什么技术书?”

  我:“一本长达500页的Apache Tapestry书。 Tapestry当时也很流行。“

  导师:“那Tapestry现在还流行吗?”

  我:“不流行了。 现在是GWT。“

  导师:“你能复用Tapestry中的技术来解决当前的问题吗?”

  我:“不能,今天已经没有人用它了。”

  导师:“设计模式能帮助你解决当前的问题吗?“

  我:“可以。”

  导师:“虽然技术的更新迭代非常快,但它们也有很多共通之处。因此,你可以将80%的学习时间投入到基础知识中,而只需把剩下的20%用于框架、库和工具。“

  我:“嗯......框架,库和工具只需要20%的学习时间吗?”

  导师:“是的。你将来会在工作中遇到它们,在解决相关问题的同时,你也是在学习它们。“

  我:“谢谢。”

  导师:“你以后会感谢我的。”


二、我的改变


  这个建议改变了我的生活,我把所有框架相关的书从书架上挪了下来,从50本缩减到0本。

  我买了一套常青书。 这些书占我学习时间的80%:

  1、实干的程序员

  2、代码整洁之道

  3、代码整洁之道 程序员的职业素养

  4、领域驱动设计:软件核心复杂性应对之道

  5、测试驱动的面向对象软件开发

  6、持续交付:发布可靠软件的系统方法

1)林迪效应

  我还买了一本关于当前技术的书。林迪效应表明Spring Framework是一个很好的技术投资。

  林迪效应是指,对于一些不会自然消亡的东西,比如一种技术、一个想法,它们的预期寿命和它们目前已经存在的时间成正比。即它每多生存一段时间,它的剩余预期寿命就会增加一点。

  技术在市场上的时间越长,投资就越安全。

  不要急于追求热点(即学习新技术) —— 它很有可能会快速消亡。

  时间将显示哪些技术值得投资,时间是您最好的顾问, 学会等待。

2)十年后

  从那以后已经过去十年了,我帮助了50个不同的软件项目。感谢您的建议,我学到的一切都可以在公司、团队和领域之间迁移。我的知识在今天仍然有用,我没有浪费我的时间。

  所有项目看起来都不同,除非你从表面看:

  1、编程语言是不同的,但语法设计相似的。

  2、框架是不同的,但使用的设计模式是相同的。

  3、开发人员是不同的,但与人交流的规则是一样的。

3)爱日惜力

  记住 —— 时间很宝贵,选择值得学习的框架,库和工具,而不是那些匆匆过客。


55.png


  把你的黄金时间投入到可迁移的相关技能中,例如:

1、代码整洁之道,设计模式,DDD

2、工匠精神

3、容错模式

4、持续交付

5、Web, HTTP and REST

相关文章
|
2月前
|
自然语言处理 编译器 C语言
【C++ 20 新特性】参数包初始化捕获的魅力 (“pack init-capture“ in C++20: A Deep Dive)
【C++ 20 新特性】参数包初始化捕获的魅力 (“pack init-capture“ in C++20: A Deep Dive)
46 0
|
机器学习/深度学习 算法 搜索推荐
Paper:《A Few Useful Things to Know About Machine Learning—关于机器学习的一些有用的知识》翻译与解读
Paper:《A Few Useful Things to Know About Machine Learning—关于机器学习的一些有用的知识》翻译与解读
|
数据挖掘 Python
第四周编程作业(一)-Building your Deep Neural Network: Step by Step(一)
第四周编程作业(一)-Building your Deep Neural Network: Step by Step(一)
253 0
|
资源调度
第四周编程作业(一)-Building your Deep Neural Network: Step by Step(二)
第四周编程作业(一)-Building your Deep Neural Network: Step by Step(二)
116 0
|
资源调度 定位技术 C++
第四周编程作业(一)-Building your Deep Neural Network: Step by Step(三)
第四周编程作业(一)-Building your Deep Neural Network: Step by Step(三)
257 0
|
机器人 测试技术
Robot Framework(3)- 基本概念
Robot Framework(3)- 基本概念
148 0
Robot Framework(3)- 基本概念
|
编译器 Shell 测试技术
Go 语言入门很简单--技巧和窍门(Tips and Tricks)
Go 语言入门很简单--技巧和窍门(Tips and Tricks)
154 0
Go 语言入门很简单--技巧和窍门(Tips and Tricks)
|
Shell Python
kaldi脚本、kaldi脚本运行、kaldi脚本运行失败
<p>  Kaldi脚本是kaldi的功能核心,在kaldi编译后,会编译出很多可执行文件,这些文件在脚本里调用生成各种模型结果,这些可执行文件也有一些辅助文件,比如fstdraw和fstprint等等。</p> <p>  这些脚本里通常第一个步骤是数据准备过程,这个过程可以通过命令下载网上的数据,也可以指定数据目录来使用本地数据,有了数据,就是一些_prep类脚本命令,比如timit_data_prep.sh,这个脚本里下段代码:。</p>
130 0
|
安全 iOS开发 MacOS
Mac OS启动服务优化高级篇(launchd tuning)
Mac下的启动服务主要有三个地方可配置:1,系统偏好设置-&gt;帐户-&gt;登陆项2,/System/Library/StartupItems 和 /Library/StartupItems/3,launchd 系统初始化进程配置。
5430 0