关于数学和软件设计
喜欢这里的氛围,所以对于一些想法我也很想提出来,让大家来分享一下。
经常看见bang老师和大家热烈的讨论数学中的算法和软件的思想,那我也谈谈这方面的论点。算法其实是数学的一部分,也是比较特定的,就像软件开发中的硬编码,即这段代码是死的,没有很大的灵活性重用性,人们之所以学数学也不是为了记几个有用的公式和算法,不然我们中的大部分人学到初三就行了。之所以学数学,有一个原因我想大家都知道那就是可以提高逻辑能力,没有一定逻辑能力你的推导就会是处处矛盾,你的程序也会错误百出。
其实学数学还有另为一个作用,也是我想说的,那就是让你有抽象的能力,学会站在一定的高度去看待问题。为什么这么说呢,纵观数学历史,起初只有几串数字而已,接着出现了数学的变量(不是指软件语言的变量),这是一个很了不起的发现,变量代表了所有的数。接着是符号的产生,这更是伟大的变革,符号的产生可以说是极大的解放了我们人类的思维,因为符号可以代表一切事物。然后你可以利用符号对一切事物建模,进行演算并得出合理的解决方案。所以说学了数学可以让你有抽象的能力,而抽象正是软件设计中强有力的工具,没有抽象也就没有设计模式,更加没有程序语言的函数,当然也不会有庞大的软件。我想每一个软件人员还是得懂点数学知识的。而bang老师如此反对算法的重要性以及区分数学和软件设计,我想是国内的环境导致了对算法和数学的误解吧。
数学也是一种大道至简,没有一门学科或者应用可以如此的简洁。
[该贴被admin于2010-08-09 16:32修改过]