我发现一个网站说微积分和线性代数是系统编程所必需的。
据我所知,系统编程是关于osdev、驱动程序、实用程序等的。我只是不知道微积分和线性代数在这方面有什么帮助。我知道微积分在科学上有很多应用,但在这个特殊的编程领域,我无法想象微积分是如何如此重要。
这些信息都在这个网站上:http://www.wikihow.com/Become-a-Programmer
编辑:这里的一些答案是关于算法复杂性和优化的解释。当我提出这个问题时,我试图对系统编程的领域更加具体。算法的复杂性和优化不仅适用于系统的编程,还可以应用于任何编程领域。这也许就是为什么在我提出问题的时候,我无法想出这样的想法。
发布于 2012-07-26 16:55:50
如果您在现代操作系统的基础上编写非GUI实用程序,而不使用它的内部结构,我想这并不是很重要。如果您正致力于更改现代操作系统或开发新操作系统,这可能是另一回事。
如果您正在使用视频硬件或裸露的金属窗口系统,您将需要线性代数的知识来有效地更新图形。我没有看过自己,但我敢打赌你可以在X、KDE和Gnome的源代码中找到例子。
如果你与硬件有关的数字信号处理,那么微积分将是非常重要的。我猜想有一些设备用系统的CPU而不是本地微处理器来完成繁重的工作,这些设备经常与模拟电力系统接口。
在对数据进行曲线拟合时,微积分除了线性代数外,还在性能分析中起着重要的作用。
发布于 2012-07-26 22:23:34
SomeKittens对金钱的评论是正确的:你需要微积分和线性代数,因为这些课程改变了你思考的方式和你理解世界的方式。线性代数是关于从一个域到另一个域的映射;微积分包括函数的行为方式。它们本身就是强大的工具,但是你在研究这些领域时学到的技术也成为你对这个世界的想象的一部分。
你也需要那些课程,因为人们会期望你能够用这些术语来思考。我不经常看到我的同事在他们的白板上取多项式的导数,但我经常看到函数的草图,在一些有趣的点上画的切线,或者曲线下的阴影区域。我们不太关心实际的价值来计算它们,但是理解价值观的变化是至关重要的,这也是日常对话的一部分。
任何本科计算机科学学位都需要微积分、线性代数、统计学、逻辑和其他数学课程,这并不是因为程序员需要定期直接应用这些技术(尽管他们可能会应用,但取决于他们所做的事情),而是因为你需要这些知识来理解随后出现的材料。
发布于 2012-07-26 17:40:28
我会继续说,我不认为微积分或线性代数可能对系统编程很重要。
我当然认为微积分和线性代数值得学习--我是个数学家!而且,正如其他答案所指出的,由于性能分析和算法设计可以使用高级数学,因此存在一些间接相关性。然而,我并不认为系统编程更依赖于这些类型的数学,而不是一般认为是数学的其他领域。
https://softwareengineering.stackexchange.com/questions/158359
复制相似问题