驳 《停止学习框架》

今天下午正在码代码的时候,一个朋友微信给我推了一篇发表在掘金的译文 停止学习框架

一看标题,就觉得是标题党,本来只是觉得文章误人子弟,但是一看阅读量太大,截止写这篇文章为止,阅读量已经达到3K,所以觉得还是有必要专门驳斥一下的。

首先声明观点,文章的前半部分是赞同的,但是后半部分完全是不负责任的误人子弟。

1、赞成部分

导师:艾德,你在做什么?
我(自豪地说):我在读一本关于如何使用 GWT 构建现代 Java 应用的书呢。
导师:你读它做什么?
我:作为一名 Java 开发者,我需要跟上潮流。GWT 就是现在的潮流。
导师:你在读这本书之前还读过什么书?
我:我读了一本关于 Apache Tapestry 的书,那本书有 500 页。Apache Tapestry 是之前的潮流。
导师:Apache Tapestry 现在还是潮流吗?
我:不是了,GWT 才是。
导师:你之前从 Tapestry 学到的技能现在还能用吗?
我:不能用了呀。
导师:Tapestry 能帮助你更好地理解 GWT 吗?
我:不能。不过两者都用到了一些设计模式。
导师:那就是设计模式了,设计模式能帮你解决你遇到的问题吗?
我:可以,而且帮助很大。
导师:新事物来了又走,其实有很多共同点。你应该学你该学的。你应该把你 80% 的学习时间用在学习基础上,剩下 20% 的时间才是用来学习框架、库和工具的。
我:哦……只留 20% 的时间学习框架、库和工具?
导师:是的。你在工作中解决问题时自然就会学会框架、库和工具。
我:谢谢指导。
导师:你之后还会谢我的。
复制代码

这部分的观点我是赞成的,作为一个程序员,专注基础建设才是正确的。

2、驳书单

我买了一些不会过时的书,并用 80% 的学习时间来读这些书:

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

这些书,有些的确是可读的,但是不应该放在这个地方,与框架对应的是什么?是设计模式吗?是程序员的素养吗?还是其他各种方法学?

我认为都不是,与之对应的应该是计算机基础,是什么?是操作系统、组成原理、数据结构与算法等基础。此处可以说是译文的第一个误人子弟的地方,明摆着会给读者灌输一种不需要学框架,只需要学各种方法学就好了的观点。其结果可想而知。

另一方面,我认为不需要刻意的去读书单中的这些书,我们需要学习的是如何去写程序,但是现在网络上大量充斥着一些垃圾文章,导致大部分程序员对如何提升写代码这核心一能力十分迷惑。在提升核心能力面前,我只会推荐SICP、CSAPP等几本书,而不是各种方法论,这其实应该也算是中国大学的一种特色,不好好教学生写代码,反而去研究一些方法论,我们必须要明白,方法论都是从实际操作中得出来的,不好好提升核心能力,而去学习各种方法论,只会让自己成为一个空心木头。

驳译者观点

假设你面前有两个应聘者,一个对框架特别熟,但是对基础知识一点都不懂;另一个对框架一点都不熟,但是基础知识特别懂。你会雇佣谁?

小公司雇佣前者,能用就行。大公司雇佣后者,能堪重任。
复制代码

这一段,会很明显的告诉读者,哪怕是不会基础,只要会API,学过框架,就会要公司要,哪怕不是大公司。但是我要说的是,这根本就是天方夜谭,作为过来人,可以很明确的告诉你们,如果你对基础一点都不懂,根本不会有真正的公司要你。哪怕是再小的公司,而且,越是小公司,越会要求你基础扎实的同时还要熟悉框架。因为:

越是小公司越是珍惜来之不易的业务,不会将一个一点基础不会的定时炸弹放在身边,真正有经验的招聘者都明白,基础越差,招进来后会需要越多的额外的人手去帮助,得不偿失。
复制代码

我的观点

我本来是从不在社区中发声的,因为一旦发声,必定会有很多SB攻击,不管出于什么原因。

但是今天必须说的是,可能正是因为持有我的这种观点的人太多,导致现在社区中有太多半桶水都在发文赚点击,给许多初出茅庐的程序员灌各种垃圾。前段时间在知乎一直看到一个问题,为什么靠谱的高级前端这么难找?原因就是因为社区太多这些垃圾信息,导致很少有人明确进步的方向,能够提升成为高级前端。僧多粥少的环境下,当然难找。

另外,对译者,以及类似译者的人,给你们一句忠告,希望你们发文的时候不是这么随便的写一些毫无营养甚至误人子弟的话,不要以为写文章是一件这么简单的事情。

猜你喜欢

转载自juejin.im/post/5c1b469af265da6125781140
今日推荐