zoukankan      html  css  js  c++  java
  • 不要学习框架、库和工具

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

    老孟导读:昨天看了一篇文章,文章名称叫做《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

  • 相关阅读:
    Oracle基础知识整理
    linux下yum安装redis以及使用
    mybatis 学习四 源码分析 mybatis如何执行的一条sql
    mybatis 学习三 mapper xml 配置信息
    mybatis 学习二 conf xml 配置信息
    mybatis 学习一 总体概述
    oracle sql 语句 示例
    jdbc 新认识
    eclipse tomcat 无法加载导入的web项目,There are no resources that can be added or removed from the server. .
    一些常用算法(持续更新)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/12798003.html
Copyright © 2011-2022 走看看