又到了相对轻松的特别放送时间,这一次,我想聊一聊程序员对于英语的学习。在专栏最开始的 [学习路径] 中就提到了工程师的一些“基础”能力,比如数据结构和算法,当然也包括英语。当时我说,对于进阶的工程师来说,英文能力是突破天花板的一个必选项,而且英文是所有进阶的软件工程师应当强化的能力,对全栈工程师来说更甚。但是我在当时并没有展开论述,为什么在中文技术材料如此丰富的今天,在工作环境是以中文为主的情况下,英语的学习依然那么重要。
为什么英语是必选项?
记得在 2017 年的时候,就有一股讨论高考是不是应该取消英语的风潮,有不少反对者都说,英语学习了也用不上,可是直到现在,语文、数学和英语,这三门依然是高考中的公共科目。
不知道你还记不记得高中化学课学的,使用氯酸钾在二氧化锰的催化下制氧气,软件技术的职业上升进程就像是氯酸钾分解的过程,而英语就像是软件技术进阶的催化剂,它自己单独未必能给你带来多大的价值,但是掌握了它的软件工程师,视野是完全不一样的。在这里我不想谈论英语学习是否具备一般必要性,但是对于程序员这个特殊的职业来说,我想来谈一谈它重要的原因。
信息获取的最有力工具
其实最重要的原因说起来很简单,它并非是什么需要和世界人民沟通交流这样冠冕堂皇、牵强附会的理由,而是在于程序员这个职业的特殊性。
程序员需要长期地学习,而大多数的学习材料,都是使用英文撰写的。特别是对于基于 Web 的全栈工程师来说更是如此,全栈技术迭代很快,新的技术资料一般都是英文的,英文能力,尤其是英文的阅读能力会很大程度地影响知识获取的速度。
随便举个例子。
本专栏在介绍缓存的 LRU 算法的时候描述了 LRU 的缺陷,而有一些算法设计出来的目的就是为了解决这个缺陷,2Q 算法就是其中之一。
如果你使用 Google 搜索“2Q 算法”,你会看到类似这样的结果:
基本上结果的相关性不错,但是这 4 条最靠上的结果都无一例外地是一些个人学习和分享的博客,对于 2Q 算法的笔记和理解。拿百度搜索,结果也类似,其中 CSDN 的网站权重要高一些,并且结果页的右边多了一个毫无关联性的搜索热点消息栏。<