程序员的纯数学与应用数学[关闭]


13

我一直认为数学很容易,因为我总是觉得这门课很容易。不过,计算机科学是我的第二爱。如果有选择,我宁愿主修数学。由于通常只有大学本科学历的职业根本没有吸引力,所以我在作为软件开发人员的日子里会很满足。

我的问题是:未来的程序员将从哪个数学学科中受益?应用数学还是纯数学?

我喜欢自学,我有信心可以教自己成为一名优秀的程序员,但我仍然打算成为CS的未成年人!


16
如果您总是觉得数学“简单”,那么我想您还不够。
Mark C

我应该说,相对于其他人来说,这很容易。
Joose

Answers:


12

这完全取决于您作为软件开发人员要做什么。

如果您想研究图形,则需要具有几何学,线性代数,矩阵变换((物理学也不会很糟糕))等方面的深厚背景。

如果您想进行SQL或其他类型的数据库编程,则逻辑(证明,推理定律等)和离散数学(甚至可能是lambda演算)都是必需的。

但总的来说,您知道的应用数学越多越好。

在算法开发和理论编程等方面,纯数学会更好。甚至可能是map redux编程之类的。

基本上,两种方法都不会出错。


游戏开发不会伤害我的感觉,但我听说这是一个艰难的领域。而且我无法想象没有CS学位会帮助我获得机会。
Joose

游戏开发非常有竞争力。您会感到惊讶。特别是随着所有的iOS,Android,WP7应用程序越来越流行。进入这个行业要困难得多(就像专业的3D动画师一样。这是我在CS之前的梦想),但是移动领域开辟了新的大门。无论哪种方式,对于软件开发来说,如果您具备找到工作的技能,都不是问题。我要在两个月内毕业,我的顾问告诉我我们的CS部门。为其毕业生提供100%的工作岗位。这个数字对于大型大学和CS很典型
joe_coolish 2011年

4

我可以依靠自己的手指在我从事的任何项目中使用比基础代数更复杂的数学运算的次数。

实际上取决于您所进入的领域。


非常真实 但是那一次,高级数学确实派上了用场,而且退休之前可能至少还要再派上用场。根据我的经验,在我的水下编织篮子课程中还没有证明有用的地方。基本上,数学越多,您解决问题的工具就越多。
掌握

在一定程度上,您可以在需要时学习所需的知识,尤其是如果您已经具有强大的数学背景。我学习过CompSci,但是在我的第一份工作中,我需要了解球面几何,因此我花了一些时间在老学院的图书馆里读了一些书。
彼得·泰勒,

@joe_coolish你不知道吗?他们正在寻找该领域的专家来协助“水下
篮筐编织

3

编程是应用数学。就是说,我认为这没有太大的不同。我攻读学位(数学)的应用数学主要面向物理学,这对编程所需的逻辑并没有多大帮助,但对于确定算法非常有用。


2

我想我会建议某种平衡。

了解基本的自动机理论,形式语言,信息理论和基本的离散数学当然很有用。

对于许多数学繁重的应用领域来说,了解微积分,线性代数,概率和统计信息也非常有用。

精打细算的软件工程也非常重要,因此您知道如何分析问题领域并提出利弊的各种方法。然后可以带领他们完成团队合作。了解源代码控制,可维护性,适当的测试和质量控制以及软件生命周期管理的重要性。

我见过非常聪明的人,他们在这些领域中的一个或多个领域害羞,这肯定会使他们退缩。如果他们是老师,那会让他们的学生退缩。


2

我目前正在完成纯数学的学位,但我也花了很多时间从事应用数学研究项目。尽管每门学科都有自己的文化界限,但纯数学和应用数学之间的区别通常比我们想承认的更加难以捉摸。直到近代数学史为止,几乎所有的数学都被我们称为“应用数学”。(如果愿意,可以给数论一个例外。)有时边界也会发生变化。我的研究兴趣之一是由与实际物理系统相对应的极其“应用”的问题所激发的,但后来逐渐涵盖半技术和形式语言理论等相对“纯粹”的主题的中心技术。请记住,即使是纯正的王子高斯也要花费数小时来手工计算谷神星的轨道。

没有关于课程作业和研究机会的具体细节,很难说出更多有关您的情况,但是可以说,应用数学将为您提供更多的编程经验。这并不是说“纯数学”中没有计算问题(有!),但是这些问题不会被强调,您将不得不自己寻找问题。另一方面,似乎大多数人从纯文本过渡到应用文本,反之亦然。这里有很多混淆变量的机会,但这可能会让您停顿。

最终,您可以在本科生中培养的最有用的技能之一就是确定以下答案的能力:“为了学习,我需要用枪支什么?” 如果您的兴趣跨越多个领域,并且无法用尽每个领域的课程内容,那么该问题将激发大量的课程工作。例如,我非常喜欢自动机理论,但是我从来没有上过计算理论的课程,因为我可以很高兴地读教科书。(注意:仅当您实际阅读教科书时,此方法才有效)。但是,在微分几何学中,我知道除非有每周测验的方式开枪,否则我实际上不会为处理Christoffel符号等而烦恼。

您应该学会识别自己的倾向和不倾向,并绕他们改行。


1

绝对是纯数学。特别是离散数学和数学逻辑。

伊利诺伊大学数学系有一个有趣的MS程序,称为“应用数学”(计算理论)。这是数学系和CS系之间的一项联合计划。那可能是您想要的东西,但这是一个研究生课程。


作为应用数学专业的学生(至少我将要去的大学),我将不得不学习离散数学。我注意到有很多课程既列为纯课程,也列为应用课程。
Joose

离散数学至关重要!
Morgan Herlocker 2011年

1

我设法获得了一个非常不错的软件工程学位,以及计算数学学位。我很幸运,我的学校有一个专门用于此的程序,它是CS和数学的结合,重点是支持CS(离散,抽象代数,图论和网络)的数学和需要计算机帮助的数学(数字分析,线性代数)。

我猜那是“纯粹的”数学,但我从未真正想到过这种方式-它非常关注计算机,因此计算数学是一个很好的描述。


1

如果您考虑从事金融职业:统计,分析,PDE,蒙特卡洛模拟(以及各种“(伪)随机性”),代数。


我无意从事金融业。:)
Joose

适合你:)
quant_dev

++这些比财务更有价值。
Mike Dunlavey

1

我认为这取决于您要做什么。我一直从事计算机科学和工程学方面的工作,因此应用数学是技能组中比较重要的部分。很多comp sci,让我震惊的是更纯粹的数学,担心是否存在完整的NP算法以及所有这些东西,从来没有让我感到非常有趣或实用。但是函数逼近,PDE,线性代数等一直是非常基础的。但是,如果您打算在一般编程方面谋求一份职业,我怀疑这些东西对您和开发思维技能都没有太大帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.