- 冒号空间 - https://blog.zhenghui.org -

Reply To: 菜鸟读《冒号课堂》后的感触,望郑晖老师解惑

你提到的问题十分典型,我非常理解你的心情,同时也非常乐意分享一些个人的看法。


虽然你在言语之中流露出不少负面的情绪,但我看到的却是正面的希望。首先,你对软件技术很感兴趣,而兴趣是学习和工作的最大动力。一般说来,我也没兴趣回答那些对编程不感兴趣者的有关编程的问题。一方面,我会劝他们改行,否则彼此都痛苦;另一方面,我建议的方法通常也不适合他们。其次,你很清楚地意识到自己在哪些方面不足,这是一切进步的基础。许多程序员意识不到自己的无知,甚至自以为足够有知,那又如何能进步呢?最后,你不指望任何捷径,愿意通过踏踏实实的学习来弥补不足。在浮躁之风盛行的当下,这点也是难能可贵的。


关于数学基础,窃以为并非什么太大的问题。几乎每个得知我数学背景的人都会对我说:哦,学数学的人来学计算机自然容易啦。事实上,这种观点虽然极为普遍,但也极为肤浅。本人从事数学14年(从本科算起)、从事计算机12年(与前者有部分重合),在这一点上还是比较有发言权的。事先说明,以下提到的数学不包括高中数学。其实大多数从事软件开发的人员用不到太多的数学知识,他们只需要正常的逻辑思维能力和抽象思维能力。整天拿数学说事,要么是无知,要么是找借口,要么是装高深。当然,我不否认一些高级算法、计算机理论以及人工智能等领域可能涉及到高深的数学知识(其实也只是图论、组合数学、数论、概率论、计算几何、抽象代数、数学逻辑等中的一小部分),但那毕竟只是少数。我也不否认自己的数学背景有助于对编程的理解,但投入产出比太低,不值得作为经验来推广。不过若想成为一位计算机科学家,那就另作别论了——这时数学懂得再多也会嫌少的。


倒是英语我希望你更重视些。我在《冒号课堂》(http://blog.zhenghui.org/2009/09/10/colon-class-3_3/)中专门提过阅读原著的必要性,而且你也意识到译著的质量问题。建议不必特地去学习英语(你本来就会了,不是吗?),只要坚持读经典原著即可。其实,计算机方面的英文算是很容易的了,关键是克服自己的惯性和惰性。开始可能不习惯,看多了就习惯了。在此提醒一点,在阅读时请有意识地培养自己对英语的语感,就像编程时要有意识地培养自己对编程语言的语感一样。


总之,对于程序员来说,数学没有人们认为的那么重要,英语没有人们认为的那么不重要。

(未完待续)


Share