首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一个优秀的开发人员应该知道哪些核心的数学概念?

一个优秀的开发人员应该知道哪些核心的数学概念?
EN

Stack Overflow用户
提问于 2008-09-09 15:33:58
回答 26查看 10.2K关注 0票数 62

自从2006年从一所规模很小的学校毕业后(我是一个外国人,当时不知道还有更好的学校),我开始意识到,从数学和软件的角度来看,我错过了很多基本概念,而这些基本概念大多是其他更高概念的基础。

也就是说,我试着在Introduction to Algorithms上听/看麻省理工学院的开放课件,但很快就意识到我错过了几个数学概念来更好地理解这门课程。

那么,一个优秀的软件工程师应该知道哪些核心数学概念呢?你会推荐给我哪些可能的书/网站?

EN

Stack Overflow用户

发布于 2008-09-09 16:57:01

布尔代数是理解控制结构和重构的基础。例如,我见过许多错误是由不知道(或不能使用)德摩根定律的程序员引起的。作为另一个例子,有多少程序员立即认识到

代码语言:javascript
运行
复制
if (condition-1) {
    if (condition-2) {
        action-1
    } else {
        action-2
} else {
    action-2
}

可以重写为

代码语言:javascript
运行
复制
if (condition-1 and condition-2) {
    action-1
} else {
    action-2
}

离散数学和组合学对理解各种算法和数据结构的性能非常有帮助。

正如Baltimark所提到的,数学归纳在关于循环和递归的推理中非常有用。

集合论是关系数据库和SQL的基础。

打个比方,我要指出,木匠通常会使用各种经验法则来建造屋顶和楼梯等东西。然而,几何学知识允许你解决你没有“罐头”经验法则的问题。这就像是通过语音来学习阅读,而不是通过视觉识别基本的词汇。90+%的时间没有太大的区别。但是,当您遇到不熟悉的情况时,拥有自己解决方案的工具是非常好的。

最后,数学所要求的严格性/精确度是非常有用的编程准备,而不考虑具体的技术。同样,我在职业生涯中看到的许多编程错误(甚至是规范错误)的根本原因都是草率的思维。

票数 19
EN
查看全部 26 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档