一、前言(程序员必须要会“英语”吗?)

当然不是必须了!可以说一个完全不懂英语的人都可以完成编程工作(用拼音或字母代替)。比如如下代码:

//有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数
int main()
{int i,j,k;for(i=1;i<5;i++)for(j=1;j<5;j++)for (k=1;k<5;k++)if (i != k && i!= j && j!= k)printf("%d,%d,%d\n", i, j, k);return 0;
}

如果你很确定“学英语是,不可能学英语的” ,只是担心“不懂英语”会不会影响一般的编程工作。那么你大可放心的跳过本篇文章了。编程不必懂英语是真的。
但是如果你想了解了解,如果懂英语到底对编程工作有啥帮助,那么你不妨往下读一读。

二、会英语在编程中的优势

  1. 容易读懂外国大牛写的“开源项目源码”,开源项目一般没有详细注释。但是如果你懂英语,那么读开源代码就像读一篇文章一样。
  2. 不用写注释,只要给函数名字和变量名字起合适的英文名字即可。可以减轻自己的编码负担,只需注释比较容易混淆的代码或注释编写背景或原理即可。而不再需要写“翻译类型”的注释。比如以下这个例子:
//完全不需要注释,别人和你自己,就能看懂这个函数的作用
string GetDeviceName(int number) {switch(number) {case 1: return "HY-800";case 2: return "HC-201";default:return "";}
}
  1. 在使用新的开发平台的时候,没有中文文档可以参考,英语好的话,可以直接看官方文档。如果看得开心,你可以翻译一波,来造福大家。
  2. 如果你是一个驱动开发工程师,那么会英语对你工作帮助太大了。因为现实中,芯片的官方手册都是英文的。所以你绕不开英语,想要开发好驱动代码,只能死磕英文手册。
  3. 可以轻松看懂“Stack OverFlow”上面的解答。在编程中搜索某个疑难杂症的时候,搜索结果中最匹配的问题描述就是“Stack OverFlow”。但是里面都是英文,那么你是看还是不看。

三、必须使用英语编程的场景

文章开头说,不会英语可以放心的进入编程领域。但是现在又说,不会英语不可行,为啥呢?
这是因为,我们一般的对于大部分的公司来说,确实不需要会英语。但是总有这么一些独特的公司和大多数公司的要求是不同的。个人估计这些独特的公司占所有需要编写代码的公司的5%(纯属个人感觉,不要那么认真)。有以下3大类:

  1. 外企:外国公司
    不必过多解释,肯定得懂英语,而且还得”相当“懂才行。因为要和外国同事共同开发程序,共同写或读一份开发文档,以及相互之间口头交流。
  2. 大厂:国内大型IT公司
    大厂被称作”大厂“是因为真的很大,大到业务会扩展到国外。因此软件对应的也有外国本土化定制的需求。另外大厂写的软件都有“国际化”的需求,因此“写英语注释”就成了一个必要的需求了。这也是大厂招聘的时候,要求“本科及以上”的原因之一吧。
  3. 写开源项目
    写开源软件,需要你用英文写函数名称、英文变量名称,和英文注释。这样全世界的人都能读懂你的代码。

四、完全不会英语怎么写代码

写拼音即可。
这里要说明一点,汉字是表意文字。而世界上大部分的文字都是“表音文字”。也就是说外国人写的文字,相当于汉字的“拼音”。所以你完全写“拼音”是没有任何问题的。会汉语的人是可以轻松看懂你所写的代码(只要注意规避同音字即可)(汉语拼音实施日期:1967年11月1日,写代码的人几乎都用“拼音输入法”)。当然对于有歧义的函数名或变量名字,你可以写汉字注释以方便自己或者其他人阅读代码。比如:

//如果觉得有歧义还可以加上此行汉字注释
//函数名:获取设备名字
//参数:编号
//返回值:名字字符串
string HuoQuSheBeiMingZi(int bian_hao) {switch(bian_hao) {case 1: return "HY-800";case 2: return "HC-201";default:return "";}
}

五、给函数或变量起名字的几条实用建议

我们起一个好的函数或变量的名字,目的就是为了避免写“翻译类型”的注释。在简化工作量的同时,还能增加代码的可读性。因此以下几条“起名字”的建议是非常重要的。直接关系到你代码的质量和可维护性。

  1. 无论拼音或英文单词,不要简写、不要缩写(不要只写首字母)。
string GetCurrentTime() {}  //标准的纯英文函数名称
string GetCurrTime() {}    //简写了单词Current,导致看起来怪怪的,对于英语差的同学,连查词典都不知道该怎么查。用屏幕翻译软件翻译也翻译不出来。因此再次强调“一定要把单词写完整”,不要怕函数名字长。(控制在30个字母内)
string GetCT() {}       //缩写成来2个字母。看代码只能靠猜。无疑增加了阅读代码的难度。
string HuoQuDangQianShiJian() {}    //标准的拼音函数名称
string HQ_DangQinnSJ() {}  //把时间缩写为SJ,存在一定的误解可能,尤其汉字的同音字很多。不建议缩写拼音
stirng HQ_DQSJ() {}     //这个缩写的太过分了,要是不写一个“翻译类型”的汉字注释,完全看不懂这是要干啥

仅使用大家所熟知的缩写字母,比如:USB,DCS,IP,DNS,MAC。

  1. 千万别完全依赖“翻译软件“来写英文的代码
    使用翻译软件的前提是,你自己确实认识翻译软件翻译出来的那个英语单词。否则不要用!!!比如:
int SiLiaoCaoSize = 8;//这个 SiLiaoCao 大家很容易明白其意思(尤其结合项目应用场合和功能逻辑)
int FeedTroughSize = 8;//使用翻译软件翻译的结果,Trough属于不常用词汇,你这样写是难为自己和同事

注意:千万不要强行把“饲料槽”翻译成英文。因为,英语不是咱们的母语,你强行使用翻译工具翻译成“英语”,遇到不常见的英语词汇的时候,不仅难为了你自己,还难为了你的同事。

  1. 尽量避免“中式英语”,如果没有把握写拼音就好。
    比如:
    3.1
    要表达的中文意思:用户列表
    中式英语翻译:PeopleList //“人”列表
    正经英语翻译:UserList //用户列表
    3.2
    要表达的中文意思:提出bug的人
    中式英语翻译:BugFounder //Founder : 意思是“创办人”
    正经英语翻译:BugReporter //用repoter才符合英语语言习惯,意思也最准确
    3.3
    要表达的中文意思:字符串的最大长度
    中式英语翻译:MaxLengthString
    正经英语翻译:StringLengthMax //在代码中,表示某某的最大或最小值,一般把max或min放在最后

  2. 避免把动词当成名词使用
    我们给“变量”或“函数”起起名字,当然是要使用“名词”,而由于我们汉语的说话习惯,经常会使用“动词”来作为核心。很容易犯这个错误。这里要表达的意思是需要使用名词的时候不要写成动词。比如:

void OnDeleteButtonClick() {}     //动词当成名词使用
void OnDeleteButtonClicked() {}   //合适用法

当然,这一条并不是说函数名字不可以用动词,当函数名字明确表达“动作”的时候,可以使用动词。比如:remove、delete、rename、move、up、down、run。

1.6-程序员必须要会“英语”吗?(会英语在编程中的优势)相关推荐

  1. 准备程序员面试?你需要了解这 14 种编程面试模式

    在面试程序员岗位时,我们往往需要经历一个编程面试过程,雇主会借此考验面试者的技术实力.然而,这些技术问题有时候却和我们的实际工作并无太大关系,也由此可能给我们的编程面试准备阶段带来很大的压力.曾在 F ...

  2. 干货!!不同程序员岗位对不同电脑性能的要求(编程开发选电脑)

    请大家多多点赞,评论,转发,关注!!!谢谢 这次的文章主要是从软件开发的不同岗位需求,对电脑性能要求和配置要求的角度来聊一聊程序员到底该配一个什么配置的电脑. 干货!!不同程序员岗位对不同电脑性能的要 ...

  3. 程序员如何轻松又愉快的学好英语

    程序员内功主要有数学和英语,有了英语这杆枪,平时写代码排错,不仅可以做百度工程师还可以做谷歌工程师,有经验的小伙伴应该经常能在Stack Overflow上找到答案吧.不过从学校到社会学了好多年英语, ...

  4. 某程序员吐槽:媳妇要给孩子报少儿编程班,将来继续做程序员!以后要看到穿着纸尿裤的P7!...

    话说:"龙生龙,凤生凤,老鼠的儿子会打洞".一般而言,父母的职业多多少少会对孩子产生影响.那么程序员是否希望自己的孩子继续做程序员呢? 一个程序员发帖抱怨:媳妇想给孩子报少儿编程, ...

  5. 程序员一般都浏览这些网站,不仅仅提升编程水平!

    程序员作为一个经常和互联网打交道的人群,他们喜欢浏览那些网站呢?不爱敲代码的程序猿整理了以下网站供大家参考,排名不分先后: 0. Google https://google.com 这个不用多说了吧. ...

  6. 程序员,闯天下----一个文科生的10年编程之旅和创业之路

    我是超级表格的创始人,现在为这个产品设计架构和产品定位. 我的本科专业是教育学,硕士专业是市场营销. 在大学时没有上过计算机课程.毕业后开始自学计算机,做程序员,直到现在创业.说说我的10年编程之路吧 ...

  7. 《程序员练习生》第2期 什么年龄开始编程最好

    最适合开始编程的年龄是10岁开始,坚持下来,18岁之前会小有成就,并衣食无忧. 1. 为什么是10岁 很多人听到编程两个字,就下意识的感觉这是非常高深的技术,至少需要完成高中,甚至是要上了大学才能开始 ...

  8. 程序员必备的60个网站,解决你编程的所有问题

    看到有人问程序员都喜欢逛哪些论坛,那我就来总结一下. 0. GitHub - 开发者最最最重要的网站:https://github.com 这个不用多说了吧,代码托管网站,上面有很多资源,想要什么轮子 ...

  9. 《程序员书屋》微刊创建,赠书活动进行中!

    我的<程序员书屋>微刊已建立,欢迎大家踊跃投稿,推荐好书. 我将每月拿出两本图书,赠阅给程序员们. 如果您有精彩的技术书推荐 如果您有书评要写 如果您有程序员的故事 都可以投稿给我 一起分 ...

最新文章

  1. ARP欺骗 ---网络执法官(转载)
  2. Eclipse安装Hadoop插件配置Hadoop开发环境
  3. java关键字与标识符 —(3)
  4. DataGridView控件用法二:常用属性
  5. linux中PATH变量-详细介绍
  6. html 弹出一个邮件连接,mailto scheme 高级用法, 显示带html样式的邮件文本
  7. 《细说PHP》读书笔记
  8. 程序员找女朋友都有哪些标准?
  9. HDU5855(最大权闭合图构图技巧+裸的最大流)
  10. The word is not correctly spelled
  11. expects parameter 1 to be resource, array given 错误解析
  12. Word双栏和单栏的转换
  13. SDLC 软件开发生命周期及模型
  14. MTK android系统源码修改快速上手
  15. 用Ubuntu20.04开热点
  16. 串口通信协议--UART、RS-232、RS-485、RS-422
  17. 神经网络算法的关键参数,神经网络预测时间序列
  18. java图片失真_Java对图片不失真地缩放
  19. Android 流量监控统计整理
  20. AI视觉识别让无人机巡航拥有智慧之眼

热门文章

  1. 2020年了,BAT都组建了哪些科技实验室?
  2. 利用pytesser识别简单图形验证码
  3. 屏幕截图工具 php调用,PicPick 全屏幕截图工具
  4. 计算机上播放时没声音什么故障,新买的电脑插上耳机没有声音怎么办?具体故障原因及解决方法看这里...
  5. java数组不初始化长度_数组之初始化 Java
  6. 填表统计预约打卡表单系统
  7. 第2章第7节:标题设计技巧:实现字叠字的创意艺术效果 [PowerPoint精美幻灯片实战教程]
  8. python中的图形界面设计_python图形化界面设计(tkinter)一全面介绍
  9. (Tiled官方文档翻译)第四节:对象的编辑和使用
  10. OkHttp GET请求步骤