今天想和大家讨论的话题是英语水平对学习编程的影响。
很多想转行学习编程的同学,大概都有这么一个问题:我很想学编程,可是我英语不好,会有影响吗?
这个问题很有代表性,其实很多小伙伴初入程序世界时,遇到的第一个问题,并不是与程序相关的理解,而是来自另一种语言--英语带来的障碍。对于母语是汉语的我们来说,存在英语书写和阅读上的困难,很多人因此望而却步。
因此,下面我们一起看一看程序员世界中英语扮演的角色吧~
1、英语与编程的关系
告别了“编程语言”选择困难症,可能你已经遇到了初入行新人要面临的又一道难题:满屏的英文看得我脑壳疼!
英语不好也是很多入行新人的共同的顾虑。
其实,不考虑代码的可读性、兼容性和逼格的话,我们完全可以用汉语、古希腊文编程!不信的话,我们可以试试用汉语编程~
你可以打开浏览器,用f12调出控制台,在里面写上这么一段JavaScript代码,并且回车运行一下:
可以看到,我们的汉字作为所谓的变量,也没有问题,程序照样能运行,打印出了我的变量的值:真的。
更有意思的是,其实国人已经有汉语编程语言-易语言了!下图的Windows弹窗,就是由纯汉语的易语言写的。它和你的系统弹窗没啥区别,而微软则是用VB这门语言实现的。
这一方面证实编程用什么语言呈现真的不重要,重要的是我们写的是逻辑,不单单是英语或者汉语。
编程语言和英语都可称为语言,只不过大部分编程语言的设计者都是国外的工程师,代码以他们熟悉的英文的形式呈现出来罢了。
因此,英语和编程的关系,英语只是实现编程内容输出的最主要的载体!
2、英语在编程中扮演的角色
为什么说英语对编程不重要?英语在编程中扮演什么样的角色呢?
对于程序员来说,大部分精力其实不是在敲键盘,而是用来思考。思考诸如“如何找到地下停车位”、“如何给农产品溯源”这些具体的需求如何用程序实现!思考的过程其实和英语完全没有关系,但是输出时可能会用到英语。
因此,英语并非编程工作的核心技能,它只是一个表达编程思想的工具!
而在实际的编码过程中,常用的无外乎几百个英语单词!日复一日地使用,不去刻意记也能记住!
虽然有些英文单词确实又臭又长,但是老外也不想自己用着痛苦呀,因此他们在程序里起名字时,都会遵循“望文生义”的原则,即单词字面意思就是要表达的含义。
举个例子:前端React框架中,有一个方法,名字如下:getDerivedStateFromProps
乍一看让人吓一跳,字典里你根本无法查到这一长串!可是如果你真的细细观察,就会发现:这连起来不就是“从props中获得state”的意思么!就跟你给你家宠物贴了个标签“隔壁老王送给我的哈巴狗”一样,提醒得周全,还好记!
老外起的名字,他自己看着舒服好记了,你可能就头疼。不过,好在大部分你不认识且查不到的单词,都是getDerivedStateFromProps这种样子的。找到规律了,自己也会习惯这样给变量命名,理解与记忆也就没什么难度了。
不要把编程看成写英语文章,哪怕是给变量啥的起个名字,拼错了又如何?更妙的是,现在的开发工具都非常智能:基本只要记住单词开头几个字母就行,敲出来开发工具就会自动提示;这样一来,咱们要记住的单词更少了!
下面是一个React应用的例子,借助编辑器,我们只需要记住三个,不,两个字母就够了!只要写出前两个字母,编辑器就能够给出大部分的框架代码,供我们使用。而我们真正要做的,其实是通过思考,完成整个应用的逻辑。
所以,无论是在思考或编码过程中,英语扮演的角色都不是很重要!
3、英语助力编程学习
以上是对英语在编程中扮演角色的讲解,可能消除了你在英语方面的顾虑,但你也不能就此忽略英语!
虽然,编码过程中英语可能并没有那么重要,但如果你想要更好地学习编程,英语是不可或缺的!
程序员这个职业要不断学习,不断提升。虽然国内有大量的优质教程、问答社区和民间团队翻译的文档,但这些资料很多都是“二手”的,是别人理解过告知你的,有些时候会让学习效果大打折扣。
有些资料则是“过时”的,按图索骥可能会让你陷入另外的泥潭。如下图所示,同样是要解决“mysql修改root密码”的问题,如果直接从百度去查找,排名前几的答案都是“过时的”错误答案。
而如果你有英语阅读能力,哪怕是借助工具查阅官方文档,一句话就能解决!
由于信息革命首先是从美国兴起的,大量的优质项目和活跃的社区论坛也是以英文为主的。
全球最大的源代码网站github,它的slogan就是“wheretheworldbuildssoftware”,其实也是名副其实的“世界上构建代码的地方”。超过万的开发者,万的开源项目和一亿个的代码仓库都活跃在这个平台上。
stackOverFlow,同样也在践行着它“依靠程序员,服务程序员”的誓言。在stackOverFlow社区里,有着超过1亿的月活用户和万个问答,平均每13.9秒就有一个新的问题产生,累计帮助了超过亿次的程序员。
而绝大部分编程语言和框架的官方文档,都是由英文书写的。如果你英文不是很差,就可以直接阅读一手前沿资料,查看众多开源项目的文档,与国外的同行交流探讨,这都是我们前进的强大助力!
总之,可能现在你的英语比较差,但是它并不是你目前学习和编码的阻碍。如果你下定决心在程序员这条道路上不断前行,我相信,编程对你来说不是问题,英语同样也不是问题