分享

很多人问:程序员的数学功底要达到什么程度,算是一名好的程序员

 hyxz_ljf 2018-05-03

《程序员的数学》是2012年由人民邮电出书社出书的图书,作者是结城浩。本书面向程序员介绍了编程中常用的数学知识,借以培育初级程序员的数学思想。读者无需通晓编程,也无需通晓数学,只需具有四则运算和乘方等根底知识,就能够阅览本书。

编程的根底是计算机科学,而计算机科学的根底是数学。因而,学习数学有助于稳固编程的根底,写出更强健的程序。

数学并不是计算机科学的根底

许多人都盲目的认为,计算机科学是数学的一个分支,数学是计算机科学的根底,数学是愈加博学多才的科学。这些人认为只需学会了数学,编程的事情全都不在话下,可是现实却并非如此。

现实其实是这样的:

计算机科学其实底子不是数学,它只不过借用了十分少,十分根底的数学,比高中数学还要简单一点。所谓“高等数学”,在计算机科学里边根本用不上。

计算机是比数学愈加根底的工具,就像纸和笔相同。计算机能够用来处理数学的问题,也能够用来处理不是数学的问题,比方工程的问题,艺术的问题,经济的问题,社会的问题等等。

计算机科学是彻底独立的学科。学习了数学和物理,并不能替代对计算机科学的学习。你必须针对计算机科学进行学习,才有可能成为好的程序员。

数学家所用的言语,比起常见的程序言语(比方C++,Java)来说,其实是十分落后而糟糕的规划。所谓“数学的美感”,其实大部分是夜郎自大。

99%的数学家都写不出像样的代码。

数学是反常糟糕的言语

这并不是骇人听闻。假如你深入研究过程序言语的理论,就会发现其实数学家们运用的那些符号,只不过是一种十分糟糕的程序言语。数学的理论许多是有用的,可是数学家门用于描述这些理论所用的言语,却是纷繁复杂,缺少一致性,可组合性(composability),简单性,可用性。这也就是为什么大部分人看到数学就头痛。这不是他们不行聪明,而是数学言语的“规划”有问题。人们学习数学的时分,其实只要少部分时刻在考虑它的精华,而大部分时刻是在折腾它的语法。

所以我很是同意不知道是谁说的,假如你只想当个good programmer,那么数学不重要;可是假如你想当个great programmer,那么数学很重要。在你手里只要锤子的时分,你看什么东西都会是个钉子,想想你假如没有学过算法和数据结构,可能你的大部分程序需求自己写排序的话,都会是傻傻地冒泡吧,反正关于大部分程序来说,在现在这么快的PC下,这点时刻不同,大部分情况下,也就是让你等程序履行测验的时分,多个倒杯水的时刻。可是许多新鲜,好玩,有应战的问题,许多数学的概念没有的话,恐怕不是多等个倒水的时刻了。而假如你过了这个门槛,你又会发现,一个崭新的国际,又到了你的面前。

回过头来,我说数学重要的话,那么重要的是哪些呢?我们常说的通常是离散数学,不过最近比较抢手的机器学习这个方向,我现在看到的相关资料都很多依赖于线性代数和概率论,以及一点点微积分。所以,假如你和我相同,希望做点有追求的技术工作的话,开端花点时刻学习数学吧。其实万事开头难,或许你和我相同,对着一堆公式符号,感到头晕眼花,可是假如真得按下心来,看上一个小时,这么坚持个一周,其实就会发现,这没啥难的,就当学门新的编程言语得了。

总归,要想成为一名有潜力有发展前途的程序员,或许想成为程序员中的佼佼者,你一定要培育杰出的数学涵养。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多