寻找学习数学的途径,以理解算法书籍/理论。

21

我在大学中学习了到预备高等数学,但是在尝试阅读像是 Donald Knuth 的书籍或者像这个链接:http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree 时,我发现我看到的数学对我来说毫无意义。我不寻求魔法,我不指望在一周内理解它们,我只希望有一个好的逐步阅读 / 探索计划来帮助我达成目标。欢迎任何指导,经过20多年的专业编程,我觉得掌握这些知识会很不错。谢谢大家提前! :-)


这是一个非常有用的问题,我认为关闭它是一个愚蠢的决定。 - Aditya M P
8个回答

12

我建议你在本地大学修一门离散数学的课程。这对我帮助很大。在此之前,我并不理解递归(其基础是数学归纳法)。好的离散数学课程会让你学到许多其他非常有用的概念(如图论、渐近符号、组合数学等)。

我还建议以成绩的方式参加课程。我一直注意到,即使与获得学位无关,但这会让人们更认真地上课。

如果你所在的大学很好,他们可能会提供辅导和办公时间,可以去那里提问和澄清问题。这些是非常宝贵的,帮助我比自己独立学习深入理解和学得更快。

你可能需要先学微积分才能满足预备知识,但如果你想提高数学素养,这也是我推荐的。这个答案至少需要一个学期,而且更像是两个,但我认为这是正确的方向。虽然这不是一个立竿见影的解决方案,但如果你在这两门课中表现良好(并且附近有一个好的大学),你将变得更擅长数学。

你的个人资料显示你在达拉斯。我为你找到了这门课程(无先修课程!)。教学大纲看起来覆盖了很多好的材料,并且课程在下午5:30开始(适合工作人士!)。如果他们下个学期提供类似的东西,我会考虑一下。如果你打电话给讲师,我相信他会很乐意与你谈论他对于暑假和秋季课程安排的了解。

这条路线对我很有用。

祝你好运!


我感谢大家的贡献,如果可以的话,我会接受你们所有的答案。非常感谢你们!!! - GoinAum
那么,你做了什么?你上过课吗? - Brian Stinar

8

学习编程的好书。 - CommandZ

6
很多有才华的程序员在理解算法之前就已经掌握了数学知识。数学只是帮助你的工具,而不是让你完全理解一切的工具。你需要花更多时间阅读关于算法和复杂性的书籍,然后你可能会对如何评估它们有所了解。
我建议你多读一些关于算法复杂性的书籍。

3
在您作为专业程序员的漫长经验中,肯定有一些主题和子领域是您最感兴趣的。我的建议是:确定这些领域并深入研究它们。它可能是密码破解、数论、递归、函数式编程、计算折纸、逻辑难题、晶体结构、图形、遗传算法、样条…
认真对待自己的话:
“但当我试图阅读像唐纳德·科诺斯这样的书,或者甚至像这个链接那样的东西时……我最终会看着对我来说毫无意义的数学。”
什么样的数学让您着迷?
我可以说Project Euler有很多有趣的难题。当您解决一个编程挑战后,您就可以进入一个论坛,在那里其他人分享他们的解决方案,并偶尔提到他们所依赖的某些知识体系。我喜欢这个。但重要的是您喜欢什么。您自己的兴趣是您学习的关键。
如果数学和编程不再有吸引力——您不喜欢在空闲时间做这些事情——那就找点别的事情:演戏、学外语、旅行、法国烹饪、骑自行车。谁知道,也许您已经筋疲力尽了。


1

关于离散数学、微积分和应用数学,有很多优质的视频讲座可供观看。每晚观看这些视频,做笔记并尝试解决简单问题。为了准备迎接 Knuth,可以试试 "离散数学"。如果想深入理解数学是什么以及宇宙中所有事物如何相互联系(包括算法),可以试试 "数学之乐"


+1 给教学公司。看看 Rufus Fears 。他很棒。 - Brian Stinar

1
根据Vincent所说,我推荐O'Reilly出版社的《算法概论》(这里)。

1
我也在寻找同样的东西。到目前为止,我买不起这里建议的任何材料,所以这里有一个离散数学YouTube讲座系列的链接。我希望有一个播放列表,但不幸的是没有。
这些视频是从http://www.aduni.org上传的,他们要求每个视频捐赠25美分以支付运营成本。

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