作为程序员,你在编程时吃了哪些数学的亏?

“如果,你只想当个普通程序员,数学对你来说并不重要;但你要想做顶级程序员,数学对你来说就相当重要了。”这是几年前我在硅谷技术交流 Meetup 上听到的一个分享,而在听到这番话之前,我很少思考数学和计算机编程之间的关系。

这二者之间的关系,到底有多紧密呢?我们可以从 Google 的一道工程师面试题谈起。

2004 年 7 月,硅谷的交通动脉 101 公路上突然出现了一块巨大的广告牌,上面是一道数学题: {e 的连续数字中最先出现的 10 位质数}.com。如果你不知道 e 是什么,现在可以重新了解一下,e 是数学常数,是自然对数的底数,无限不循环小数。这道题的意思就是找到 e 中最先出现的 10 位质数,得出一个网址。

进入这个网址,你会看到 Google 为你出的第二道数学题。成功解锁这两步,Google 会告诉你,我们或许是“志同道合”的人,你可以将简历发到这个邮箱,我们一起来做点改变世界的事情。

可以看出,Google 是一个对工程师的数学素养非常重视的公司。

其实,数学对大部分程序员来说,都是“最熟悉的陌生人”。我们从小就开始学习数学,它还是中高考和研究生考试的必考科目,这么说来,那些烂熟于心的数学定理和公式,陪伴我们至少 10 年了。

但很多程序员开始编程之后,就会把数学抛之脑后。毕竟,作为一个基础学科,它可没有操作系统、数据结构和计算机网络这类课程看起来“实用”。大学时,为了缩在图书馆看编程书,我还翘过数学课,那会儿我偏执地认为,数学这东西不过是“应试教育”的一部分,而我只喜欢计算机这种实操类课程。

硕士期间,我开始接触机器学习,猛然发现:机器学习表面上是“写程序”,但剥去外壳,本质上还是研究数学。从那时起,我对数学的认知逐渐客观和理性了。

参加工作后,我写了这么多年代码,其中一个重要体会就是:对数学的掌握程度,会直接决定一个程序员的发展潜力。往大了说,数学是一种思维模式,考验的是归纳、总结和抽象的能力,放在程序员的世界中,就是解决问题的能力。

往小了说,无论是数据结构与算法,还是程序设计,其底层原理和思路都源自数学。数学不行,理解幂等原理都比别人吃力。所以,很多大公司在招人时,都会优先考虑数学专业的毕业生。因为,数学基础好,编程就更容易上手,越往高处走,数学的功力在工作中就会越发明显地显现。

所以我经常说,如果编程语言是血肉,数学的思想和知识就是灵魂。在大数据和智能化的时代,学好数学更是门槛本身。没有数学基础,机器学习、深度学习中涉及的数学公式你都看不懂,更不要说调教模型和训练算法了。

所以,我在极客时间开设了一门《程序员的数学基础课》,想和你重点聊聊数学那些事儿。我知道,数学知识博大精深,所以在撰写专栏之初,我就划分好了内容的边界,用一句话形容——“只做程序员需要的数学知识”。

最后,如果有想一起学习web前端,HTML5及JavaScript的可以来一下我的前端群733581373,好友都会在里面交流,分享一些学习的方法和需要注意的小细节,每天也会准时的讲一些前端的炫酷特效,及前端直播课程学习

如果想看到更加系统的文章和学习方法经验可以关注的微信号:‘web前端技术圈’或者‘webxh6’关注后回复‘2018’可以领取一套完整的学习视频

猜你喜欢

转载自blog.csdn.net/qq_40433465/article/details/84849286