许多年轻或没有经验的程序员在论坛上发帖并在StackExchange上提问:“我需要擅长数学才能成为一名优秀的程序员吗?”小时候,我自己也问过同样的问题。最近,出于无聊,喝醉了,我在谷歌上搜索了我将近10年都没有想过的同一个问题。当我浏览相关主题时,出现的答案模式分为以下三大类:需要或不需要反应综合症,其中“需要”和“不需要”通常是主观偏见,看起来很草率。因此,我更关注“视情况而定”选项,以确保“需要”被证明是更普遍的观点。我决定就这个问题写点东西,想到这里,我的醉思开始搅动起来,这会促使我不再忽视它。要想成为一名优秀的程序员,一个人是否需要擅长数学这个问题可以从哲学和技术两个方面来回答。我打算坚持哲学层面。意识到为什么它对我很重要是因为年轻的我将不得不投入更多的时间来寻找基于不成熟和懒惰的“不需要”的选择。首先,我们必须努力建立擅长数学的资格。一个可能是基于给定的数学原理或建模方程,理解全局概念以适应情况,而另一个可能是数学的分析部分,例如擅长计算,以及操纵表达式和方程。在这两种情况下,我认为两者的平均数学能力都不错。然而,一个在上述两个特征上都极具竞争力的人可能是被认为“擅长”数学的优秀候选人(记住将罕见的约翰·冯·诺依曼归为精通数学类别)。从我目前在大学数学课上的观察来看,真正擅长数学的人并不占多数。这使得答案更加复杂,并且增强了“视情况而定”选项的有效性。随着“HelloWorld”和C++名称的抛出和不理解为什么,成为程序员的阶段通常从基础教程开始,通常包括示例中的数学。想象一下,打算编程的人很可能会自然而然地深入研究这个问题,并开始怀疑数学是否真的能在编程中发挥作用。坐下来为了编程而编程,除了学习给定编程语言的语法和机制之外,没有太大的目的。归根结底,编程是关于在数字领域解决问题和创新。你想通过计算机编程解决或创新什么?如果您想编写网页脚本或自动执行任务,数学帮不上什么忙。但是,如果您对图形编程、开发商业和科学应用程序感兴趣,那么数学将在开发周期中发挥重要作用。一旦你在某个特定领域有了客观目标,问题就变成了学习与该领域相关的数学。有了所需的数学知识和扎实的数学思维基础,就可以生产出出色的软件。所以这真的取决于你想通过编程完成什么。不管怎样,以上说法并不是否定学习数学。在学习编程中,我注意到一个地方,问自己是否应该学习新事物是极其错误的。因为软件开发植根于不断学习新技术。一个人是否需要擅长数学才能成为一名优秀的程序员,对于这个问题,我们现在考虑其选项之一“需要”。对于外行,我建议查看数字计算机的历史和机器革命背后的人们。数值计算和编程植根于数学。学习数学有助于提高解决问题的能力和分析思维。是的,如果你想解决需要数学的各个领域的复杂问题,那么擅长数学对于成为一名优秀的程序员来说是必不可少的。我尽量不设限,当困难出现时,我就勇往直前。
