什么是特定领域所需的必要数学技能?

3

您了解哪种数学对于不同领域最有用吗?例如,如果是Linux内核开发人员,程序员需要什么类型的数学知识?对于驱动程序开发人员,需要哪种类型的数学?除计算机科学相关领域和游戏编程外,其他IT领域是否需要深奥的数学知识?


了解基本算术是必须的。一些代数知识也很有用。熟悉数学概念可以帮助你更好地进行函数式编程。除此之外,还要根据你从事的编程领域而定。基本几何知识很有用,但常常被程序员所忽略,这也可以从 Stack Overflow 上关于五年级几何问题的众多提问中看出来。 - Alexandre C.
4个回答

3
离散数学、二进制和逻辑数学在所有领域中都是必要的。

2

<metaphor>拥有数学学位后,很多问题看起来都像编程钉子,而数学锤子就派上用场了。<metaphor/>

以下是一些数学锤子:

  • 线性代数 用于解决NMR光谱中的近奇异矩阵(医学)
  • 统计学 用于测试数据源的质量(参见实验设计
  • 组合数学 用于分解幂集(工程学)
  • 组合数学 用于计算药物组合(参见N面骰子)(再次是医学)
  • 复数算术 用于查看曼德布罗特集(学校)
  • 蒙特卡罗方法 (物理、金融模拟和酒吧赌注)
  • 微积分 用于解方程(金融)
  • 布尔逻辑 (跨越所有编程学科)

你可能认为某门数学课程是浪费时间。然而,如果你从这门课程中学到了东西,你就会知道什么时候需要使用哪个工具!


1

除非你从事涉及数学计算的特定开发类型,大多数编程领域实际上并不需要很多数学知识(以下是例外情况)。然而,在招聘时寻找强大的数学背景非常普遍,因为强大的数学技能和强大的编程技能之间往往存在高度相关性--解决复杂数学问题的良好组织能力表明解决复杂编程问题的良好组织能力。

实际上有一些研究着眼于以非常不同的结果教授编程的替代方法。例如,研究创意写作和编程之间的相关性,看看那些具有非常好的创意写作技巧的人,并教他们编程,就好像程序在讲述一个故事而不是解决一个问题。这也被证明可以产生非常出色的程序员,通常对问题有不同的看法。

数学确实需要例外的情况包括视频编解码器实现、高级报告所需的统计数据或任何类型的低级3D工作,不使用抽象它所有的API(这通常是最常见的情况)。


我不同意。在我所了解的大多数伟大的数学家中,即使他们的日常工作是编写程序,也非常不擅长编程。虽然数学能力强与解决问题的能力之间存在着很强的相关性。成为一个好的程序员并不意味着成为一个好的问题解决者,这更像是一项手艺人的技能。有一些特定的领域需要两者的技能(例如涉及模拟等内容),而拥有这两种技能的人非常难找(通常已经在像Google这样的大公司工作)。 - Alexandre C.
@Alexandre C.,我同意很难找到同时具备这两种技能的人。大多数非常优秀的计算机科学专业学生会进入职场,然后从未积极寻找其他工作——他们可能通过人脉关系换工作,但通常不会在没有新工作的情况下辞职,也不会在Monster.com或其他求职网站上出现。这就是为什么像谷歌和微软这样的大公司特别推崇从学校里招聘优秀的候选人的原因。 - Samuel Neff

0
除了其他答案之外,图论 在算法构建中提供了必要的工具。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接