计算机专业应该掌握的数学知识
计算机专业应该掌握的数学知识
在校的计算机专业学生可能还没有体会到数学的重要性,还在忙于死记硬背各种公式应付考试。而已工作或是读研读博并且“真正在用计算机做事的人“都会知道数学的重要性,这里的“真正做事的人”,不是指那些会几种计算机语言,平时写点没什么技术含量的网页或者数据库编程做几个MIS或者WEBSITE的之类的二流程序员,那是搞计算机最低的层次,属于简单应用(当然简单应用里面不代表没有高手,这和厨师里面有特级一级二级一样),计算机作为一种工具同时又是一门科学,我这里指把计算机作为科学来研究的人。
计算机本身的工具属性决定了计算机的发展必须和具体行业或者学科结合起来,最后利用计算机完成人工手工无法完成的工作,比如超大运算量,尤其在理工科用的最多,大部分理工科都是以数学为基础的,那么计算机上处理最多的就是各种数学模型与运算,而这些都离不开各种数学知识。根据我多年的工作经验,我整理了一下计算机专业最应该具备的数学知识:
1.《高等数学》 最重要的课,无需多言
2.《概率论与数理统计》 最重要的课,语音、图像、信号、通信等方向都要用到,也是金融方向用的最多的
3.《复变函数和积分变换》 最重要的课,我就是因为大学没学这课,后来科研中遇到了很多问题,可以说掌握的越好以后越有前途
4.《线性代数》 最重要的课,大部分方向都会用到,图像、信号、密码、神经网络等
5.《数值分析》 搞计算机算法的,如果不掌握数值分析,可以说很多问题都难以解决,这是门专业基础课,工具型很强
6.《信号处理》 所有信号类的基础,数学知识的综合应用,大量滤波算法
7.《随机信号分析》 信号处理等方向
8.《离散数学》 很重要,但我本人用到的不多,是很多理论的基础
9.《小波变换》 用的很广泛,信号、生物学等方向
以上是我觉得最重要的几门课,其他的数学知识在实际中用的比较少,或者我还没研究到那个层次。这几门课我觉得至少1-5都是要好好掌握的,特别是复变函数和积分变换,可以说95%的研究领域都是要用到的。
编程语言程是每个搞理工科必须掌握的基础,是使计算机成为工具的第一步,掌握上述的数学知识是第二步,是使计算机成为真正工具的关键。我自己工作多年也体会到了数学不够带来的痛苦,好在现在网络资源丰富,可以下到很多视频课程和书,弥补一下知识欠缺。但是在找这些资料的时候,也发现很多教程都写得相当晦涩难懂(很多人出书是为了评职称),不如欧美日本的教程写得好。我也和出版社打过交道写过书,知道中国出版社对书的语言限制非常死,所以几乎没有通俗易懂的好书,打开来都是公式叠公式,这点和欧美日本差距很大,希望以后能有所改观。
今天发现日本有个漫画数学系列,其中一本叫《漫画傅里叶解析》,我没看过,看评论好像还不错,真是佩服日本人,这么复杂的理论都能用漫画说清楚。也希望有一天自己的水平能提升到足够高度,写些通俗易懂的书。