作者 谢恩铭 转载请注明出处
公众号「程序员联盟」(微信号:ProgrammerLeague )
原文:http://www.jianshu.com/p/0194b98df6bc
程序员联盟群里经常有人问:
- 我数学不好可以学编程吗?
- 我英语不好可以学编程吗?
今天就来一次性回答这两个问题。
我这些年的体会是:
「英语对于编程的助力比数学要大。所以要说优先级的话,首先过了英语这关再说」。
当然了,很多人会有不同的意见。我这里只是说说不才的我个人的体会。
欢迎留言指教,也可以丢鸡蛋,不过记得再丢几根韭菜,我可以韭菜炒蛋~
为什么这么说呢?很简单,不少编程都不需要什么数学知识,但是英语却是避无可避。
除非你是用易语言编程(不过说实话,中文真的不适合用来写程序。英语的字母组成和特性决定了编程还真需要用英语),不然离不开英语。
对编程来说,学好英语有以下必要性:
-
对编程语言里的基本词汇敏感,便于理解意思。很多函数和变量名都是自注释的(也就是说光看名字就知道意思了),例如 isFinished() 函数,不懂英语的话就不知道是什么意思,如果会英语马上会知道是判断「是否结束」的函数。很多 API 或源码是没有注释的,因为函数名已经可以达意了,但不会英语你就看不懂。
-
能够为变量或函数起个好名字。命名可以一大学问,名字起得好,一看便知,就是1中所说的自注释了。如果英语不好。起了个有语法错误的名字,或者胡乱起一个名字,或者起一个拼音读音的名字(比如 haoChiMa,简直不能忍),对于阅读你程序的人或者是你日后自己回看自己的程序,简直惨不忍睹。
-
很多好的教程和书籍是英语的。虽然现在伟大祖国越来越发达,国人编程整体水平越来越高,也著有非常优秀的书籍,写了非常优秀的博客等。但是,老外的思维方式还是跟我们不太一样,看老外的文章往往比同类的中文教程易懂。因为他们思维跳跃,语言幽默、形象,看起来比较轻松愉快。不过,我越来越发现:比如我在搜索 Android 一个知识点时,Google 的英文结果没有满意的答案,在中文的博客里却会找到答案。这说明我国已今非昔比了。
-
很多好的论坛,网站是英语的。例如最著名的 Stack Overflow,Github,等等。在上面可以用英语提问,回答;参与开源项目,撰写文档,等等。当然了,国内 CSDN 这样的综合编程社区也是很优秀的,但是一般来说新技术会第一时间用英语在国外网站发出来,例如 Android 的各种新闻,我们中文版还需要等人翻译,这就滞后了。
-
很多书籍,有中文翻译版,但是不好理解,因为翻译水平不行。所以要看原版的话只能会英语。
-
很多软件,没有汉化,只能会英语。
我在之前的文章里提过, 我这些年很努力, 几乎每天都在学习。
这些年进步比较快的一个很重要的原因就是我的英语还不错(当然了, 比我好的人多了),英语好对编程真的帮助极大!
反观数学:只在某些特定领域需要数学比较好。
例如游戏开发,3D 游戏需要有坐标系的转换,重力,反弹,角度等计算,需要数学知识:嵌入式底层,位移,与、或、非等运算,二进制,十六进制,八进制和十进制的转化和计算,需要数学知识;高科技或研究领域,比如航空信息工程,那数学要求很高。但这些编程领域,还是离不开英语。
一般的编程,你说 Web 编程吧,如果是前端,一般不需要什么数学知识吧;做 Android 应用开发,也不一定需要数学好。
不过,说到底,如果你英语好,数学也好,那自然对编程大有益处。
那么,如何学好英语呢?
首先,兴趣是最好的老师。
如果你不觉得学英语是一件苦差事,反而饶有趣味,那么你的进步会很快。
我就是这样,学习外语对于我来说是很有意思的事。
我敢说自己是程序员里英语很好的,说英语的人里编程很好的。
除了英语还会法语,一些西班牙语,和 ... 中文(哇,竟然会中文,好腻害诶...)。
我业余也在给全球下载量很多的App做中英翻译团队志愿者,已经2年多了。
所以你担什么心呢?大可放心来找我。小编久居法国(从 2009 年 8 月 25 日起),现在每天工作都要接触英语和法语。英语只可能进步,不可能退步~ 有什么学习英语的问题,可以来找我哦。
如果你对英语兴趣不大,那可以用下面的几个方法:
1. 语法是主干
不少人学外语,总觉得应该要学一些常用语,和老外打成一片,口语是很好啊,单词量也有。但是假如知其然,不知其所以然的话,你是走不远的。
学语法,就是「知其所以然」。
要真的学好一门外语,语法太关键了。语法是铜筋铁骨,打扎实了,其他的单词,什么的,慢慢装饰不急。
以前小编的初中课外英语老师就经常强调:英语要打扎实语法。所以小编对语法一直不敢怠慢,后来发现,学其他外语也特别快。只要先从语法入门,其他都水到渠成。
2. 看到背后的益处
也许你会说:「什么?学英语还有什么益处?除了让我不开心之外。」
是的,学英语当然大有益处。学外语,其实是学其背后的文化。一门语言,代表了说这门语言的国家人群的生活习惯,思维方式,文化历史,等等。
如果把学英语想成能够接触英语文化,学习其历史背景,人文艺术,高新科技的大好机会,那你学习就有了新的目标和动力了。
什么?你还是没有动力?你,你给我出去~ :P
3. 学腔调
学一门语言,其实很关键的一点是学腔调。什么是学腔调呢?就是模仿,类似「鹦鹉学舌」。
你应该听那些纯正的外语者是怎么发音的,他们说话用的是什么腔调,你就跟着学,模仿就好了。他们怎么待人接物,你也怎么做;他们怎么用这门语言,你也怎么用。
因为语言不是干巴巴的文曲星的发音,每种语言都有其特殊的腔调。这一点,说英国腔英语的人肯定大有体会。
4. 不死背单词
不少朋友学英语,拉起来就猛背单词,个人觉得不是太有效。诚然,单词对于语言来说很关键。假如没有词汇量,你语法再厉害,也是张口的「聋哑」人,不是吗?听也听不懂,说也说不出来。
但是单词怎么才能记得牢,个人觉得用情景记忆法最佳:比如多和老外聊天,他们提到或纠正你的单词,你会一直记得,基本都不会忘了,因为你把这个单词和当时的情景联系在一起了;看文章看电影记单词,也是不错的方法,这样才能活记,也是利用情景记忆法。
5. 勇敢说出来
「疯狂英语」等概念其实是有其道理的。中国人一般都讲求低调做人,要谦虚不张扬,隐忍不狂放,因为「枪打出头鸟」。
但是很多外国的英语老师都会鼓励我们不要怕丢面子,就要大声说出来。毕竟肚子里再有墨水,不说就只能黑在肚子里。
6. 看电影和唱歌
看电影和学唱英语歌曲是很好提高英语的技巧,但是这个是在掌握好语法的情况下,不然跟不学语法只和老外聊天没什么区别。
看英语电影时,可以用遮挡物遮住字幕部分,看几遍电影,因为看中文字幕你是很难提高的。
学英语歌呢,可以先自己把歌曲用中文翻译出来,搞清楚意思了,再去背。
7. 多看书
不用说了,多看一些好书吧。
加油,让英语成为你编程学习的一大助力吧!
PS:我的微信是 frogoscar
我是 谢恩铭,在巴黎奋斗的软件工程师。
我创建了程序员联盟的 知识星球,欢迎加入。
热爱生活,喜欢游泳,略懂烹饪。
人生格言:「向着标杆直跑」
网友评论
真正数学牛逼的人,拥有极强的逻辑思考能力
能写出来很牛逼的算法
像当初我们拍流程简直不知道怎么搞了,我们项目经理说,这不就是个统计学范畴嘛!我们当时就囧了,统计学怎么用?他拿个铅笔几下就给我们搞定了。我当时就肃然起敬了。
之后我和朋友参加过各种数学题目的解析,编程来解答。这些思考方式是很关键的。
嗯,不知道你有没有写过游戏。特别中文化的游戏。属性,什么灵气、资质。你打算用英文怎么表示?