离散数学对程序员来说非常重要,还有组合数学、线性代数、概率论、数论等等,即使你将来不做研究,这些基础知识也能极大地提高你的水平。计算机科学对离散数学的要求很高,建议你先学习前面提到的这些课程,然后学习计算机算法和数据结构,再配合到网上的在线题库做题,过程很艰辛,但是对你的帮助会很大。
推荐书目:
《具体数学》(先学完前面的数学课程,在水平有一定进步以后再看)
《算法导论》(应该人手一本的好书)
简单来说,学数学的目的,一方面是活跃你的思维;另一方面是为了深入学习算法打基础,设想一下,同样的问题,普通人的程序要几十分钟甚至几小时几天才能解决出来,甚至根本无法解决,而你精心设计的程序却能在1秒内解决出来,这就是数学的魅力、算法的魅力。
其实,一切取决于你是否想做一个高级程序员。如果你做体力活(其实一般编程别人都认为是体力活),那你可以不学,因为你用不到,但是,你要是做技术上的创新,做个很强的程序员,没有数学的支持,很难。
你既然学习了C,c++,你也知道算法的重要性,同样一个问题,我用13行程序解决了,我的同学居然用了33行,因为他不懂的用数学。你要达到什么高等,取决于你的数学修养。当然,要做一个普通的程序员就不用学习了。要挑战自己,做个好的,优秀的,学习数学吧!
其实编程可以看做是数学的模式化,数学培养的是分析问题解决问题的能力,在编程初级来讲,数学是体现不了多大的作用,因为初级的编程只要求对于法和简单算法的掌握,用不到太高深的东西,但在数据结构,算法中,数学就尤为重要了,有时候需要用数学来证明一些类似于最短路,最短时间,空间复杂度,时间复杂度的问题,还有通过数学计算出最优的解法,初级编程很那理解,但当你要将一段功能很强大的程序写到一个只有几十K甚至更小的空间里,你就会发现用数学推导的作用了。举个简单的例子,关于计算机软件方面的考研,名师们一般都喜欢数学更好一些的学生,哪怕专业课稍差一些欢迎分享,转载请注明来源:内存溢出
评论列表(0条)