为计算机专业的本科生。个人认为,对非理论向(P=NP之类,combinatorics压根就是数学)的计算机专业本身而言,《具体数学》+一些图论就很足够了,足以支撑本科基础阶段的知识体系(而且也不需要深究,比如图论不需要像数学系那样会做证明)。我是指,用来理解计算机架构,缓存优化,算法,数据结构这些基础的纯粹的计算机知识。
不少人答案中指出的:在实践中数学无处不在。其实是一种无意义的事实。这些数学都不是每个计算机专业学生必备的知识。
理由是,计算机已经深入到各个领域了,而在每个领域的应用中,自然要学会,并且懂得那个领域的知识,这些知识便包括了数学(数学本来就无处不在啊)。
先说专业外的应用,我做工程模拟,那我自然要会卷积,拉普拉斯变换;而我做社交网络分析,图论就显得更重要了。而这些与计算机本身是无关的,是与实践领域相关的。PHP程序员大概就不需要这些数学,但他们也是属于计算机专业的。
再说被分到计算机内的学科,有人说机器学习需要大量的数学。没错,机器学习(我碰巧想走这个方向)是需要大量数学,并且它也可以被认为是计算机学科的分支。但是,光应用走向的话,其实是不需要学measure theory,functional analysis之类的。退一步说,即便是机器学习的科研工作者,用这些工具的,也大都是数学出身的,爱做分析性质研究的家伙。工程师学好线代和统计就差不多了,而这类工程师,其实可以被看作是做特殊应用的。更夸张地推一步,量子计算机也算是计算机专业的一个边缘分支。难道可以因此说:学好量子力学对计算机专业很重要吗?(其实有人多例子:分子计算机,DNA计算机,计算物理学,计算神经学,计算化学,计算金融学…………)
然而,学好数学是没有坏处的。学好数学不是每个计算机专业的必须要求,但是学好数学的学生可以在更广阔的领域内大展拳脚。希望成为研究人员的话,那数学确实是要尽可能多地学。
很多和计算机挂钩的领域确实用到大量数学,尤其是研究向。但是如果各个领域的人都出来秀一把虐过自己的数学,那恐怕是会吓走不少想学计算机,但数学不是很强的人。而实际上计算机专业大部分人是用不到多少数学的。而且就业方面的信息显示,全球范围内计算机专业学生还是供应不足的。
作者:吕纯川