作为程序员我是如何学英语的
程序员到底该不该学好英语,这个答案至少在我这里是肯定的。原因大家好像都知道 ,比如,西方发明的计算机,几乎所有的编程语言都是用英语开发的,绝大多数开源软件诞生于英语环境下,最新的文献资料是英文的,如此等等吧,不一而足。但对我来说原因更具象些,比如要成为更优秀的程序员,要掌握最新的编程知识,从根本上理解编程语的精髓,解决别人解决不了的问题,获取更大经济价值等等 哈哈。
先说说我学之前的自身状况吧。2014年我已经干四年多年程序开发了,发现很多问题在中文社区找不到太好的答案,有些问题能在stackoverlow上找到,懂的人都知晓这是个英文的程序问答网站,进去一看傻眼了,密密麻麻的英文解释看不懂。只好捡里面的代码看,拿来试,发现不对啊 ,然后把上面的英文拿到翻译网站,结果翻译的根本句子不通。在这样的情况下,找那些感觉能影响结果的关键词去试着理解。最后可能把问题解决,但是真是累心啊,感觉都不想接着撸代码了,更感觉自信心受挫, 然后我就考虑怎么去改变这个尴尬的现状,正好我老婆大学英语六级,给我推荐了她的学习办法,她让我把文章里不认识的单词都抄写下来,然后去查字典,再回头去阅读文章,直到完全无障碍阅读。听完我就有点想放弃,后来耐不住老婆一顿苦口婆心和威逼利诱,开始征程。刚开始是随便找的一篇文章,现在我都忘记是什么文章了,但是我记录的单词还保留着
过了一段时间收集到了几百个单词,这些词都是一些计算机常用的词汇,比如architecture/feature/compability/performance/statement/concurrent/deploy,等等吧。我在地铁上有空了就会拿出来看看,背背,每天至少过个一两遍。这个阶段一篇文章我已经不用读十遍八遍,可能读个两三遍吧。但还是有源源不断的新生词出现,没办法,接着查接着记,地铁上接着背。然后背了忘,忘了接着背,终于14年底时候试了下给tornado提了一个问题关于设计的。
写得很low,还有语法错误,抱着试一试的心态走出第一步,但是对方大神回复了,之后还是有点小兴奋的。后来几年,坚持每天都看英文文档,不再像初期的时候一个个单词学。过程中遇到语法问题,单词虽然每个都懂,可有些句子,根本翻译不明白,很晕。这促使了我要去学习语法,去了解英语怎么表达的,比如使用which/what/where 修饰的定语从句,一些用于词组,比如 in order to/as well as/not only but also 都会慢慢遇到。学习的方法是用翻译工具翻译,自己感知,慢慢摸索总结。也可以主动去学习语法知识,只是对我这种已经毕业多年的人来说很难再抽出时间专门学习语法,喜欢边看文章边查。比如下面的句子,我不是很懂,先去找翻译,自己分析一些重点, 积累总结。慢慢就会理解里面的一些要点,比如 other than to 以及里面的 whom 从句修饰修饰注册用户。
一段时间后觉得应该去看一些英文技术书籍,因为书籍是连贯的,所有章节围绕一个大主题,资料就是一个个的小主题,官方文档太术语化,缺乏通用表达形式。所以,我开始看了几本技术书,方法还是跟之前一样,死磕每一章节,不会的单词查字典,记,背,一个章节反复读,直到弄明白了再往下继续进行。这个阶段我读了几本经典的英文著作,《 Computer Systems: A Programmer's Perspective,》,《the c programming language》等等。选择这些书第一是因为它们是经典中的经典,第二个是语言比较通俗易懂。我选择的是纸质书,如果没有纸质的或者太贵,下载免费的ebook或者购买ibook。也可以让大家看下目前我手机上存储的英文书,平时我公交地铁或者吃饭时间会翻看。
当然,学习英语最后是为了读写交流用的。读的话,技术相关的书籍文档,大部分可以通读,有些章节生僻词汇较多还需要大量查字典,阅读速度也有提高。写方面,也比第一次问问题的水平提升了一些,下面是最近在github上回答的问题,还有提交patch的一些情况。 下面是回答伊朗网友关于一个开源项目的问题
下面是看到一个中国的技术高手,准备联系勾搭一下 哈哈。
最后想说的是,一步步走来,一不留神四五年过去了,中间一路跌跌撞撞的,最终还是入门了。 通过学英语,悟出最重要的两点:1. 凡事坚持总有收获。2 .相信自己,普通人通过坚持能做到的你也可以做到。 与大家共勉。
微信号:15011548154,欢迎大家与我探讨。