数学学多少为宜?
都说计算机要数学功底好,可毕竟不是数学系。请肖老师结合自己工作经历,讲讲工程中(不是纯理论)数学学多少为宜?并给大家一个务实的建议,让后来人避免钻牛角尖。谢谢肖老师

===============================


这个确实不好讲。

数学,如果从计算机软件开发的角度来理解,再多也不够,因为程序设计需要用到逻辑分析,细分思维,概率论,如果是图形应用,用的就更多了,因此,数学,尽量学好一点。

说来惭愧,当年我的高等数学就没有学好,记得里面有个“莱布尼兹定理”,我戏称为“来不及证定理”,因为不知道怎么的,我每次考试,都来不及做这道证明题,简直要昏死了。

因此,目前工作中,一直感到自己在数学方面,差了一颗米,总觉得少点什么,很多东东,由于当初没有熟记定理,公式,得现推导,很麻烦,也耽误了很多时间。

不过,当年我的强项是概率论,嘿嘿,差不多一个学期没好好上课,考试96分。大概和这门课有缘分吧。

因此,我的建议,大家如果有条件学习,又以后立志做程序研发,建议数学尽量学好一点。不要偷懒,这好比大家玩暗黑破坏神2一样,越是被动技能,后期威力越大,亚马逊就是因为被动技能多,在1.09版被视为无敌的存在,严重影响平衡性。

我理解程序设计人员的数学功力,就是这个被动技能,看似没有直接联系,但越到后期,玩得越是数学,前期基础没有打牢靠,后期会很吃力的。

不过呢,一分为二的看待,新人大学毕业,刚刚进入职场,恐怕研究纯理论的东东不太多。因此,可能会有段时间,觉得没有数学也无所谓。这是因为大家刚开始工作的时候,一般说来都在别人做好的框架下工作,很多公式,定理,别人已经写好了,大家只管用就是了,这无形中给人一种误导,就是写程序不需要数学。

不过建议大家千万别上当,最好的办法,是多研究别人框架中用到的数学知识,把它作为自己的知识储备积累下来,以后会用得到的。

嗯,说点我自己的特色吧。

我以前做游戏,用到数学的,概率,AI的智能判断,都需要数学,嗯,图形就不用说了,任何一个轨迹,一个sprite的动作,都是数学相关,做游戏,用到的数学,反而好像最多。

后来做工业控制,数学少一点了,但是要研究数字电路,真值表,梯形图什么的,时序控制时的组织,数学用得很多。

后来做Windows下的应用,多媒体语音教室,反而数学用得少,因为Windows下开发,很少自己写,都是在微软的框架里面钻来钻去,很多东东微软做好了,不需要自己实现底层,这大概是Windows程序设计的一个特点吧。

再后来做军方的一些的代码,不说了,全是数学的东东,程序的UI,控制,反而不重要。

嗯,在迈普做过一个ReportMaster,网管系统的统计报表,这个不用我说了吧?数学。

目前做的数据传输应用,分布式数据库,服务器集群,怎么说呢,数学用得也还比较多。

其实我的理解,程序的算法,数据结构,这些都应该算数学知识了。

在我的应用中,队列用的比较多,因为数据传输大量使用队列,堆栈比较少,嗯,并行系统的时序计算,我不知道算不算数学,因为都是在自己脑子里面算的。

有时候觉得程序像个大公式,当每个需求点都落实到具体的数字,每个数字都在正确的位置像正确的对象服务,程序就完成了,也没有bug了。

ok,所以现在我来问你一句,你觉得数学重不重要?