我的C++学习之路

很多人,包括当年我自己,在学习C++时,产生的挫折和弯路,相当程度上,来源于中国教育的弊端。

看中国学生学习C++,就是参观中国教育弊端的展览。

看书多,自己编程少

中国教育,从小学开始,一直到大学,始终是灌输式,而不是引导式,启发式。老师以把知识“讲明白”为自豪,学生们因听懂老师讲课而满足。

学生把大部分凝聚的精力,浪费在毫无用处的地方。学习了大量除了考试,一辈都不会用到的东西。例如,用五条辅助线连接某个图形、50个字的复杂无比的修改病句、物理学家都得解半天的题目、修改连美国人都认为是正确的英语句子。而实践和动手的很少。

而计算机语言,是“试”出来的,而不是“看”出来的。

所以,第一条,学习C++第一原则:先编程,后看书!

侯俊杰(侯捷)

有个中国人叫侯捷,在台湾。我很敬佩他,因为他写了一本书,是关于学习Visual C++的。

这本书,当时,得到了一些中国学生的追捧,原因是,他写的很“透彻”。

把一件事情彻底弄明白,才敢干,这是华人的通病。

当年,我看了几十本关于C++和Visual C++的书,像什么“技术内幕”了,“宝典”之类。但自己上机编程的时间不多。

当时我也有电脑,我当时Visual Basic等已经很熟练了。

如果我不看那些书,而是自己编程序(哪怕自己对照着书,一步来)

如果我不看那些书,而是自己编程序(哪怕自己对照着书,一步一不来),那么,会好得多。

想起我当年,经常抱住一本Visual C++的书,看到凌晨两、三点,却一无所获。实在是痛苦和悲哀。

我可以容忍更大的痛苦,但当痛苦之后,却无所收获,痛苦就成悲哀了。

但我还是能忍。

忍耐

说到忍耐,就要谈谈程序语言了。

程序语言的发展过程,本来就是一个速成的东西。本身缺陷很多,当然,大量优秀人士的加入,缺陷不断在弥补。

程序语言的发展历程不像数学,数学家有时间。牛顿、高斯、爱因思坦、陈景润等等,可以用几个月,几年,几十年去想某一个问题。因为大家给他们时间。

但程序语言发明者(推广者,如美国微软公司)却没有足够的时间。

因为有商业竞争!

所以,程序员虽然总是能从程序语言中发现数学逻辑的严密,但更多的是应急!

能解决实际问题的程序,就是好程序!

我当时学习Visual C++时,没有意识到这一点,侯俊杰(侯捷)也没有意识到这一点。

所以,我才回痛苦到泪水都没法流出来,侯俊杰(侯捷)会因为写了那么厚的一本书而自豪。

所以,不管你看了多少书,学了多少东西,在编程的过程中,你必须要“憋”。

一段程序跑不通,你就要不断的修改,让它能运行!

要“憋”多久?有时要“憋”几分钟,有时要几个小时,有时要“憋”好几天。

你经常会发现,一个程序因为一个很小的语法错误(甚至有时是拼写错误),导致查错查了好多天。

灵活变通

从小学开始,我们面对的问题,都有明确的答案。

例如,考试时,有单选题。从A、B、C、D里选一个正确的。

然而,现实生活中,有几个问题是有明确答案的?很少!

虽然很多人,能引用好多“名人”的话;虽然,他对每个问题都似乎有“独特”的观点,但这些观点很多都是别人的。

所以,要想学好编程,就要灵活变通。往东想,往西想,往上想,往里想。

前面说过,程序语言中也有数学逻辑,但更多的是应急!

程序语言是为解决实际问题而产生的,而不像数学,有“唯美”和“完美”的幽灵在里面。

所以,你如果始终用“严密”、“严谨”、“严格”的逻辑思维学编程,你就不会思考了。

你编的程序,只要能跑得通,就是好程序!

其他的东西你都不要理会!

看程序

看别人的代码,是个好方法。

微软在Visual C++上,犯了一个致命的错误。我认为,就是提供的案例少,MSDN太乱!

如果Visual C++的编程案例足够多,MSDN足够好。那么,会有更多的豪杰为微软拼杀。

Google等公司的饭就不会像现在这么好吃了。

我想,直到现在,微软也未必能意识到这一点。

因为微软还是怕别人知道自己的东西太多,怕别人超越自己。

(0)

相关推荐