为了成为优秀的程序员,我需要擅长数学吗?
今天有很多年轻人或经验不足的程序员在论坛发帖、在 Stack Exchange 网站问:「为了成为优秀的程序员,我需要擅长数学吗?」,在我还年轻的时候,我也问自己同样的问题。最近,我醉醺醺地、也是出于无聊,竟然 Google 了同样问题,差不多有 10 多年没有思考过这个问题了。在我浏览相关话题时,出现的答案模式被归结为以下三个主要类别:
貌似「需要」和「不需要」经常带有个人主观偏见,反而显得有点儿草率的反应综合征。因此我把精力更多地放在「看情况」的选项上,以确保「需要」被证明为一种更加普通的观点。我决定就这个问题写点儿东西,考虑到这一点,我的醉醺醺的念头开始兴奋起来,这将促使我不会再忽视它。为了成为一名优秀的程序员,一个人是否需要擅长数学的问题,可以从哲学和技术两个方面解答。我打算坚持哲学层面。意识到它为什么对我重要,是因为一个更年轻的我,为了找到基于不成熟和懒惰而萌生的「不需要」选项,将要投入更多的时间。
首先,我们必须尝试建立擅长数学的资格。一个人可以在既定数学原理或建模方程上,明白全局概念以适应情况,而另外一个人或许在数学的分析部分,比如长于计算、以及操作表达式和方程。在我看来,这两种情况下,二者的平均数学能力都不错。然而,在上面提到的两个特征上有着高度竞争力的一个人,可能成为被视作「擅长」数学的最佳候选人(记得把凤毛麟角的约翰 冯 诺伊曼归入精通数学的类别)。就我目前在大学数学课上观察到的,那些真正擅长数学的人们不属于大多数。这使得答案更加复杂,「看情况」选项的有效性得到了增强。
在「Hello World」和 C++ 的名字到处乱放、而不明白其所以然时,成为一名程序员的阶段通常从掌握基础的教程开始,例子通常包含了数学。设想一下,打算编程的某个人,将很可能自然而然地深究问题,开始怀疑数学在编程中能否发挥切实作用。
坐下来为了编程而编程,除了学习既定编程语言的语法和机制,不会掺杂太多目的。最终,编程是要解决问题,并在数字王国里创新。通过为计算机编程,你想解决或创新什么?如果你想编写网页或自动化任务的脚本,数学不会起到较大作用。然而,如果你对图形编程、开发业务和科学方面的应用有兴趣,那么数学在开发周期里将发挥很大作用。
一旦你在特定领域有了客观目标,问题就更多地变成了学习与该领域相关的数学。有了必需的数学,以及数学思维的强大基础,就可以产出伟大的软件。因此它真正取决于你想用编程完成什么任务。不管怎样,上面的说法不是要否定学习数学。在学习编程中,我已经注意到了一个地方,问自己是否应该学习新东西,是极端错误的。因为软件开发根植于新技术的持续学习。
一个人为了成为优秀的程序员是否需要擅长数学,对于这个问题,我们现在考虑它的一个选项「需要」。对于不擅长的人而言,我建议他们看看数字计算机的历史、以及那些推动机器革命的幕后人。数字计算和编程根植于数学。学习数学有助于提高问题解决的技巧和分析思维。是的,如果你想解决需要数学的、各种领域的复杂问题,那么擅长数学对于优秀程序员而言,是不可或缺的。我尽量从不设限,当困难出现时,就勇往直前吧。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/46983.html
google程序员软件开发相关文章
- 程序员在真实项目中需要注意的事项
- 网传8月虾皮规模毁offer,程序员该如何做未来的规划和技术储备?
- 作为程序员,这份Markdown备忘单你永远需要
- Scratch3.0——助力新进程序员理解程序(难度案例三、五子棋双人对战-电脑需要AI写不出来)
- 程序员都在用的免费常用API
- 程序员离职后为泄私愤远程锁公司服务器硬盘;前程无忧宣传语嘲讽“996”职场人;Twitter 开源工作停摆| Q资讯
- 深入开源和金融技术世界,《新程序员005》来了!
- docker 日志大小限制详解程序员
- 工作中如何做好技术积累详解程序员
- netty基础知识详解程序员
- Linux的重定向与管道详解程序员
- Linux命令之crontab详解程序员
- Linux xargs命令详解程序员
- (error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk.详解程序员
- POI HSSFColor 颜色索引对照表详解程序员
- 【vim】几种模式的切换详解程序员
- Java开发月薪两万,需要达到怎样的技术水平详解程序员
- AI 人工智能详解程序员
- 为什么用 Java:一个 Python 程序员告诉你详解编程语言
- 程序员谱写Linux之音(程序员使用linux)
- 女程序员开发软件挂专家号转手获利被捕