程序员到底要不要学习框架、库和工具
老孟导读:昨天看了一篇文章,文章名称叫做《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的相关内容。
程序员到底要不要学习框架、库和工具相关推荐
- 有感而发:程序员到底要不要阅读框架源码?
写在前面 最近正在写[高并发专题]的文章,其中,在[高并发专题]中,有不少是分析源码的文章,很多读者留言说阅读源码比较枯燥!问我程序员会使用框架了,会进行CRUD了,是否真的有必要阅读框架源码?! 对 ...
- ehcache使用_Java 程序员如何使用 Shiro 框架
Java 程序员如何使用 Shiro 框架 一.架构 要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙.Shiro的应用不依赖任何容器,它也可以在JavaSE下使 ...
- 高级程序员到底长什么样子?
我们的中国文化,对"面子"看得特别重,所以你会发现身边到处都是高级 XXX,听着倍儿有面子,程序员也不例外. 但是你真要问每个人,你认为的高级 XXX 是什么样子的,估计每个人都有 ...
- 程序员到底应该学什么?!
以前听别人说大公司和小公司在招牌上的差异,自己总是不信,总是沿着自己设计的路一直走,直到碰壁了,才终于醒悟!所以在此以一个过来人的身份再说:大公司和小公司在招聘上的差异,程序员到底应该学什么!可能没有 ...
- 在别的地方看的给程序员介绍一些C++开源库,记录给大家共同学习
在别的地方看的<<给程序员介绍一些C++开源库>>,记录给大家共同学习 首先说明这篇文章不是出自我手,大家共同学习. 引用地址:http://oss.org.cn/?actio ...
- 程序员到底是一种什么样的存在?
互联网行业工资高,待遇好,这是众所周知的,但并不是所有岗位工资都那么高,除了那些高管啊,工资最高的就是程序员了,那程序员工资到底有多高?他们又是怎样一群人呢?作为互联网行业的资深民工,今天我就跟大家聊 ...
- web前端程序员到底值多少钱?
对于互联网公司来说用户就是上帝,做好客户体验一切才有可能.所以互联网公司都会把钱砸向前端,Web前端程序员也越来越受到企业争相聘用.那么web前端程序员到底值多少钱? web前端程序员到底值多少钱? ...
- 做个程序员到底好不好
今天闲着无事,我们就来聊聊做个程序员到底好不好? 问题 我今年27了,大学学的是经济与贸易,我现在转行做IT可以转吗? 我大学学的是建筑设计专业,今年30,想转行做IT晚不晚? 我今年高三了,我想知道 ...
- 数学149的女学霸,直言想当程序员!女生当程序员到底行不行?
最近一段时间,全国多个省市的高考分数线录像出炉,各地又多了一堆学霸秀分数了,他们的专业选择也成为网友们津津乐道的闲谈.这两天有报道称,四川成都一学校的女学霸出名了,在采访中她透露自己高考分数达到了69 ...
最新文章
- 免费教材丨第52期:人工智能(复杂问题求解的结构和策略)、人工智能哲学
- Exchange Server 2010中控制台用命令设置用户邮箱自动回复
- String insert()总结
- 台湾国立大学郭彦甫Matlab教程笔记(9) basic plotting
- 耦合式是什么意思_什么是微服务?一篇文章让你彻底搞明白
- linux启动设置运行级别,Linux的运行级别和设置开机启动服务的方式
- jsp文件上传_猿蜕变系列7——也说说springMVC上传姿势
- java websocket修改为同步_服务端向客户端推送消息技术之websocket的介绍
- 程序员35岁真的是分水岭吗?小白也能看明白
- Java工艺路线和工序_工序分散表现为工序多,工序内容( ),工艺路线长。
- notepad++行首行尾添加字符
- 设计模式-工厂方法模式
- android第三方拨号盘,Android开发-教你如何使用拨号盘
- 用计算时间差计算出天数
- Elasticsearch:《大数据集群学习笔记与实战》之es集群(2)es基本操作
- java8中的lambda表达式实用详解
- 人工智能学习笔记(三)有信息搜索
- 把json数据导入linux,使用json文件给es中导入数据
- 单反相机风景摄影易记易学口诀
- string find的用法详解
热门文章
- 记Vue报错Custom elements in iteration require ‘v-bind:key‘ directives.“错误解决
- [LabVIEW] - CP1L与LabVIEW进行TCP通讯
- IE8运行脚本提示停止
- uiautomation实现自动化
- sts引入lombok_sts 安装lombok插件
- python爬虫,扒上万条猫眼邪不压正影评------转载+排雷
- show函数的作用是什么python_Python 的show()方法问题
- 【hadoop】Archive命令使用
- java计算机毕业设计供电公司安全生产考试系统源码+mysql数据库+系统+lw文档+部署
- Excel去除表格密码保护