“如果,你只想当个普通程序员,数学对你来说并不重要;但你要想做顶级程序员,数学对你来说就相当重要了。”这是硅谷技术交流 Meetup 上的一个分享,而在听到这番话之前,我很少思考数学和计算机编程之间的关系。
这二者之间的关系,到底有多紧密呢?我们可以从 Google 的一道工程师面试题谈起。
2004 年 7 月,硅谷的交通动脉 101 公路上突然出现了一块巨大的广告牌,上面是一道数学题: {e 的连续数字中最先出现的 10 位质数}.com。如果你不知道 e 是什么,现在可以重新了解一下,e 是数学常数,是自然对数的底数,无限不循环小数。这道题的意思就是找到 e 中最先出现的 10 位质数,得出一个网址。
进入这个网址,你会看到 Google 为你出的第二道数学题。成功解锁这两步,Google 会告诉你,我们或许是“志同道合”的人,你可以将简历发到这个邮箱,我们一起来做点改变世界的事情。
可以看出,Google 是一个对工程师的数学素养非常重视的公司。
其实,数学对大部分程序员来说,都是“最熟悉的陌生人”。我们从小就开始学习数学,它还是中高考和研究生考试的必考科目,这么说来,那些烂熟于心的数学定理和公式,陪伴我们至少 10 年了。
但很多程序员开始编程后,就会把数学抛之脑后。毕竟,作为一个基础学科,它可没有操作系统、数据结构和计算机网络这类课程看起来“实用”。大学时,为了缩在图书馆看编程书,我还翘过数学课,那会儿我偏执地认为,数学这东西不过是“应试教育”的一部分,而我只喜欢计算机这种实操类课程。
参加工作后,我写了这么多年代码,其中一个重要体会就是:对数学的掌握程度,会直接决定一个程序员的发展潜力。往大了说,数学是一种思维模式,考验的是归纳、总结和抽象的能力,放在程序员的世界中,就是 解决问题的能力。
往小了说,无论是 数据结构与算法,还是程序设计,其底层原理和思路都源自数学。数学不行,理解幂等原理都比别人吃力。所以,很多大公司在招人时,都会 优先考虑数学专业的毕业生。因为,数学基础好,编程就更容易上手,越往高处走,数学的功力在工作中就会越发明显地显现。
所以我经常说,如果编程语言是血肉,数学的思想和知识就是灵魂。在大数据和智能化的时代,学好数学更是门槛本身。
自己是一名五年的前端程序员
如果你依然在编程的世界里迷茫,不知道自己的未来规划,可以加入web前端学习交流q=u=n:731771211
里面可以与大神一起交流并走出迷茫。小白可进群免费领取学习资料,看看前辈们是如何在编程的世界里傲然前行!群里不停更新最新的教程和学习方法(进群送web前端系统学习路线,详细的前端项目实战教学视频),有想学习web前端的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入
点击:加入
原文地址:http://blog.51cto.com/14138686/2341324