之前经常有人过来问我关于编程的一些事情,一般都是关于入门学习哪个语言的,所以今天就想聊天我的一些理解,不管是编译型语言还是解释型语言,我的总结是,编程是一门语言,但和英语分不开,入门可以随便选择你觉得合适的语言,但深入一定得懂英语。
编程是一门语言
编程归根结底是一门语言,就像汉语、英语、韩语等,不管你学哪门语言,最后目的是用语言写成一篇文章,用编程语言写一个程序,程序的好坏、效率高低和一篇文章优秀不优秀一样,写法有很多,同一个意思可以有很多表达方式,比如“被字句”、“把字句”等,所以不管你想学什么语言,最终学会的都是编程思想,就像一个人从婴儿成长为成年人学习语言一样,学习的是一种语言思维。
之前有人分析过,从小和狼一起长大的孩子,没有形成语言思维,再去学习语言是很难的一件事,相反,我们从小学习汉语,再去学习英语也是可以的,有了语言思维,不管学习什么语言,都是可以做到的,编程也是一样,有了编程思想,不管你用什么语言去实现,一般都可以做到,细节可能不太一样,比如汉语的古诗很难用英语翻译出那种意境,编程也是类似。
编程和英语分不开
有一些朋友会说编程不需要会英语,即使大部分编程语言使用的是英语去写,但也就那几十个关键词而已,记住就行了,其实不然,如果单单是入门的话,做个简单的程序,重复造轮子,做别人已经做过的程序,确实不懂英语可以,有问题网上搜一下就能找到答案,但一旦想深入,就不得不会英语了,哪怕你不懂英语的什么时态、语法,但起码能大概看懂英语。
比如我之前用谷歌的开源项目chromium做了一个浏览器,原文章《基于chromium开发了一款自动化浏览器》,当时稳定版内核是88,我用的是91的内核开发的,是因为一个新的功能必须要用,这已经不是重复造轮子的事情了,遇到问题只能看谷歌的官方文档,全英文的,而且浏览器翻译就别想了,这种涉及专业词汇的文档,翻译出来一塌糊涂,只能靠着自己的二流子英语水平去一句一句看,最后才解决了一些问题。有朋友可能会觉得任何的项目都有替代的方法,但浏览器这一行业,貌似真没替代品,谷歌一家独大,微软都不搞自己的内核了。
除了我举例的浏览器这个行业,其实很多系统的包或模块,不管开发者是谁,很多文档都是用英文写的,哪怕是国人开源的一些项目,很多文档也是全英文的,这是为了社区交流更方便,毕竟目前英语确实是比较广泛的,开发者为了让更多的人参与进来,一般都会写英文的文档,这就是为啥编程和英语分不开的原因。