Some people choose to see the ugliness of this world, while I choose to see the beauty of it.
夜深人静,又到了反思一天的时候了。。
昨晚,又被蚊子折腾到2点才能睡觉。。早起早睡的习惯的养成看起来还是困难重重。
最近,凭借着2篇随手写的英语作文,竟进入了外研社写作大赛的复赛,也算是意外之福吧,当然第二篇介绍微信的文章类型是我的强项,不枉我看了这么多年的美国小哥的软硬件测评视频、文章。
思索来思索去,问题又回到了英语上,作为一个程序员,究竟为什么要把英语放在和C++、Java这样的主力语言的同样的地位呢?
Google+StackOverflow
Instagram有一个笑话,一个看起来像程序员的青年人,看起来很迷惑,在诘问自己:"Am I good at programming or am I good at Googling and StackOverflowing…".
其实,我也有这样的疑问,但是,不可否认的一点是,这两个工具给我的写程序的过程带来了极大的便利,基本上,所有常见的问题都可以通过这两者的组合得以解决。
//不要试图通过这两者解决你自己应用的复杂的业务逻辑问题,那基本上是徒劳
所以,部分程序员越来越依赖于以上两者,以至于写下了下面的
Exception Handler
:try{//something}catch(Exception e){window.location.href ="https://www.stackoverflow.com/search?q=[js]+"+ e.message;}
可见二者组合的强大,但是要想正常使用以上二者,一个重要的前提条件就是——得看得懂英语
显然,这是一个必要条件,如果连一点英语都不懂,那么去了这两个站也没有什么实际帮助,而如果对英语一知半解的话,显然很可能因为几个词的干扰而导致错误的理解,虽然最终应该能解决问题,但是耗费的时间上看来,不如同样的中文渠道好。
Google 的英文搜索的好处在精准,只要你能用英文把问题描述的够精准,那么除非这个问题够冷门,你肯定能从这里找到答案。这里对于没有用过Google的人来说可能不好体会,不过想想 像“如何用Javascript实现背景图片在页面加载完后3秒内变暗” 这样具体的问题都能精确定位,应该也能体会个差不多了。
StackExchange
StackExchange的好处在于 全面且专业 ,全面在于,他涵盖了你所能用到的几乎所有 编程/类编程 语言/工具 从C++ 到 LaTex 从 Android 到 macOS,StackExchange都有旗下的子站点来针对每个特定的问题,而且全站支持MathJax数学控件,极大的方便了程序员的交流,当然StackOverflow算是一个大杂烩了,它也是StackExchange旗下的一个子站点,但是相对比较混杂,什么类别的问题都可以在这里提问,提问后通常在一天内即可得到专业的回答。
说到专业,StackExchange上的人,个个专业,远不像百度知道,知乎这样的业余网站上的人的随意的回答,每一个回答都源自深刻的思考,StackExchange从制度上杜绝了放水的人的存在,也正是这种种制度,才保证了StackExchange社区的专业和严谨的对待问题的态度,这样的态度,是值得我们所有人学习的。
官方文档
很多问题,官方往往给出了最好的解答,而社区中的回答,往往解决方案不如官方优雅,然而很大一部分的库与工具软件都是由外国人开发的,这个时候,要阅读官方文档,英语能力必不可少。唯有拥有强大的英语阅读能力,你才能在理解作者对某个功能的用法说明的同时,理解作者设计这一功能的初衷,从而防止了对库的误用。
代码注释
开源时代,阅读源代码,已然成为各路程序员的一个基本习惯,然而这个年头,美国依然在计算机领域领先,所以,在阅读外国的开源项目的代码时,注释通常都是英文,要理解作者此处代码的用意,势必要认识英文。
Paper阅读
有时候,我们在解决一些计算机科学前沿的问题的时候,避免不了阅读外国的Paper,为了在科研领域了解最新的进展,英语技能一样必不可少。
总结
一名长者曾经说过,“直接的语言交流,哪怕只是很基本的直接交流,也比间接交流要强很多”,固然你可能有很好的翻译,但在翻译过程中,由于语言自身的表述方式及概念不同,必然会有有信息的流失,同时会混入译者的观点。“学乎其上,得乎其中”,因此,唯有阅读原版书籍,才能和原作者的心灵进行原始的交流。