三年前在极客时间做的一个直播,其中一小段被作为微视频分享出来,标题是“五十岁程序员: 技术人千万别看中文”,引起很多争议。今天写篇文章,把我的观点再详细表述一下,以免被断章取义。

我们不得不承认的事实是,尽管中国有五千年灿烂辉煌的文化和历史,但现代的科学技术、尤其是原创技术几乎都不是源自中国。就拿我们从事的 IT 行业而言,主流的编程语言没有一门是中国人推出的,就更不用说操作系统、编译器,各种开发工具了,连一个好用的编辑器都没有。虽然近年来信息科学等领域在国内也是飞速发展,但我们依旧很难在计算机教科书诸如算法、设计、架构等基本概念上,找到哪怕一个是完全源自中国的。随着互联网的兴起,中国出现了阿里、腾讯等巨无霸,让计算机的应用技术得到了质的飞跃,也能与亚马逊、谷歌一争高低,但在全球 IT 技术的舞台上,中国科技公司的声音还是太小。

以我自己创办的涛思数据而言,虽然 TDengine 多次在 GitHub 全球趋势排行榜霸榜,在多个全球开源数据库(database)的榜单上都位居前十,还得到了相当多的客户的认可,但从全球的影响力上来说,与我们的对手 InfluxDB 相比,还有差距。

英语是目前全球科技交流的第一语言,这是一个不争的事实,而且我们与欧美的先进技术还有相当的差距,要研发一流的产品,不看英文是不可能的。在 2016 年我准备开发时序数据库时,国内仅仅有清华刚起步的一款,而美国早已存在 InfluxDB、OpenTSDB 等多个产品。当时调研数据库的技术,真正有深度的技术文章,中文的几乎没有,我只能翻看英文的技术白皮书、各种英文的技术博客,包括一些英文学术论文。可以说,如果我的英文不行,就不可能有 TDengine 这款产品。

真正的技术难题,是只能看英文资料解决的

中国人口基数这么大,有自己的文化,不可能要求大家都看英文。因此中文的技术书籍有市场,有的是翻译过来的,有的就是国内自己写的。就 IT 行业而言,做普通的研发工作,看中文技术书籍,百度一下中文的技术问题,大部分都能找到答案。

但是遇到特别细特别深的问题,往往网上是找不到中文答案的,而这个时候,如果你用英文搜索,多半会在 Stack Overflow 里找到答案,甚至找到长篇的英文博客。这是为什么呢?

我想有几个原因。一个是,你遇到的问题,世界上的其他程序员可能已经遇到过了。中国程序员只占全球程序员数量的不到 20%,因此就比例而言,中国以外的程序员遇到同样问题的可能性更高。再就是,国外有更久远的技术分享积累、文化和平台,像 Stack Overflow 等问答网站,还有很多人持续耕耘自己的博客;相对而言,国内的分享平台积累不够深,以前还有很多人坚持写博客,总结自己的经验,但是随着移动互联网的兴起,很多人习惯在公众号等平台上分享,但这些内容又无法被很多通用的搜索引擎检索到。所以整体来说,我们更容易用英文找到答案。

与我的很多小伙伴们相比,我找到问题解决方法的速度往往很快,不是我多聪明,而是因为我在美国学习工作十多年,看英文就象看中文报纸一样的,可以一眼看过去就找到自己要看的内容,而且知道应该用哪个英文关键词搜索,自然解决问题的速度就快。

不仅要会搜问题,而且还要会用英文提问题,如果你只能用中文提问,那能回答你问题的人数会大大减少。而能用英文提问题,就需要你能用英文清晰地表述,坚持下去,你的英文表达水平也会不断提升。

为什么涛思数据对英文的要求高?

可能有些人会说,我就算不懂英文,也可以阅读那些用中文翻译过来的技术书籍,也不妨碍我的进步,为什么你偏偏说自己的技术团队中不会招不懂英文的人进来,你这是不是没有文化自信?

我创办的涛思数据,开发的是底层数据库软件,更具体地来讲,是时序数据库软件,专门用来处理机器、传感器、设备等产生的数据。对于底层软件,中国与欧美的差距不是一般的大,在中国能开发底层软件的人才寥寥无几,可以参考的中文资料几乎没有。何况我做的是一个数据库的细分领域,资料就更少。这个时候,想要有所参考,那就只能看英文资料。

不仅如此,我们开发的 TDengine 在定位上就不是国产替代,而是要在全球时序数据处理市场站在第一梯队。如果你不看英文资料,就无法了解欧美产品的最新进展,无法获取全球最新的该领域的资讯,何以取胜?在国内,一些前沿的技术论文译文基本都是来自于社区热心群众的自发翻译,技术出版社是不涉及论文翻译的,就算是热心翻译那也只会从自身爱好出发翻译一些比较著名的论文资料,翻译质量也难以保证。如果你不懂英文,那只能说看多看少、看对看差都全凭运气了,更没准等到译文出来,这个技术都已经过时了。

因此我面试所有研发人员都是要考察英语阅读能力的。面试方法很简单,我会从候选人所熟悉的工具(比如 MySQL)的英文文档里挑一段出来让你当场翻译。我通过这个方法至少筛选掉了一半以上的面试者,如果他们对自己熟悉的技术,都无法快速准确地翻译出来,很难相信对于时序数据的英文技术文章,他能够快速地理解。

掌握研发用的英语,并不难

因为所有的编程语言都是英文的,所有的编程工具都是英文的,作为一个程序员,你完全不懂英文是根本不可能高效工作的。但我见过很多程序员,因为对英文有点畏惧心理,他们无论看书,还是搜索,都还是习惯中文。

其实阅读英文技术书籍和文章并没有很多人想象的那么困难,它的词汇量和句式都是相当有限的,你并不需要多高的语言天赋,但是孰能生巧,读第一本的时候磕磕巴巴,读第二本、第三本就会顺畅流利很多,再看后续的,就不会有任何障碍。包括英文写作也是,最开始写,你可能写一小段都结结巴巴似的,花很多时间,还是有错误,但只要你坚持写,孰能生巧,很快写作对你来说也就不是问题了。

市场上有大量的中文编程教材,国内很多程序员都是依靠这些书学会了编程。但我还是建议,无论如何,一定要硬着头皮看几本英文的计算机教材,而且可以对照中文的看。看了之后你就发现,国内的教材基本上是编译的,专业词汇本身也都是翻译过来的,很容易存在词不达意、一词多译、多词多译等问题。好的英文教材是一版再版,发行量远远超过中文教材。而且你看了这些英文教材后,就会用正确的、全球统一的专业词汇来交流,你能交流的就不只是国内的从业人员,而是全球的 IT 从业人员。

参与开源项目,是练习英文的好机会

中国绝大部分 IT 公司都不是英文的工作环境,那么怎么才能提高自己的专业英语水平呢?其中一个很好的方法就是参与开源项目。

众所周知,现在很多软件都是开源的,从操作系统 Linux、Android,到 Database,比如 MySQL、PostgreSQL 和 MongoDB 等等,包括我主导开发的时序数据库 TDengine,这些软件是全世界程序员智慧的结晶,是全球开发者共同开发的。这些软件的设计和讨论都是英文的,只要你乐意花时间学习,就一定能够参与进去。

也许你还在犹豫自己的技术水平不足以参与到这些开源项目中,但你可以先把自己作为一个用户,下载体验测试它,发现问题之后可以直接在 GitHub 上用英文递交问题。再进一步,参与到文档错误的修正,甚至把它翻译成中文;再进一步,仔细看提交的 PR,观摩学习全球技术高手的代码,看人家是怎么解决问题的,而且用英文写下自己的评论,与对方互动;再进一步,参与到 BUG 的修改,甚至新功能的开发中,尽情发挥自己的编程经验,你也会收到别人对你代码的优化建议。在这种学习和互动之下,自我能力一定会得到很大提升。

我在很多场合下都在布道开源,告诉大家想要打破国内优秀程序员的标签——大厂、名校、35 岁以下、男性,参与开源项目是最好的方式。因为代码是一个程序员最好的简历,是程序员最好的名片,只有在开源的世界里,大家才能够抛弃对教育、年龄、性别、经验、肤色、地域、文化的偏见。

中国基础软件走向世界,必须用英文

目前,中国背景的基础软件成功走向全球市场的寥寥无几,虽然我们开发的 TDengine,还有几个中国背景的开源基础软件已经在全球市场有一定的影响力了,但与知名的开源软件相比,知道的人,使用的人还是太少。以 TDengine 为例,仅仅 30% 的用户来自海外,而且其中相当一部分还是来自海外的华人。

我们这几家软件之所以能够在全球市场有一定影响力,也是由于我们都有完整的英文文档、英文论坛、英文技术博客。至今为止,我还没看到海外社区里有自愿把中文的文档翻译成英文的。为了 TDengine 的海外推广,我自己就写了多篇英文技术博客,与欧美的多个技术意见领袖进行交流,否则影响力更小。

即使开源,如果你的文档和程序里的注释都是中文,论坛里也都是中文的讨论,这样是没有办法吸引全球的非中文用户参与进来的。而要打造全球一流的产品,你必须要想办法吸引全球的一流人才参与到研发中,而且必须倾听全球用户的反馈和建议,不用英文是完全不可能的。

TDengine 英文官网页面:tdengine.com

尾  声

如果你是一名程序员,并且还存在着对技术的追求,不想庸庸碌碌得过且过,那就千万不要为了省力而纠结,一定强迫自己看英文、写英文,与全球的开发者交流,与全球的开发者而不仅仅是中文的开发者做朋友,你的世界一定更加丰富多彩。

可能会有不同的声音批评我要求大家用英语是崇洋媚外,没有文化自信。但我依旧认为,知识和技术的承载是英文还是中文并不重要,但我们要看到现实、看到差距,善于学习,而且要用开放的心态,吸引全球的一流人才来打造出真正世界一流的核心技术,打造全球化的产品和企业,这也是我写下 TDengine 第一行代码时给自己定下的要求和目标。

陶建辉

涛思数据创始人,TDengine 核心研发


要做研发高手,就是必须能看英文、写英文相关推荐

  1. 钉钉日志范文100篇_看图写话范文328:暑假旅行(4篇)

    范文01:暑假旅行400字 暑假,我们一家去了嘉兴游玩.嘉兴南湖因红船而成为革命圣地.老爸对于中国近代革命史可谓是如数家珍:"星星之火可以燎原!你们看,当初共产党就是在这么小的一艘船里点燃了 ...

  2. 心田花开一二年级看图写话高分写作技巧教程

    一二年级的看图写话是为了三年级的作文打基础.同时也是培养孩子的认知能力.形象思维能力.想象能力和表达能力的良好途径.培养孩子以上能力情况下,如果想要获得写作高分也需要一定技巧,心田花开通过1.看图写话 ...

  3. 老板让我做研发负责人,谈谈我的想法和认知

    写在前面:今天接了一个研发负责人的角色.虽然还是有很多疑虑和不确定的问题没有聊透彻,但是至少从今天起,要有个思想准备,同时要有在工作方式上做出改变. 对这个岗位和角色,我给自己的心理建设和预期是: 工 ...

  4. 「技术人生」第10篇:如何做研发效能提升(即指标体系建设过程回顾)

    01 背景 Aliware 纵观软件研发的发展历程,如果说"业务需求开发"是核心主线的话,那么研发效能建设就是这一核心主线之外最大的一条支线.每个历史阶段的研发效能所面对的主要矛盾 ...

  5. ms查约束具体代码_程序员写代码之前应该做的5件事,看完编程效率瞬间提升

    作者:borisyang,腾讯 WXG 应用开发工程师 作为程序员,刚刚开始学会写代码,常常是接过需求就开始撸代码.有时候发现,写完代码,需求变了.更多时候,觉得写业务代码枯燥无聊,没有技术含量.另外 ...

  6. 网页html做捏脸站,[技术研究]想做Web 3D捏脸?看了这篇文章你就会!

    原标题:[技术研究]想做Web 3D捏脸?看了这篇文章你就会! 游戏里的人物捏脸见的多了,网页里的捏脸见过么? 3月6日完美世界手游上线,前期需要一个预创角营销活动进行预热.与以往预创角活动不同的是, ...

  7. 今天研发部来了一个看起来有50多岁的面试者

    今天研发部来了一个看起来有50多岁的面试者,后来听老大说,他是来面试电子工程师的,我们很惊讶.却又瞬间陷入了沉思,我在想我50岁的时候在干嘛?也会四处奔波到处找工作吗?或者找份领导级别的岗位还让别人觉 ...

  8. BIOS英文报错详解;你虽会做系统,但你会看BIOS英文报错吗,仅供大家参考学习。...

    有很多朋友英文不是很好,开机自检时出现问题后会出现各种各样的英文短句看不懂,但做系统没问题,可一碰到BIOS英文报错就傻眼啦,下边收集一些报错解释供大家参考学习: 1.cmos battery fai ...

  9. python中是干嘛的-python是做什么的,新手必看哦!

    原标题:python是做什么的,新手必看哦! ​python , 是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,Python 已经成为继JAVA,C 之后的的第三大语言.特点:简单易学 ...

最新文章

  1. 软件项目管理 用户测试,1对软件研发过程中用户需求研发设计项目测试交付实施测试等流程监督管理.doc...
  2. 国内“重量级”单体数据中心开始运营 火了这个县
  3. 通过飞行CALL找到BT飞行偏移 和飞行状态偏移
  4. java jxl 写 excel_Java 操作Excel(jxl读和写)
  5. OpenJudge NOI 1.5 02:财务管理
  6. 怎么成为开源贡献者_开源如何成为您下一份工作的门户
  7. 计算机减法英语,英语的加减乘除如何表达?
  8. TensorFlow模型保存和提取方法(含滑动平均模型)
  9. router-LInk传参与接受参数(记录)
  10. 将url参数转为json对象
  11. 计算机网络实验三思考题,计算机网络实验思考题答案
  12. MSP430FR5994LannchPad开发笔记之一:CCS+DriverLib建立工程模板,及使用eZ-FET Debug进行printf
  13. lancet: 一个全面、高效、可复用的go语言工具函数库
  14. unity3D用什么语言开发好?
  15. linux指令——刘雯丽
  16. 利用c++与opencv将文本、图像加密进另一张图片中
  17. 好记性不如烂笔头——Vuex篇
  18. RTE2021开幕 声网重磅发布RTE万象图谱
  19. windows 初始化设置
  20. 【Yngz_Miao的博客】博客导航(不断更新)

热门文章

  1. 【网络安全】登录问题(一)Session/Cookie源码分析
  2. html5 racing 游戏,RacingMaster赛车大师
  3. 时间复杂度O(n)什么意思
  4. 智能投影机android系统,智能投影机
  5. 1718 Cos的多项式
  6. MySQL数据库的MNA集群环境配置
  7. Python数据可视化matplotlib:第四回:文字图例尽眉目
  8. (计算机组成原理)RISC与CISC的区别
  9. blos硬盘启动台式计算机,台式机加硬盘开机问题解决-戴尔台式机bios设置
  10. 如何批量下载天堂图片网上多个精美作品并保存一个目录