2011-03-25 36 views
3

你有什么样的数学概念对哪个领域最有用?例如,如果一个Linux内核开发者,一个程序员需要什么类型的数学知识?对于驱动程序开发人员,需要什么类型的数学?在我看来,除了计算机科学相关领域和游戏编程外,其他IT领域还需要核心数学吗?特定领域需要什么必要的数学技能?

+0

知道基本的算术是必须的。一些代数是有用的。玩过数学概念可以提供帮助,尤其是在进行函数式编程时。除此之外,这取决于你的编程领域。基本的几何对于程序员来说很有用,而且通常不了解这些关于SO的五年级几何的许多问题。 – 2011-03-25 18:14:00

回答

2

<metaphor>拥有数学学位,数学锤使很多问题看起来像编程指甲。 <metaphor/>

这里有一些数学锤子:

  • 线性代数解决近奇异矩阵在NMR光谱 (医学)
  • 统计测试 质量的数据馈送的(见 Experiment design
  • combinatorics想知道如何到 击穿发电机组 (工程)
  • 组合学来算药物 组合(见N-sided dice)(医学再次)
  • 复杂的算术看曼德勃罗集(学校)
  • 蒙卡罗方法(物理, 金融模拟,和酒吧赌注)
  • 演算解方程 (金融)
  • 布尔逻辑(跨越所有 编程学科)

你可能会认为一个给定的数学课是在浪费时间。但是,如果您从课程中学到知识,您就会知道哪种工具可以清理掉,以及何时需要和使用它!

3

离散数学和二进制和逻辑数学当然需要在所有领域。

1

除非您正在进行涉及数学计算的特定类型的开发,否则大多数编程领域并不需要大量的数学知识(下面的例外)。然而,在招聘中寻找强大的数学背景非常普遍,因为强大的数学技能和强大的编程技能之间往往存在高度相关性 - 解决复杂数学问题的良好组织解决了复杂的编程问题。

已经有一些研究,实际上看看替代方法来教授具有非常不同结果的编程。例如,研究创意写作和编程之间的关系,看看具有很高创造性写作技巧的人,并教他们编程,就好像该节目讲故事一样,而不是解决问题。这已经证明也会产生非常好的程序员,而且通常会遇到不同的问题。

数学真正需要的例外是像视频编解码器实现,高级报告所需的统计数据或任何类型的低级3D作品,而不使用将其全部抽象出来的API(这通常是这种情况)。

+0

我不同意。我认识的大多数伟大的数学家都是非常差的程序员,即使他们的日常工作是关于编写程序。尽管数学和知道如何解决问题之间有很强的相关性。成为一名优秀的程序员并不意味着成为一名优秀的问题解决者,而更像是一名手工技能。有一些特定的领域需要*两者(任何涉及例如模拟东西的东西),以及具备这两种技能的人都很难找到(通常已经为谷歌等大公司工作)。 – 2011-03-25 18:10:05

+0

@Alexandre C.,我同意很难找到具备这两种技能的人。大多数非常好的CS学生将加入工作岗位,然后从不积极寻找另一份工作 - 他们可能通过网络转换工作,但往往永远不会放弃他们的工作,而没有排列新的工作,而且往往永远不会出现Monster.com或其他求职网站。这就是为什么像谷歌和微软这样的大公司有很大的推动力,可以在失学的时候聘请优秀的候选人。 – 2011-03-25 18:36:15

0

除了其他答案,graph theory提供了算法构建的基本工具。