问英语在编程当中的重要程度

在与同事群友交流当中发现英文讲不出几个,但是却经常逛英文的社区,分享国外的博客和资讯。
但是我英文不会几个 好像感觉问题也不大。。。

所以我不禁想问了,挖掘机技术。。。。。

不对 - -

是学习英语在IT行业和编程当中分别到底有多重要,你们会经常逛国外的技术网站之类的吗

能举例说明最好

阅读 17.6k
23 个回答

差不多的意思我就不重复了,我想说的是两点

关于口语

口语也非常重要!或者说,对自己的口语水平或者至少提升口语水平的决心有信心非常重要

工作三年多来,我发现不少同事的共同特点就是英文口语不好或对自己的口语不好没有信心,在他们工作生活里的场景大概是这样的

  • XXX,那个计算~~挖掘机技术哪家强~~的方法在哪里定义的? @#*& (?咦?听不懂)啥?
  • 那个@#&¥*方法的参数应该传什么? 哪个方法? 就是@#*&¥类的@#&¥*方法啊 嗯?
  • 慢慢的这种交流不畅开始反馈到他们的代码中,牛头不对马嘴的命名、拼音命名、abcxyz命名开始出现……

其实这都赶不上“英语口语”的程度,不过就是念方法名变量名和几个术语的发音标准而已罢了,但我觉得这非常影响到程序员能力的提升: 如切如磋,如琢如磨

关于中文文档

我个人的体会是:越是中文资料多的技术领域,英文,或者说坚定地找英文资料越重要。总结下来中文文{档,章}的问题有

  • 准确程度成疑问,翻译不是万能的,甚至有时一些暧昧的表达可能都无法翻译(关于架构、编程思想的文章中可能多一些)
  • 及时性成疑问,在迭代快速的iOS、Android、NodeJS、Ruby等领域,中文译者根本跟不上技术发展的速度
  • 数量被碾轧,还难以搜索。中文的特点是表达方式多样,对搜索引擎的挑战很大,很多时候一件事情有多种非常不同的表达方式,搜索引擎无法很好的处理这些场景。
  • 中文天生逻辑性或者说和代码的相似性远远不及英文,英文的解决方案基本上缩写一下可能就是伪代码,整理一下就是实际代码,而中文描述到代码之间差距巨大
  • 英文这种不需要编译解释,不会报语法错误或是segmentation fault的语言你都掌握不了,那你凭什么能掌握好别的编程语言呢? treat english as another programming language

口碑好一些的翻译技术书籍可能还好,平时上网搜索问题或者查文档什么的千万不要看中文的东西,多花在英文学习、理解上的每一秒,都会对你的技术成长带来莫大的好处;偷懒看中文资料的每一次,都会在将来默默地坑你一百遍啊一百遍

从自身亲身经历说一下英语对编程的影响:
本人虽然是大学生,但是英语水平真的不咋的...而且从大学对英语的教育方法上也让我对英语的学习失去了兴趣。但是要说英语跟编程的关系,那肯定是有的,应为编程语言和编程思想大多都是老外发明的嘛。我刚开始学习编程的时候是没怎么用到英文的,虽然代码是用英文字母表达的,但是在我眼里不过是一些符号而已,记住就行。
后来我代码写的越来越多的时候,碰到的问题也越来越多,一开始是去百度,后来在前辈的推荐下使用Google便一发不可收拾,Google真是太强大了,不,与其说是Google强大倒不如说是国外的编程资源太强大,我记得大一上线性代数这门课的时候,我们老师说你看你们的教材这么薄就100页,而国外一本讲线性代数的教材要比这个厚很多,为什么?很简单,因为国外的教材(教程)是写给“小学生”看的,而国内是写给有经验的人看的,连小学生都能看懂的话,这才是真正的“教材”,这个道理放到编程里也一样,我想楼主既然活跃于Segmentfault也一定知道stackoverflow,那上面对问题的解答简直是细致入微,这就是用到英文的时候了啊,包括我们去阅读英文的API文档,拿Android来说,developer.android.com是谷歌官方为开发者提供帮助的网站,一开始我也知道但是因为看到都是英文很烦,也不爱去翻阅,就喜欢去看些中文讲解书,到后来试着去读官方文档的时候发现其实也不是很麻烦,文档这东西要写的别人都看得懂肯定都是大白话,没有绕口的语法,最多有几个单词不认识,而且很多都是重复的单词,记住以后下次再看到就容易了,而且一边读一边发现,原来国内出的这些讲Android开发的书籍大多都是在翻译这份文档!后来,我就强迫自己读英文文档了,因为这太节省解决问题的时间了。到后来,中文的技术网站也很少去了,但是我始终不觉得我的英语水平有多好...那只是解决问题的一种工具而已。
希望我的回答对楼主有帮助。

这个问题不好回答,虽然每个人心里都清楚英语是重要的,但是每个人对英语的重要程度的认识都是不一样的。这一点取决于你的受教育程度,你的生活经历和背景,你所从事的专业方向,你对语言的敏感程度等等。甚至可以这样说,英语的重要程度也是随着你的技术能力的成长而不断提高的。

当你刚接触编程的时候,已经汉化的资料应该足够你度过新手的适应期了。然而你想过有一天你会遇到没有中文答案的问题吗?或者能找到的中文答案对你没有帮助(过时,错误,答非所问等等)的时候你要怎么办?实际上这种问题非常多,比如咱们的 SF 上就有大量这样的例子。有时候你不能过度依赖国内的社区,因为你的问题涉及的技术比较新,即使回答的人也未必能保证正确;而能够保证正确的那些为数不多的大牛们又未必会有时间耐心来解释。

此时如果你能自如的使用 Google/StackOverflow 之类的工具,并且借助字典可以大致看明白又会怎样?

再过一段时间你的水平又长进了一些,你是否想过有一天你会发现某一个工具里存在 bugs,你想告诉开发者请求他们帮助你解决这些问题,然而等你打开 issue 的时候却发现自己无法把遇到的问题描述清楚?

像 SF 这样的中文社区,对于解决之前说到的可以找到确切答案的问题的确有很大的帮助,但是对于这类问题就无能为力了。因为我们日常用到的工具绝大多数都是外国人开发的,报告 bugs 这样的事情你除了使用通用语言,也就是英语,别无第二条选择。除非,你选择放弃——这就意味着你无法再更上一层楼了。

假设你没有放弃,而是尽自己最大的能力去面对英语写作(其实技术性的 issue 提交并不难),那么再过一段时间你肯定又长进了。你是否想过有一天你不仅仅是可以发现 bugs,你还能解决 bugs,甚至还能写出新的功能从而完全参与到开源社区的开发工作中去呢?

此时除了提交代码以外,还有两件事情对英文写作的要求又进一步提高了,第一是编撰文档(哪怕只是 API 文档),第二则是和团队成员讨论代码的细节。如果你为正规开源项目贡献过 PR,你就知道不是你一 PR 人家就会接受的,很多时候大家都要针对你的 PR 进行探讨,帮你进一步完善你的想法。

如果你连这一步也能努力适应,那么英文的阅读和写作(定向的)对你来说已经不是问题了。这时候别人问你英文对编程重要不重要,你大概只会一笑然后告诉他:不会不行。

然而你心里清楚一件事情,如果这个世界只有你一个程序员,大概你会什么语言都不要紧。对于编程本身来说,学会基本的英文就足以应付(虽说高质量的代码也需要高水平的英文),英语的重要性很快就会从代码本身过渡到和同行的交流上去。我们都不是“雨人”,没有与世隔绝就能改变世界的能力,对于我们大部分人来说,写代码其实只是编程工作的一部分,另外一部分则是思考和交流。当你的水平提高到足以和国外同行共商探讨的地步,英语的重要性还需要考虑吗?

如果事情顺利,你还会因此认识一些谈得来的朋友(当然指的是老外),也会因此获得一些机会做进一步的交流。比方说他们会邀请你参加一些在线会议/活动(Google Hangout),会邀请你一起结对编程来研究一些新问题(Tmux/Skype),甚至有时候会给你介绍技术咨询的业余工作等等,无论如何你又发现只会读写已经不够啦,听和说也得提上日程。

甚至都不用发展到这个地步,哪怕你还是菜鸟时期,只要你不惧怕面对英文就很快会尝到甜头。因此你会更大胆的去探索一些国外的东西,举个例子 TED,相信很多人都知道了;再比如说 Confreaks,你知道 Confreaks 每年会提供多少充满了干货和思想火花的 tech talks 吗?你知道如果你每周能抽时间看其中两三个的话,你会发现用不了多久你身边的同事就已经跟不上你的步伐了吗?但是这些都会对你的英语听说能力提出新的挑战,所以你会发现如果还想更进一层,只会读写也是不够的,因为那只能帮你探索外面一半的世界。

以上描述皆来源于自己在编程道路上的亲身体会,不过别被我略带夸张的讲述欺骗了,我可不是什么大牛。我进入最后的那个阶段,也就是和老外在线视频会议/结对编程的这个阶段,仅仅是今年下半年才开始的,我也是刚刚起步而已。但是我可以很肯定的表示,由于我不惧怕英文,英文的确对我的编程生涯帮助巨大,如果没有英文为我保驾护航,我不可能以这么快的速度在这条道路上成长起来。如果你对自己很有自信,也有远大的目标和追求,那就不用再考虑英语的重要性到底有多高这样的问题了,而是从现在就开始学起来用起来吧,因为这件事本身压根儿就没有半点坏处。

英语的高度决定了你技术的高度。


根据bumfod的建议,改为:

英语的高度限制了你技术的高度。

英语也分为听说读写,阅读的需求应该是大于口语的。能读懂文档就好。

另外说两个相关的事情。

  • 学好英语可以搞翻译。现在跨语言的论文查重基本做不到,很多大学生自己又写不出来论文。所以代翻译的服务市场很大。
  • 国外的技术类电子书资源其实非常丰富,虽然国内有很多盗版的,但还是比国内丰富。国内都是扫描制作的,又大又不清楚。学好了英语直接看那些书该多爽。

不在外企的话 可能口语相对阅读来说没那么重要 但是一定的阅读能力确实很有帮助 要知道最新的技术以及很多优秀的文章基本都是英语的 等到国内翻译过来 都过多少时间了 说实话 国内的现状就是一直在玩别人玩“剩下的” 再一个从搜索质量上来看 国内大部分除了采集的 就是copy paste的 往往不经过验证就标着原创 实在不忍直视

要是一开始有阅读困难 建议开机自启一个翻译软件 我是用的有道 感觉够了。 一开始可能会有不适感 满屏的英语 但是当读的多了 就没什么感觉了 反而会有亲切感

有时候google用英语搜索出来的比中文更精准,很多不错的国外的技术博客是英文的,很多官方文档要看英文,英语翻译过来的技术书也会有些偏差,如果能读原著就更好

一般要求英语能看的懂文档,老外的优秀代码都是英文注释, 一半在逛逛权威的网站都试英文.英文阅读能力好点解决问题其实也是比较快

个人觉得英文好即使不是必须,也肯定是个很大的优势!不得不承认比较靠前的技术资料还都是英文先行, 当然你可以等别人翻译过来再看, 这样就会有滞后。口语可以不好, 阅读能力还是有一些要求的。

你要知道一点,有些问题你在国内可能是搜索不到,国内大多数人是不会主动分享经验到网络上的(当然,我自己暂时也是),所以Google什么的是必须的,所以你不光能看懂英文,还要会使用英文去搜索问题,结果就是,如果你的英文水平太随便,那铁定是无法很好提高技术水平的。

初学和英文关系不大,会拼音就行。

入门也关系不大,因为大多数入门教程都有汉语翻译版。直到你能独当一面,才需要非常好的英语,不过能过cet6 的,大多数场合都没问题了,所以不要给自己施压。

在与同事群友交流当中发现英文讲不出几个,但是却经常逛英文的社区,分享国外的博客和资讯。
很可能,你的同事在装逼。


以我自身的情况来说明一下,我有过6级,能看懂一些简单的文章,稍微上档次一点就只能呵呵了。
其实我觉得大多数情况下,英文都是用来命名。。
查资料,有,但是很少,因为中文资料基本能够解决我的问题(层次太low了!!不要嘲笑)。

我觉得相当重要,至少阅读英文资料这块非常有用
例子 就是
当你遇到一个技术方面的问题时,你用谷歌输入英文问题描述搜索,比百度输入中文搜索,准确很多,谷歌的结果会首先列出诸如stackoverflow等专业论坛的资源链接,而百度出来的结果首先便是百度知道的一些结果。

我觉得这点更你做哪方面的开发工作也有关
我最开始学前端,尤其是js相关的部分,除了后来研究ES规范看了英文版,一些翻译的不太好的书看了看中英对照,几乎没再看过别的什么英文文献了。
为什么?因为国内的大牛多,分享详尽又精华知识的博客多,东西从原理到应用讲的通透,系统性也很强,而且跟进新潮技术演进,说站在国际前列是毫不夸张的,没必要查很多英文东西。当然这和js相对简单灵活也有关系。

然而,当我自学android的时候,那叫一个痛苦啊,找的中文博客资料大都是零零散散的,语焉不详,虽说不可能没有大神,但找不到能学到系统性知识和思想的东西,那些所谓的开发者论坛,啧,真不是良莠不齐几个字能形容的了,艹,代码一坨坨的就往上扔的地方,也TM的好意思叫技术论坛。
怎么办?啃英文官网呗,training,api guide,sample,还有各种官方非官方的博客和SDK文档,不会了上SO问,这时候就显出英文的作用来了。
虽然现在android还不算怎么样,但总算是入了门了吧。

所以说,英文有多重要,取决于国内资料能支持你学习到多大程度。
特别是如果想参与到技术发展的最前沿,还是有掌握需要英文去参与学习讨论的。

没有必然联系,特别是一些中文文档非常多的语言如C++ JAVA PHP。但是对于一些在中国比较冷门的语言像ruby lisp,中文资料就较少,需要看英文文档。

如果你在国内的外企,较好的英语水平是必要的:
1 首先作为程序员,难免会去一些英文的技术网站搜索问题,比如stackoverflow
2 企业内的项目文档都是英文的,如果你看这些文档都要经常查字典的话,会显得很低效
3 在与同事的交流中,英语是免不了的,尤其和国外的大boss以及一些技术expert

編程會英語跟不會英語的區別,就像跟中國人打交道會不會中文。

當然中國人也有會外語的啊,同樣不會英語也可以只在中文圈內搞編程。只是當你的視野更加開擴的時候,你自己必然也是站在更高的地方。

不同層次的人,看到的是截然不同的世界。

新手上路,请多包涵

最新的技术几乎都是英文的,你想领先其他人,英语得过关才行!

英语==世界语,
在编程中,再怎么强调重要性也不为过.
如果你英语好,阅读英文文档厉害,那么这个软实力会帮助你飞得越高

楼上那句

英语的高度限制了你技术的高度。

还是武断了些。我有个近似的推论。

英语能力决定你的技术能力的下限。

相当重要吧,代码本身就是鸟语的,而且好的技术文档还是老外的多,新的技术也是老外的多,虽然国内也有,还有就是你给函数,变量等起名字也要用到英文,虽然你可以用var a = 1

英语提供了一个更广阔的交流平台,能让你接触到第一手信息,也能够与更多的人交流。可不止限于编程这一个范围

非常非常重要。中文资料太多流于表面。无数难缠的问题最终的解答都是从google中获取。
不打破英语这扇门,进入stackoverflow和github的世界,你很难发现原来大神这么多,这么近。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏