程序员,请停止学习框架

今天无意间看到了这篇文章,自己也是深受启发,框架只是工具,我们只需要拿来用,但是真正需要学习的,是底层的原理,以及脱离框架后类似功能的实现方法。技术,就像时尚,在以光速在变化着,为了赶上它,我们需要跑的非常快,但是这个跑道上没有终点,所以没有赢家。

在看原文的时候,我也看了很多人的评论,也觉得很有意思,部分截图如下:
在这里插入图片描述
每过几年都有类似的文章出现,然而程序员却依然疲于学习新的框架,看完此文希望对你有所启示。
在这里插入图片描述
这是一篇译文,原文在 Hacker News 上获得接近 500 个点赞。那么,译文开始。我们程序员,每天都在了解最新的技术,每天都在学习编程语言、框架和库。因为我们知道的现代编程工具越多越好,对吧?
不停地追随 Angular、React、Vue、Riot、Ember、Knockout 的脚步还真是一件有意思的事情呢。(反话)

有人说:当初刚从Android转前端的时候,一点基础也不会,什么html什么css,完全不懂,上手就是angular1.0,学的很痛苦,很难受,后续半年先后接触了vue和react,emmm没错,我就是框架仔。
后来跳槽,我的上司告诉我,不要用框架,全部使用原生,这才让我真正感觉踏入了前端的领域。给我的实际经验就是,你从框架中学习基础,效率非常之低,当你脱离了双向绑定,脱离了全家桶,你会发现,离开框架你什么也不会。
所以就像题主说的一样,框架只是工具,我们只需要拿来用,但是真正需要学习的,是底层的原理,以及脱离框架后类似功能的实现方法。

但这其实是在浪费时间

时间是人类最宝贵的资源。时间是有限的、不可再生的,你可以用钱买任何东西,却买不了时间。
技术,就像时尚,在以光速在变化着。为了赶上它,我们需要跑的非常快。
但是这个跑道上没有终点,所以没有赢家。
在这里插入图片描述
马丁·斯科塞斯2013年作品《华尔街之狼》剧照

我曾经的授业导师曾经教我这样一课:
导师:“艾德,你在做什么?”
我(自豪地说):“我在读一本使用GWT构建现代Java应用程序的书。”
导师:“你为什么要读这本书?”
我:“作为一个Java开发者,我需要紧跟趋势,GWT现在最火。”
导师:”在读GWT之前你在读什么技术书?“
我:”是一本500多页的Apache Tapestry的书,Tapestry当时非常流行“
导师:”这个Tapersty一直流行吗?“
我:”没有多长时间。GWT现在最火。“
导师:”你能重新用Tapersty的能力来解决现在的问题吗?“
我:”不能了。现在它没有什么用。“
导师:”Taperstry的知识能帮你对GWT理解的更好吗?“
我:”不能,没有太大用。但是我看到里面有一些设计模式有些相似“
导师:”是设计模式。这些能帮你解决现在的问题吗?“
我:”是的,帮助太多了。“
导师:”技术一直在向前发展。但是有一些是相通的,要找准重点,将80%的时间放在提升基础问题上,余下的20%再去学习框架,库和工具“
我:“Hmmm… 只留20%的时间学习框架,库和工具?”
导师:“是的。你在解决问题时自然就会学会框架、库和工具”
我:“谢谢指点”
导师: 现在不忙着谢,过一段时间,你自然会明白。

这次谈话可以说改变了我的人生!我把所有的讲框架、库的书从书架上全部撤下,一本都没留,那叫一个轻松啊!
我只买了一本关于最新技术的书,是关于 Spring 的。因为根据林迪效应,学习 Spring 是一项不错的投资。
我书架上换了一些长期的基础技术读物,不会过时的那种,比如像下面这类书就占据了我阅读学习时间的80%:

  • 程序员修炼之道 The Pragmatic Programmer
  • 代码整洁之道 Clean Code
  • 程序员的职业素养 The Clean Code
  • 领域驱动设计和实践 Domain-Driven Design
  • 测试驱动的面向对象软件开发 Growing Object-Oriented Software, Guided by Tests
  • 持续交付 Continuous Delivery

林迪效应认为,对于不会自然消亡的事物,如一项技术或一个想法,其预期寿命与其当前的生命成正比;即,只要这一事物多存活一天,就意味着其预期生寿命会更长一些。
技术的未来预期寿命与其当前的“年龄”成正比,技术每延长存续一段时间,其剩余生命周期也会相应延长。
越是在市场上持续存活时间长的技术,投入时间学习越安全、越值得。
不要忙着去学习最新的技术,因为这些新技术很可能很快消亡。
时间会告诉你,哪种技术值得投入精力去学习,时间是你最好的顾问,学会等待是很重要的。
自那次与导师的谈话后,十年过去了。期间我陆陆续续参与了50多个不同的软件项目的开发。感谢导师的建议,我学到的一切东西都可以在不同公司、团队和领域之间顺利迁移。我学到的知识到今天仍然有用。我没有浪费时间。
如果你看得更深入些,你会发现所有的软件项目都是类似的:

  • 用的编程语言虽然不一样,但是设计方法是类似的。
  • 用的框架虽然是不一样的,但是设计模式是类似的。
  • 参与的开发者是不一样的,但是如何和这些人打交道是不变的。
    记住,框架、库和工具来了又走。时间才是珍贵的。

永远记住,框架、库和工具的更替永不停息,而你的时间很宝贵

一定要把你最宝贵的时间投入到可迁移的技能上。
也就是说,在那些始终会用得到的技能上下最多的功夫,比如下面这些内容,可能会让你长期受用。

  • 不要学习微服务框架,学习演进式架构(Evolutionary Architecture)。
  • 不要学习新的编程语言,学习代码整洁之道、设计模式、领域驱动设计(DDD)。
  • 不要学习 LeSS 和规模化敏捷框架(SAFe),学习精益生产原则(Lean manufacturing principles)。
  • 不要学习 Hystrix,学习容错模式(Fault Tolerance Patterns)。
  • 不要学习 Docker,学成持续交付。
  • 不要学习 Angular、React 和 Vue,学习 Web、HTTP 和 REST。
    译者:方应杭,作者:Eduards Sizovs
    来自:https://zhuanlan.zhihu.com/p/52814937
    原文:https://sizovs.net/2018/12/17/stop-learning-frameworks/

问题反馈

在使用学习中有任何问题,请留言,或加入Android、Java开发技术交流群

  • QQ群:810970432
  • email:geduo_83@163.com
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值