优秀的程序员需要擅长数学吗?

天有很多年轻人或经验不足的程序员在 论坛发帖、在 Stack
Exchange
网站问:「为了成为优秀的程序员,我需要擅长数学吗?」,在我还年轻的时候,我也问自己同样的问题。最近,我醉醺醺地、也是出于无聊,竟然 Google
了同样问题,差不多有 10 多年没有思考过这个问题了。在我浏览相关话题时,出现的答案模式被归结为以下三个主要类别:

  • 需要
  • 不需要
  • 看情况

貌似「需要」和「不需要」经常带有个人主观偏见,反而显得有点儿草率的反应综合征。因此我把精力更多地放在「看情况」的选项上,以确保「需要」被证
明为一种更加普通的观点。我决定就这个问题写点儿东西,考虑到这一点,我的醉醺醺的念头开始兴奋起来,这将促使我不会再忽视它。为了成为一名优秀的程序

员,一个人是否需要擅长数学的问题,可以从哲学和技术两个方面解答。我打算坚持哲学层面。意识到它为什么对我重要,是因为一个更年轻的我,为了找到基于不
成熟和懒惰而萌生的「不需要」选项,将要投入更多的时间。

首先,我们必须尝试建立擅长数学的资格。一个人可以在既定数学原理或建模方程上,明白全局概念以适应情况,而另外一个人或许在数学的分析部分,比如

长于计算、以及操作表达式和方程。在我看来,这两种情况下,二者的平均数学能力都不错。然而,在上面提到的两个特征上有着高度竞争力的一个人,可能成为被

视作「擅长」数学的最佳候选人(记得把凤毛麟角的约翰·冯·诺伊曼归入精通数学的类别)。就我目前在大学数学课上观察到的,那些真正擅长数学的人们不属于
大多数。这使得答案更加复杂,「看情况」选项的有效性得到了增强。

在「Hello World」和 C++ 的名字到处乱放、而不明白其所以然时,成为一名程序员的阶段通常从掌握基础的教程开始,例子通常包含了数学。设想一下,打算编程的某个人,将很可能自然而然地深究问题,开始怀疑数学在编程中能否发挥切实作用。

坐下来为了编程而编程,除了学习既定编程语言的语法和机制,不会掺杂太多目的。最终,编程是要解决问题,并在数字王国里创新。通过为计算机编程,你

想解决或创新什么?如果你想编写网页或自动化任务的脚本,数学不会起到较大作用。然而,如果你对图形编程、开发业务和科学方面的应用有兴趣,那么数学在开
发周期里将发挥很大作用。

一旦你在特定领域有了客观目标,问题就更多地变成了学习与该领域相关的数学。有了必需的数学,以及数学思维的强大基础,就可以产出伟大的软件。因此

它真正取决于你想用编程完成什么任务。不管怎样,上面的说法不是要否定学习数学。在学习编程中,我已经注意到了一个地方,问自己是否应该学习新东西,是极
端错误的。因为软件开发根植于新技术的持续学习。

一个人为了成为优秀的程序员是否需要擅长数学,对于这个问题,我们现在考虑它的一个选项「需要」。对于不擅长的人而言,我建议他们看看数字计算机的

历史、以及那些推动机器革命的幕后人。数字计算和编程根植于数学。学习数学有助于提高问题解决的技巧和分析思维。是的,如果你想解决需要数学的、各种领域
的复杂问题,那么擅长数学对于优秀程序员而言,是不可或缺的。我尽量从不设限,当困难出现时,就勇往直前吧。

来源:51CTO

时间: 2025-01-20 16:27:34

优秀的程序员需要擅长数学吗?的相关文章

想成为优秀的程序员这些码德不能缺

我把这些看成是作为一个程序员的基本素质,多数是编码之外的事情: ●代码每天备份:(预防意外导致的任何损失) ●上传代码时写清楚log信息:(为维护这个模块的人着想,有可能是你自己) ●提供接口时不要把问题抛给使用接口的人,升级或者变更接口时不要删掉原来的接口:(为使用你接口的同事着想) ●变量命名要见名知意:(起码不能误导别人) ●在工程中新建一个doc文件夹将项目相关的文档放在该目录下,方便后面维护的人员理解项目和代码:(为维护这个模块的人着想,有可能是你自己) ●签署bug或者转办bug时写

什么原因成就了一位优秀的程序员?

这些年我曾和很多程序员一起工作,他们之中的一些人非常厉害,而另一些人显得平庸.不久前因为和一些技术非常熟练的程序员工作感觉很愉快,我花了一些时间在考虑我佩服他们什么呢?什么原因让优秀的程序员那么优秀,糟糕的程序员那么糟糕?简而言之,什么原因成就了一位优秀的程序员呢? 根据我的经验,成为一个优秀程序员同年龄,教育程度,还有和你赚多少钱没有任何关系.关键在于你的做法,更深入地说,就是你的想法.我注意到我所钦佩的程序员都有一些相似习惯.不是他们所选语言的知识,也不是对数据结构和算法的深入理解,甚至不是

优秀的程序员该如何更上一层楼

关于我们这个行业,"是什么品质使得优秀的程序员区别于其他程序员?"是最难回 答的问题之一.最近我阅读了 Eran Galperin 的<What Makes a good programmer>,很有感触,于是想和大家分享一下我认为团队中每个人都需要具备的基本技能和特质. 1. 适应性和灵活性 很多开发团队都在喊我们需要灵活的开发人员--尤其是在软件开发初期这类人才更为重要.如果你平时是搞 UI 编程的,那么我们希望你能深入到数据持久层.我们甚至可能还会要求你去做一些测试.

10个习惯助你成为一名优秀的程序员

当谈到编程时,很多人应该都有听过10x程序员的说法. 据说一个10x程序员的效率大约是其他程序员的10倍. 这是一个有争议的话题,无论你选择相信10x程序员,还是认为这十分可笑,下面的10个习惯可以在一定程度上助你成为一名势不可挡的优秀程序员. 1.积极使用搜索工具 作为开发人员,你需要了解如何利用搜索解惑,查看其他人对你正在研究的主题所讨论的话题和内容,并将学到的知识应用于手头的项目. 当面临一个问题,优秀的程序员应该知道如何花很少时间去查验和解决手头的问题. 2.保持初学者心态 技术发展如此

想要成为真正优秀的程序员是不是真的很难?

很多人认为要想成为一名优秀的程序员,那就需要一天24小时每天不断地编程--睁开眼睛要编程,闭上眼睛睡觉的时候还要梦到编程--我认为这是一种矫枉过正的方法.沿着这条路走,只会让你精疲力尽,犹如夸父逐日一般,死在半道上. 我觉得问题的关键是要想明白你为什么要编程.坦率地说,我编程是因为我喜欢别人用我的程序,这也是我之所以在读书的时候成绩不怎么优秀的原因(我并 不热衷于参加编程竞赛以及类似事情).因此,我也不喜欢参与纯研究的项目--只在论文上讨论各种点子,而不付诸于行动不去写代码(除非恰巧碰到的是研究

&amp;amp;#9733;漫画:优秀的程序员具备哪…

漫画:优秀的程序员具备哪些属性? 东方头条12-2717:20 很多人问我,你是一个优秀的程序员吗? 我还差得远,但我在朝这个目标努力. 那么,怎样才能成为一个优秀的程序员呢? 优秀的程序员往往具有几方面的特点,这些特点里有的更重要,有的作用略低,我以个人的见解,为这些特点从低到高划分了5个星级. 1.兴趣 重要程度: 毋庸置疑,无论是IT还是其他领域,兴趣都是成功的第一推动力. 或许有人会问了:我对所有正经事都没兴趣,天生就喜欢吃喝玩乐,那我该怎么办啊? 没办法,对自己狠一些吧,想一想努力事业

为什么程序员不擅长估算时间?

一个曾经与我一起工作过的经验丰富的项目经理声称,他拿到程序员的时间估算以后,先将它乘以π,然后转化下一个时间数量级后,才能得到真正的值.1天转化成3.14周.他过去因为程序员不擅长估算时间而吃尽了苦头.我创建了一个用来翻译程序员时间估算的表格,来尽量缩小估算错误. 估算时间 程序员们所想的 程序员们所忘记的 实际时间 30秒 只需要做一个很小代码改动,我准备的知道怎么改,在哪改,花费30敲键盘就行! 启动计算机,开发环境和获取正确源码的时间,用于构件,测试,检查和文档修复的时间. 1小时 5分种

优秀的程序员是在穿过一条单行道的时候还会往两边看的人

作为一个IT行业的软件程序员,每天驱使我们日复一日的辛勤工作的,是来自我们对编程的兴趣和激情.但是要让编程变得始终有趣,我们必须学会坚持某些成为优秀程序员的基本原则. 我并不是要写出一些咒语,你照着执行就可以成为一个优秀程序员了.我的目的是想记录下我学习到的和用过的一些有用的经验,它们帮助我获得比较好的结果.对于优秀程序员是没有明确定义的,这里我们指的是那些创造出了优秀IT解决方案的以及帮助这个行业增长的那些人. 0. 掌握基础 对于任何行业任何工作来说,融会贯通是获得成功的关键.一个人想要成为

深入理解你的代码才能成为优秀的程序员

为什么有些程序员似乎有着一种神奇的能力,能够在眨眼间提取代码的意思? 为了回答这个问题,我先从科学的角度来研究我们理解代码的过程. 事实证明,理解代码是有其心理过程的,我们可以利用这方面的知识成为一名更优秀的程序员.它能有助于你理解开发过程中的各个环节,这样你就不会因为编程中的技术瓶颈而裹足不前. 本文将对有关编程理解的知识略有涉及,并从三个方面来讨论如何利用这些知识成为一名更优秀的程序员. 关于成为更优秀的程序员的方法有三种: 首先,你得知道理解代码的能力取决于三个方面: 知识--解决问题所需