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

本文探讨了程序员是否需要掌握英语的问题,指出虽然不是必须的,但懂英语能带来诸多优势,如更容易理解开源项目、官方文档和Stack Overflow解答。文章列举了必须使用英语编程的场景,如外企、大厂和开源项目,并提供了不会英语时的应对策略,强调了起好函数和变量名的重要性。

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

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

//有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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值