美文网首页Dart
程序员到底要不要学习框架、库和工具

程序员到底要不要学习框架、库和工具

作者: 老孟程序员 | 来源:发表于2020-04-22 20:14 被阅读0次

老孟导读:昨天看了一篇文章,文章名称叫做《STOP LEARNING FRAMEWORKS》(停止学习框架),文章发布时间时间是2018年,感叹为什么没有早一点看到这一篇文章,看过我《对Flutter初学者的一些建议》这篇文章的都知道,里面建议少使用第三方库,但仅仅是从生态发展的角度考虑的,这篇文章或者可以给你一些不一样的启发。

以下为译文:

作为开发人员,我们需要与时俱进,跟上技术的步伐,我们每天都在学习编程语言、框架和库,因为我们知道越现代的工具越好。

跟随Angular, React, Vue, Riot, Ember, Knockout 的脚步是一件多么有趣的事啊。(这应该是一句反话)

但这是在浪费时间

时间是我们拥有的最宝贵的资源。 它是有限的,不可再生的,用钱也买不到它。

技术就像时尚一样,以光速变化。 为了赶上它,我们需要跑的非常快。但 这场比赛没有赢家,因为它没有终点。

我的导师曾经这样教我:

导师:Ed(作者,下同),你在做什么?

我(骄傲地说):我正在读一本关于如何用 GWT 构建现代 Java 应用的书。

导师:读它做什么?

我:作为一个开发者,我应该紧跟潮流,GWT现在非常流行。

导师:在读GWT之前,你读过其他技术书籍吗?

我:我读了一本关于Apache Tapestry的书籍,这本书有500页,那时这本书也非常流行。

导师:那现在这本书还流行吗?

我:不,现在流行的是GWT 。

导师:你可以重用Tapestry技能来解决当前的问题吗?

我:不,现在没有人在使用它。

导师:Apache Tapestry能够更好的帮助你学习GWT吗?

我:不能,不过两者都用到了一些共同的设计模式。

导师:设计模式可以帮助你解决当前遇到的问题吗?

我:是的,帮助了我很多。

导师:技术来了又去,但它有很多共同点。 设置正确优先级。 将您80%的学习时间用于基础知识。 剩下20%用于框架、库和工具。

我:仅仅20%时间学习框架,库和工具?

导师:是的,在工作中解决问题的同时,你自然会学习框架、库和工具。

我:非常感谢。

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

这次建议改变了我的一生,我从书架上拿走了所有关于框架,库和工具的书籍,书架上从50本书变成0本,我终于解脱了。

我买了一些经典(永远不会过时)的书, 这些书占用了我80%的学习时间:

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

我还买了一本有关当前技术的书。根据 The Lindy effect(林迪效应)表明,Spring Framework必须是一个不错的投资。

林迪效应认为:技术的未来预期寿命与其当前年龄成正比。 每多存在一天,意味着的预期生命会更长。

市场上的技术越久,投资就越安全。

不要急于学习新技术-它很有可能死掉。

时间告诉你哪些技术值得投资。时间是您最好的顾问。 学会等待。

十年过去了。 我帮助了50个不同的软件项目。 听了这些建议,我学到的所有东西都可以在公司,团队,领域之间移植。 我的知识今天仍然有意义。 我没有浪费我的时间。

如果您深入研究所有项目,似乎所有项目都大同小异:

  • 编程语言虽然不一样,但是设计方法是类似的。
  • 框架虽然不一样,但是设计模式是类似的。
  • 开发人员不一样,但是与人打交道的规则是统一的。

记住,框架、库和工具来了又走,时间是宝贵的。

将您的黄金时间投入通用的技能中,这些技能永远不会过时:

  • 不要学习微服务框架(Microservices frameworks),学习演进式架构(Evolutionary Architecture)
  • 不要学习新的编程语言,学习代码整洁之道、设计模式、领域驱动设计(DDD)
  • 不要学习 LeSS 和规模化敏捷框架(SAFe),学习精益生产原则(Lean manufacturing principles)
  • 不要学习 Hystrix,学习容错模式(Fault Tolerance Patterns)
  • 不要学习 Docker,学成持续交付(Continuous Delivery)
  • 不要学习 Angular,学习 Web、HTTP 和 REST

译文到这里结束了。

感悟

文中有一段话说的特别好:

技术来了又去,但它有很多共同点。 设置正确优先级。 将您80%的学习时间用于基础知识。 剩下20%用于框架、库和工具。

并没有让我们不要学习框架,但要分清主次,基础知识的优先级必然高于框架。

有一个特别现实的问题,如果有2个人,一个对框架应用特别熟悉,但对底层不了解,另一个正好相反,对底层原理非常了解,但不会使用应用框架,那么这2个人哪一个更受公司的欢迎呢?

如果是小公司,急需人完成项目,那么熟悉框架应用的更适合它。

如果是大公司,第二种应该更适合它,现在的大公司面试必问某一个开源库的底层原理,仅仅会使用,是过不关的。

交流

Github地址:https://github.com/781238222/flutter-do

170+组件详细用法:http://laomengit.com

如果你对Flutter还有疑问或者技术方面的疑惑,欢迎加入Flutter交流群(微信:laomengit)。

同时也欢迎关注我的Flutter公众号【老孟程序员】,公众号首发Flutter的相关内容。

相关文章

  • 程序员到底要不要学习框架、库和工具

    老孟导读:昨天看了一篇文章,文章名称叫做《STOP LEARNING FRAMEWORKS》(停止学习框架),文章...

  • 《冒号课堂》

    框架与工具包最大的差别在截然相反的设计理念上: 库和工具包是为程序员带来自由的,框架是为程序员带来约束的。具体地说...

  • jQuery选择器_Dom操作_样式_事件处理

    库和框架的区别? 库:库是将代码集合成的一个产品,提供api供程序员调用,像一个可以简化流程的工具,需要什么就从库...

  • 程序员工具箱

    程序员工具箱Web框架任务运行器或调度器队列软件流软件前端框架移动APP框架脚本语言关系型数据库非关系型数据库 译...

  • angular.js

    angular google 框架 大 约束程序员 程序员听框架的话 遵循框架的规定 库 小 受程序员控制 ...

  • .NET Core框架、库和软件的中文收录大全

    awesome-dotnet-core .NET Core框架、库和软件的中文收录大全。内容包括:库、工具、框架、...

  • jquery DOM&事件

    问答 1、说说库和框架的区别?库是JS的库封装好的很多方法和API的集合(类似于一个工具箱),可以供程序员直接使用...

  • 程序员们,请停止学习框架

    我们都是程序员,我们需要与技术保持同步。每一天我们都要学习编程语言、框架与库。 我们了解的现代开发工具越多越好,比...

  • jquery DOM&事件

    库和框架的区别? 库(Library),可以理解为工具库,里面有可以直接拿来使用的方法和工具,以及可以调用的API...

  • JQery选择器

    题目1: 说说库和框架的区别?库:很多工具的集合,实现一个效果可以使用工具简化流程框架:结构框架,依据框架填充内容...

网友评论

    本文标题:程序员到底要不要学习框架、库和工具

    本文链接:https://www.haomeiwen.com/subject/gytgihtx.html