以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

软件开发要学数学吗 学软件开发需要数学好吗

在知乎,有几个关于数学的问题是人们非常关注的。其中之一就是“为什么科技互联网公司越来越重视数学?”浏览量甚至高达百万.问题

人们越来越意识到数学对程序员的重要性,比如数学是每一位程序员必备的素质.然而,任友军也发现,很多程序员并没有意识到数学的重要性,或者是意识到了数学的重要性,却不知道从哪里去弥补。

如果您在编程或学习数学时遇到以下问题:

大学数学课程靠考前刷题,学完就忘。当工作涉及数学知识时,你又要翻大学课本,简直惨不忍睹;

因为不懂数学,所以在工作中许下诺言

多“蠢事”;


数学基础差,一看机器学习相关的书籍就崩溃;


……


那么,人邮君希望你能认真地读完这篇文章,按照本文提供的方法去解决自己的问题。当然,程序员学习数学的方法也像数学的问题总有多个解一样,每个人都可以挑选自己喜欢的方式去化解,这里人邮君提供了一种包含从数学文化、到程序员的基本数学知识、再到应用场景(比如机器学习)的学习方法。


广度优先,总揽全局,体会数学之美
数学知识拓展


首先,就像著名程序员Steve Yegge 对程序员如何学数学的看法一样:


学习数学的正确方法是优先考虑广度而不是深度。你需要知道的是整个数学领域中每个概念的名称,以及它们要解决的问题。把数学作为一门文科学科来学习,不要首先关注算法和证明,只需要了解数学概念的名字,它们做什么,大致步骤,是谁发明的,什么时候发明的,它们的局限性等等。


当然,数学符号有时候是关闭你通往另一个世界的符咒。如果你看到一堆你不理解的数学符号,就把它的实现看作一个简单的原子操作,不要太深入地研究它。”


生活处处是数学,我们应该对数学有一个全面的初步认识。人邮君认为吴军博士创作的《数学之美 第三版》便可以满足我们的需求。



这本从系列博客到一本屡获大奖的畅销书《数学之美 第三版》,豆瓣评分高达9.1分,累计销售70余万册,一举拿下国家图书馆文津奖、中华优秀出版物提名奖等国家级图书大奖,可以说是拓展我们对数学认知的绝佳途径。


这本“众多机构推荐的数学学科的敲门砖,信息领域大学生的必读好书”系统阐述了信息处理领域的技术和应用背后的数学原理,将高深的数学原理讲得通俗易懂,非专业读者也能领略数学的魅力。


读者通过具体的例子学到的是思考问题的方式 —— 如何化繁为简,如何用数学去解决工程问题,如何跳出固有思维不断去思考创新......


开卷有益,通过这本书,你还可以:


发现看似毫不相干的余弦定理,却可以应用计算机准确地对各个新闻网站的内容自动分类


现如今自动下载工具网络爬虫和Google早期杀手锏网页排名技术PageRank的编写原理背后蕴藏着七桥问题创立的图论的玄机,其也成为了互联网搜索的一大利器。


明白正是借助了概率和统计,计算机如何理解人类语言这一困扰科学家数十年的时代难题才得以解决,机器翻译、语音识别的成功应用,成为我们今天现代通信的基础


一览各行业一流精英对抽象思维的极致应用以及吴军博士(和同事们)的思考过程,明白数学不再是我们一般认为的枯燥深奥的符号,而是实实在在源于生活和工作的有趣现象和延伸


可以了解大师们的平凡与卓越,理解他们取得成功的原因,感受那些真正懂得数学之美的人们所拥有的美好人生。


拓展数学知识,锻炼数学思维,懂得运用数学去处理生活和工作中各种纷繁复杂的事物,找到最优解


体会到为什么数学可以和音乐、美术一样,具有美感


……


值得称赞的是,从数字和信息的由来,到搜索引擎对信息进行处理背后的数学原理,到与搜索相关的众多领域中奇妙的数学应用,这本书都娓娓道来。吴军博士把数学背后的本质思维写得透彻、生动。不得不说,他的文字引人入胜,确实让我们体会了到数学的美!


(本书读者赞誉)


广度之后,再深度,并落实实际
补数学理论


其次,我们可以学习bothub. ai 创始人徐文浩他如何学数学的方法:


数学的整个领域是非常大的,如果你想学点什么,他建议从与工作相关的领域开始,先广度,后深度。从与工作相关的领域开始,可以让自己有机会真正运用所学的知识,也可以在日常工作中耳濡目染,这相当于经常复习。而先有广度,是让自己在心中一个有问题到解决方法的“地图”,遇到具体问题要能够匹配,容易得到积极的反馈;然后再有深度,具体去对一个特定的主题学习应用。


当你开始深入学习一个特定的问题时,最好的方法是找一门课程学习。这是因为在线课程有明确的进度,通常提供作业和测验。作业和测验让你对自己的学习有一个联系和反馈的过程。即使你在实践中没有足够的应用,过一段时间有些知识没有那么熟悉了,但是这也容易建立信心,你可以很快“恢复”,并减少“复习”的启动成本。跟随在线课程的节奏,可以有效避免“三天打渔两天晒网”的恶习,让学习有始有终。


采用一种具有程序员特色的学习方法,针对学习的内容写一点程序。拿出你正在学习的问题的解决方案,并编写一个算法来实现它。这是一种非常有效的练习方法。譬如学习线性代数,理解仿射,反复读书的效率对他来说,就不如找来 Coding The Matrix,通过写程序,让学习、理解变得更深入。



“从工作相关领域开始”、“特定主题学习”、“课程学习”、“边学习边写程序”?这些徐文浩学习的要点不正是LinkedIn资深数据科学家黄申博士所著《程序员的数学基础课 从理论到Python实践》一书所涵盖的吗?


这本书紧贴计算机领域,从程序员的需求出发,精心挑选了程序员真正用得上的数学知识,通过生动的案例来解读知识中的难点,使程序员更容易对实际问题进行数学建模,进而构建出更优化的算法和代码。除了理论知识的阐述,本书还通过Python语言,分享了通过大量实践积累下来的宝贵经验和编码,使读者学有所用。


本书的内容从概念到应用,再到本质,层层深入,不但注重培养读者养成良好的数学思维,而且努力使读者的编程技术实现进阶,非常适合希望从本质上提升编程质量的中级程序员阅读和学习。


在本书作者黄申博士开设的《程序员的数学基础课》课程中,有不少学员也倾述了自己因为之前学数学没有应用场景代入,导致其在知识的殿堂中两手空空,因此他在选择了理论与实践结合的《程序员的数学基础课》。


“我们不能为了数学而学数学,
要和具体的应用结合在一起”


最后,我们应该像《趣谈网络协议》专栏作者刘超所说:


“程序员是否需要学好数学?我在学数学分析、概率论和线性代数的时候,也没想过数学和写程序有啥关系,但随着研究的开源软件越来越多,我发现很多技术深入下去,本质就是数学。


程序员应该怎么学数学呢?我不建议你将大学的相关书籍拿出来啃一遍,耗费大量时间不说,关键是跟实际应用无法结合,结果往往是:该看的忽略了,不该看的费了半天劲还用不上,等过一阵字就又忘了。


我们在了解新技术时,通常会分成三个阶段:


第一阶段是,怎么使用;


第二阶段是,如何实现,原理是什么;


第三阶段是,为什么这样实现。


学数学也是这样,也有这样三个阶段,先用起来,了解原理,再知道为什么这么做。”


用一句话总结就是,我们不能为了数学而学数学要和具体的应用结合在一起。


众所周知,数学是很多程序员学习机器学习、深度学习、强化学习感到困难的最主要原因之一, 只有掌握了所需的数学知识,才能理解机器学习算法的原理。



对此,人邮君认为,你可以通过《机器学习的数学》这本书吃透机器学习数学知识体系,彻底解决机器学习中的数学问题。这本书清晰地讲述了这些数学知识的原理,精准地覆盖了所需的数学知识,是一本帮助这一领域读者奠定基础的力作。




这本书的目标是帮助读者全面、系统地学习机器学习所必须的数学知识。全书由8章组成,力求精准、最小地覆盖机器学习的数学知识。包括微积分,线性代数与矩阵论,最优化方法,概率论,信息论,随机过程,以及图论。


毫不夸张地说,只需把本书系统地学习一遍, 即可满足几乎绝大部分读者在机器学习、深度学习、强化学习以及它们的各个应用方向做学术、产品研发的需求




“程序员和司机一样,总是自我安慰说等到需要的时候再去学新技能也来得及。但是在内心深处他们明白,其实当需求出现的时候就已经太晚了。因为显示情况是这样子的,旱鸭子会和水保持距离,司机会绕开泥泞的路段,而程序员会躲在舒服区里,搭建围栏把自己保护起来,然后祈祷世界和平。”




——著名程序员Steve Yegge




学习这件事是不能停止的,纵使你有时会有些懈怠或者抗拒,但是仍需要积极投入,武装自己。就让《数学之美 第三版》、《程序员的数学基础课 从理论到Python实践》、《机器学习的数学》这“程序员的数学修炼三剑客”,勇闯IT江湖,吹响胜利的号角吧!




文章编辑:罗梦婷 | 审校:刘鑫
参考来源:
《数学之美 第三版》推荐词、前言
《 程序员的数学基础课 从理论到Python实践》推荐词、前言
《机器学习的数学》 推荐词、前言