为什么大学要学一堆纸上谈兵的课程？
讲一下自己的惨痛经历！三个方面： 1、数学？不存在的，老子只学专业课！ 2、数学？不学不行，老子还得去补一下！ 3、数学？不仅仅要学，还要深入学！ 1、数学？不存在的，老子只学专业课！ 学习之初，很多人都会有这样的困惑。包括我在内，我想学计算机专业，老师你就直接单枪直入，教我专业性的东西啊，光教一些跟编程八竿子打不着的数学干啥？！ 这样导致的一个结果就是，每次基础学科考试总是应付了事，抱着能过能及格的心态一路走来，不遇坎坷就一直坐着自由落体的运动！ 2、数学？不学不行，老子还得去补一下！  我学习数据结构和算法时，总感觉自己用起来没有得心应手的感觉，做一些算法优化的时候，基本上也是只能现搬书里的算法，遇到不太一样的问题，就不知道怎么解决了。就比如那些什么排序，快速排序堆排序希尔排序。。。只能记住他们的时间复杂度和空间复杂度和写法，却从来不知道这些算法是怎么设计出来的，这些算法为什么是正确。  于是开始不断地翻看算法相关的书籍，原因正是数学基础不好，因为没有从根基上了解其原理，所以学习起来总感觉自己在中间飘着。 其实无论我们以后是学习哪一门编程语言，或者说要学习大数据、人工智能等，数学是一个很重要的学科。 3、数学？不仅仅要学，还要深入学！ 计算机归根到底在cpu执行的都是指令操作，每个指令最终都是靠0101二进制来存储和解析，这就是数学里面最基本的东西。所以说，计算机和数学密不可分。 举例说明： 归纳证明法和递归编程的关系非常紧密，你不理解其中一个，就不可能真正理解另外一个。你可能不知道术语基本情况和归纳假设，但是如果你不能理解这些概念，你就没有办法写 出正确的递归程序。所以，即使是在与数学无关的领域内，不理解这些数学概念的程序员也会遇到很多困难。 优化方法取决于函数的形式，从目前看，最优化方法通常是基于微分、导数的方法，例如梯度下降、爬山法、最小二乘法、共轭分布法等。还有线性代数中的矩阵、转置、秩 分块矩阵、向量、正交矩阵、向量空间、特征值与特征向量等在数据分析中都有很大的关系。  综上：如果想要在IT行业技术上有突破深入发展，还是要深入学习数学的。不能说你为了学编程就是写点应用逻辑，这样多没意思。什么编译器，操作系统，浏览器，数据库，游戏引擎，大学期间都可以自己试试造轮子写一写，学习过程中不要老是用别人的API，老是用别人写的库，要度尝试自己写内核，虽然一开始可能会很烂，但毕竟能让自己学到东西不是？  既然学习已经这么累，不如再多点崩溃啊！ 程序员的扎心时刻！推荐阅读： 