• 为了成为优秀的程序员,我需要擅长数学吗?
  • ZaiFA 发表于 2015/6/28 11:20:00 | 分类标签: 编程 码农 算法 大数据
  •  今天有很多年轻人或经验不足的程序员在论坛发帖、在 Stack Exchange 网站问:「为了成为优秀的程序员,我需要擅长数学吗?」,在我还年轻的时候,我也问自己同样的问题。最近,我醉醺醺地、也是出于无聊,竟然 Google 了同样问题,差不多有 10 多年没有思考过这个问题了。在我浏览相关话题时,出现的答案模式被归结为以下三个主要类别: 
    1.需要
    2.不需要
    3.看情况

    貌似「需要」和「不需要」经常带有个人主观偏见,反而显得有点儿草率的反应综合征。因此我把精力更多地放在「看情况」的选项上,以确保「需要」被证明为一种更加普通的观点。我决定就这个问题写点儿东西,考虑到这一点,我的醉醺醺的念头开始兴奋起来,这将促使我不会再忽视它。为了成为一名优秀的程序员,一个人是否需要擅长数学的问题,可以从哲学和技术两个方面解答。我打算坚持哲学层面。意识到它为什么对我重要,是因为一个更年轻的我,为了找到基于不成熟和懒惰而萌生的「不需要」选项,将要投入更多的时间。 

     

    首先,我们必须尝试建立擅长数学的资格。一个人可以在既定数学原理或建模方程上,明白全局概念以适应情况,而另外一个人或许在数学的分析部分,比如长于计算、以及操作表达式和方程。在我看来,这两种情况下,二者的平均数学能力都不错。然而,在上面提到的两个特征上有着高度竞争力的一个人,可能成为被视作「擅长」数学的最佳候选人(记得把凤毛麟角的约翰·冯·诺伊曼归入精通数学的类别)。就我目前在大学数学课上观察到的,那些真正擅长数学的人们不属于大多数。这使得答案更加复杂,「看情况」选项的有效性得到了增强。

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

    坐下来为了编程而编程,除了学习既定编程语言的语法和机制,不会掺杂太多目的。最终,编程是要解决问题,并在数字王国里创新。通过为计算机编程,你想解决或创新什么?如果你想编写网页或自动化任务的脚本,数学不会起到较大作用。然而,如果你对图形编程、开发业务和科学方面的应用有兴趣,那么数学在开发周期里将发挥很大作用。 

    一旦你在特定领域有了客观目标,问题就更多地变成了学习与该领域相关的数学。有了必需的数学,以及数学思维的强大基础,就可以产出伟大的软件。因此它真正取决于你想用编程完成什么任务。不管怎样,上面的说法不是要否定学习数学。在学习编程中,我已经注意到了一个地方,问自己是否应该学习新东西,是极端错误的。因为软件开发根植于新技术的持续学习。 

    一个人为了成为优秀的程序员是否需要擅长数学,对于这个问题,我们现在考虑它的一个选项「需要」。对于不擅长的人而言,我建议他们看看数字计算机的历史、以及那些推动机器革命的幕后人。数字计算和编程根植于数学。学习数学有助于提高问题解决的技巧和分析思维。是的,如果你想解决需要数学的、各种领域的复杂问题,那么擅长数学对于优秀程序员而言,是不可或缺的。我尽量从不设限,当困难出现时,就勇往直前吧。 
  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款

  • 感谢本文作者
  • 作者头像
  • 昵称:ZaiFA
  • 加入时间:2014/6/1 14:43:00
  • TA的签名
  • 这家伙很懒,虾米都没写
  • +进入TA的空间
  • 感谢以下赞助商
分享按钮