概要

这篇文章面向程序员,简要的介绍了一些学习计算机专业英语的步骤和经验。

关于

之前不少人曾站内我如何学习英语,我也曾试图写一篇如何学习英语的博文,但我现在的实力着实无法写出令人信服的文章:

  1. 尽管阅读、写作和听力还可以,但口语很差——我指的是日常用语,即便出国一年,现在我和同事交流时仍然磕磕巴巴,不知道用什么词的情况经常出现;

  2. 尽管读过大量外文资料,但它们绝大多是计算机专业书籍和论文,并不适用于通用的英语学习,也不适用于其它专业。

所以这篇文章并不是一篇通用的(General)英语学习教程——而是一篇面向国内开发者的计算机专业(为了简便,接下来的“专业”均指“计算机专业”)英语学习指引,本文集中于如下问题:

  • 为什么要学习英语?

  • 如何从零开始阅读专业英文书籍?

  • 如何提升专业英语阅读能力?

  • 如何提升专业英语写作能力?

  • 如何提升英语听力?

此外,我把简短的问答放在杂项之中,以便阅读 ????

为什么要学习英语?

这个问题很多人问过,也有很多人回答过,此外如果你在阅读这篇文章那么你应该已经意识到了学习英语的重要性。所以我不打算花太多篇幅在它上面,这里简略的总结下学习英语的好处:

  1. 更多的高质量学习资源:首先,绝大多数高质量的计算机学习资源(书籍、论文、博文和视频等)都是英文;其次,高质量的中文计算机学习资源几乎为零;

  2. 无需忍受翻译带来的问题:

    1. 信息损耗:任何知识从一种语言翻译到另一种语言一定会有信息损耗,更何况是英文和中文这两种差别巨大的语言;

    2. 时效损耗:翻译需要时间,如果你读的是翻译版那么你已经至少落后了半年;

    3. 翻译损耗:国内的计算机书籍翻译水平参差不齐,你需要拼人品;

  3. 编写更好的代码:良好的英语水平是编写可读(Readable)代码的前提;

  4. 翻墙:相对于其它专业,计算机专业出国工作要容易很多,但前提是你的英语要说的过去。

如何从零开始阅读专业英文书籍?

注意这里的零基础指的是专业英文书籍阅读零基础——而不是英语零基础,英语零基础就没啥好说的了 -_-#

刚开始阅读专业英文书籍时要记住一点:你的目标是提升计算机专业词汇量,而不是学习计算机专业知识。所以你要阅读的是计算机“通俗”读物或“科普”读物,我的计算机英文入门书籍是计算机文化(New Perspectives on Computer Concepts),这本书每年一版,现在已经出到第15版:

这本书的好处在于它极其浅显易懂,并且包含大量计算机专业领域名词,所以读者可以专注于提升计算机专业词汇量,而不是一边查单词一边学新技术——同时搞两件事是很困难的。

顺便提一下那篇老码农教你学英语和那个老码农推荐的书目,姑且不论他把Mythical Man-month拼写成Man Month Myth,我非常惊讶他居然称人月神话原版为白话书并且推荐初学者阅读,直到看到这里:

这句“另外两本也很不错,我很久以前看的翻译版,一直也想找原版的来看看,可惜总是没空,这次你们就算替我看了吧”着实让我很无语,没看过的书也可以随便推荐么 -_-# 难怪那么多人推荐计算机程序设计艺术呢。

我在读研时从头至尾阅读了Frederick Brooks的人月神话以及他的几篇论文(No Silver Bullets和the Computer Scientist as Toolsmith),所以对Brooks的文风有一定了解——Brooks绝对是一位多才多艺的计算机科学大师——他的文字不仅涉及到计算机,还涉及到管理、人文、艺术、建筑和神学等学科。读他的书和文章,我查单词直接查到手抽,推荐初学者读这种书,你是要玩死初学者么 -_-#

如何提升专业英语阅读能力?

阅读New Perspectives on Computer Concepts之后,你应该掌握了大量的计算机专业英文词汇,这时你可以尝试阅读一些语言浅显但主题相对深入的计算机科学基础书籍,个人力荐Brian Kernighan和Andrew S Tanenbaum的作品,他们的著作不但本本经典,而且语言朴实:

  • C程序设计语言(英文版)(第2版):不但是C语言的神作,而且为编程语言书籍的编写树立了新的标杆;

  • UNIX编程环境(英文版):覆盖了Unix的设计思想,简洁易懂的Unix入门手册;

  • The Practice of Programming:两位Unix大师(Rob Pike和Brian Kernighan)近三十年的编程经验尽在此书之中;

  • 算法(英文版)(第4版):数据结构与算法入门;

  • 现代操作系统(英文版第3版):全面的操作系统概论;

  • 计算机网络(英文版 第5版):全面的计算机网络概论。

这些书读完之后,你应该可以做到脱离字典阅读绝大多数的计算机书籍——是的,可能还会有一些生词,但不会影响阅读。

除了读书,阅读专业博客也是非常好的提升专业英语水平的途径。个人推荐下面几个网站:

  • Hacker News:大量的技术资讯和博文;

  • Reddit:非常的聚合站点,我一般去下面几个频道(subreddit)

    • /programming:聚合了大量的优秀程序设计博文(其实不少国内技术站点就是搬运它的内容);

    • /java:大量的Java技术博文,质量不如/programming,但也还说的过去;

    • /shittyprogramming:悠闲时的去处,不少段子来自这里;

  • Medium:大量的高质量文章;

  • Quora:大量的高质量问答,有不少中国人在上面练习英语;

如何提升英语写作能力?

程序员学习英语不是为了写小说——而主要是如下场景:

  1. 编写设计文档(Design Document);

  2. 收发邮件,进行交流;

  3. 开发程序中的命名、注释等描述性内容。

1和2需要Nonfiction Writing——言简意赅,层次分明。这方面的写作书籍我推荐:

the Elements Of Style(这本书我应该推荐了无数次 -_-#

On Writing Well

此外少不了中式英语之鉴,中式英语说说还成,写到纸面上就丢大发了。

关于3的书籍很多,我个人推荐Code Complete中关于命名(Naming)的一章,章名好像是Power of Variable Names;以及Effective Java的Item44——如何编写代码注释及文档。

如何提升听力?

阅读量达到一定程度听力也不会差,个人推荐Channel 9、Google Tech Talk和Coursera,多看多听,此外务必不要中文字幕。

杂项

这里包含一些简短的问题,如果你有疑问也可以留言,我会把答案添加到这里。

是否一定需要阅读原版?

除非你阅读原版书籍和中文书籍一样顺畅,或者翻译书籍信息损失量太大,否则不需要刻意阅读原版。

开发者需要多少单词量?

没有标准答案。作为开发者,大词汇量不是必需,但一定要把词用对——尤其是动词。

以方法/函数名中经常出现的get为例:我们需要知道何时应该使用get,以及何时使用fetchbuildretrievecomputecalculatereceive这些get的同类词汇。

有没有好用的词典?

目前我还没有发现一个好用的词典应用,所以依然在使用6年前的CASIO V2800H电子辞典。(略土 -_-#

以上。

原文链接:http://zh.lucida.me/blog/english-for-programmers/

本文谢绝转载,如需转载需征得作者本人同意,谢谢。

--end--

扫描下方二维码

添加好友,备注【交流群

拉你到学习路线和资源丰富的交流群

程序员英语学习指南(建议收藏)相关推荐

  1. 【给程序员英语学习的一些建议】我是乔治老师,我在这里播报。

    给程序员英语学习的一些建议 - 我是乔治老师,我在这里播报. 从业以来,因为工作的关系,我结识了不少程序员朋友.当然,作为一名英语教学从业者,我们谈论的最多的还是关于英语的学习.但是,从我的这些程序员 ...

  2. ⭐程序员必备软件图鉴⭐(建议收藏)

    ⭐程序员必备软件图鉴⭐(建议收藏) 文章目录 ⭐程序员必备软件图鉴⭐(建议收藏) 前言: 一.系统处理类 无声的安全管家:火绒安全软件 压缩/解压神器:Band Zip 远程控制软件:向日葵 文件解锁 ...

  3. 程序员英语学习之英文官网查看Kafka(三)

    程序员英语学习之英文官网查看Kafka(三) 1. 背景 作为程序员,由于计算机软件本身历史原因,最新和最全的资料很多都是外网上的英文资料.部分有中文版,但受限于官网或者爱好者精力,并不会很全面和很新 ...

  4. 后台服务器开发学习指南(建议收藏)

    前言 这一篇的主题是「Linux C/C++ 服务器/后台开发学习路线」. 这样的文章相信大家都见得不少了,写之前也非常忐忑,能不能和其它人写得不一样, 也定下了一个目标,这篇文章,不能是简单的堆砌学 ...

  5. 程序员必备网站,建议收藏!

    俗话说的好,一个程序员,20%靠知识储备,80%靠网络搜索. 打开代码,打开Google,开始工作. 那么常用的写码软件,你知道几个呢? 下面我们来一起看一下常用的写码软件吧~ 建议收藏本文,保证你从 ...

  6. 程序员交流平台_「建议收藏」10个适合程序员逛的在线社区

    这是一个开源的时代, 网络资源是学习的重要工具, 对于编程学习, 网上的社区氛围浓厚.分享全面, 非常有助于技术的提升. 今天,就和大家分享几个自己经常逛的技术类社区和论坛: 1.gitHub 网站地 ...

  7. 2023 年对程序员英语学习记单词很有帮助的网站

    对于初学编程的程序员,英语是绕不过去的一个坎,一门新的语言或框架,都只有英文学习资料,开发中遇到问题,用 Google 英文搜索也是能最快找到解决办法的,单词词汇量决定在看这些英文资料的是否吃力,而记 ...

  8. 学习opencv 英文版_B站上适合程序员的学习资源【赶紧收藏!】

    "二次元,鬼畜,动漫"是大家提到B站,最容易冒出来的关键词!然而央视网一条微博却表示:过去一年有近2000万人在B站学习,相当于去年高考人数的2倍!B站正在成为年轻人学习的首要阵地 ...

  9. 程序员学习指南_程序员管理压力指南

    程序员学习指南 by Daragh Byrne 达拉·伯恩(Daragh Byrne) 程序员管理压力指南 (A programmer's guide to managing stress) 我几乎一 ...

  10. .2018年java还能学吗,2018年,Java程序员应该学习的 9 个建议

    先,祝大家新春快乐.初五已过,意味着新一年业已真正开始.制定计划,制定目标,狗年有个新发展. 做为一个Java开发者和社区参与者,我经常会收到来自各地的Java 程序员的咨询,他们问我如何改进自己. ...

最新文章

  1. 4000个“不会数学”的程序员出现大反转!居然能学AI,玩算法,搞逻辑!背后原因首次曝光...
  2. 【图论专题】最小生成树的扩展应用
  3. numpy、matplot、sklearn的安装与使用
  4. 电脑常用工具(阅读代码、文件搜索、思维导图、图片处理、文件比较、流程图、桌面效率工具)
  5. 用C语言模拟栈(简单实现)
  6. 算法(11)-leetcode-explore-learn-数据结构-链表的经典问题
  7. C语言的整型溢出问题
  8. 剑指Offer - 面试题17. 打印从1到最大的n位数
  9. [大牛就是牛]双栈排序
  10. 攻防世界reverse新手练习
  11. Tomcat运行时报内存溢出
  12. 让你人见人爱的27个原则
  13. APICloud 入门教程窗口篇
  14. Elasticsearch 父子关系
  15. 按键精灵助手无法连接模拟器解决方案【适用任何模拟器】
  16. 文献阅读:利用斯托克斯参量验证光波的偏振态
  17. CodingTrip - 携程编程大赛 (预赛第二场)
  18. Lucas定理相关证明
  19. 小学生10以内加减法自动出题程序
  20. VMware Workstation Pro16 的下载与安装

热门文章

  1. 英语语法——万法归宗
  2. 如何自学计算机access,我是怎样自学access的
  3. python将文本文件加密后输出_【Python】python文件或文本加密(4种方法)
  4. Pr视频剪辑基础技巧学习
  5. Vue之功能全面的表格(二)创建表格
  6. java 传入一个日期, 计算公历节日和农历节假日的常用类(包括除夕、清明节、母亲节、父亲节的算法)
  7. bootstrap完整左侧导航栏代码及结果样式
  8. Dell 电脑重装系统步骤(一)
  9. OCR怎么能离开扫描仪呢?
  10. 如何成为有效学习的高手:4. 在衣食住行上训练专注力