一个程序员的数学学习探索之旅

凡是我们希望从容应对的,必须首先学会勤奋耕耘。——Samuel Johnson

只有将基本功练好,你才能变得更强。任何事情都是如此。——Earl Sweatshirt

我最近在看一些大学低年级的高数课本。为什么?为什么要用业余时间来学习又难又枯燥的高数?

因为,如此美丽、强大、重要的高数,不应该只是我们平时接触到的机器计算。那不是数学的本质。推理和观点之间的联系才是数学中最重要的,才是数学之美。

我认为数学是一种未开发的力量。统计学是电脑编程时代的大帮手。我的理想状态是,通过透彻地理解机器学习和机器视觉来学习统计学、概率论和线性代数。过去的5—7年里,我一直就想这么做。为了达到目标,我必须要有扎实的基础,才能理解为什么。

你问为什么不辞职回去读书?这真的不适合我。在自己的地盘学习,没有压力,我能够尽力尝试项目并且能在此基础上收获新的知识。这让一个初学者能够无拘无束地探索、学习。有些人可能会选择进修学位。如果你也是这么想的,那太棒了。这篇文章就是写给那些不能或者不愿意通过学校来学习的人。

独处之时培养自律的习惯

当我们尝试去学习有难度的东西的时候,会出现以下这些情况。我们尽全力约束自己,一点一点的达到目标。我们将自己训练成一位自律的、高效的学者。我们强迫自己习惯在业余时间来学习。

这非常具有挑战:因为我们处于独处的状态。它不同于类似参加军训的学习,尽管它们都很困难,但是在军训时,你有许多同伴。打个比方说,你放弃了海豹特遣队的训练,你知道你的行为会直接影响伙伴和自己;你必须告诉你的朋友、家人和长官:你失败了。但是,如果你决定在业余时间学数学,然后半途而废了,没有人会知道。这不会对你造成任何影响。当然,我的意思不是学数学和成为海豹特遣队员一样困难,而是这件需要独自完成的任务本身就很有挑战性。不同的目标,不同的方法,你也许不会有许多可以互相交流的学习伙伴。这是独自学习的魅力所在,也是困难所在。

从工作和家庭中挤出时间来学习是一件很不容易的事。我们忙碌在这个嘈杂的世界里,而数学学习需要精神高度集中,需要长期的独处时间。找到一个不受打扰的地方是很奢侈的。

但是,要用心。只要你不放弃,最后终会达到目标。如果你感到筋疲力尽了,休息会儿吧。如果你开始偷懒了,别担心,我也时有发生。只要继续努力就好了。累了或者有紧急事情发生的时候,就休息下吧。长期提升需要稳定、规律的进步。你越是自律,越是走的更快更好。当你变得更好之后,效率也就更高了。你养成的好习惯就是这样改变你的生活的。

直面你的心魔

我曾经有许多不良的心理障碍,而且最初我甚至没意识到它们正影响着我。很多次,我都觉得,我并没有资格来自学数学,因为也是专家的特权。我对自己说,就算你现在不是硕士又如何呢,别担心。这句“别担心”影响了我数年。

我曾听过一句忠告,大致是这么说的:人生不能重来,你的目标就是去找到你究竟“应该”做什么。问题是,我生来就没有任何天赋。我唯一会的,就是花时间来磨练自己的技能,比如编程。我问自己:为什么不也这样来学习工程数学和统计学呢?

即使你没有专业的背景,我也希望你能去追求自己喜欢的东西。

普通人未必不如天才

如果你跟我一样,对学术工业的各种实验研究有些畏惧,就会觉得好像平凡的我们,没有什么机会。但这个世界上有太多未解决的问题了,而那些高学历的天才们又是少数,他们不可避免地会忽略一些问题。我们平凡人,其实能从更好的角度来解决问题。研究者们通常不会进行深究;他们只关注他们的课题,解决完一个课题之后,再进行下一个。有价值的洞察力会帮上大忙。我们不必把那些权威专家想得太高大上;他们大多数都只精于自己的专业领域,在另一些技能的运用上还不如你。

可悲的是,许多业内精英都在金融市场中追本逐利,售卖在线广告。他们优秀的技能得不到施展。正因为如此,我认为,大批的兴趣爱好者们拥有了在科学领域大展拳脚的机会。

主张自学数学、科学和工程学

老实讲,我连发表这篇文章都觉得紧张。在花了好几个小时来编写这篇文章之后,我甚至将它放在 Google Drive上超过一个月。那些天才们早已熟知所有我了解的东西,并且还有些人是比我更优秀的软件工程师。他们看到我的文章会怎么评价呢?他们中的一些人虽然比我年轻,但是几乎在每个领域都比我优秀。我必须接受这个事实。

我所期望的收获被焦虑不安所掩盖了。满眼都是冰冷而微妙的期待。笔记本上会写满潦草的各种观点,无解的方程和顿悟的思路。我们所学习到的知识是真正属于自己,并且永远不会失去的财富。让我们勇敢的去尝试,去质疑,去提问,去激情满满的学习吧。

附录:书籍推荐

文章的最后是推荐一些我觉得很有帮助的书籍,希望你们也能喜欢。

线性代数是机器学习的重要工具,所以我从它开始讲起。一开始,我的想法是使用 MIT 的同本教材。在 Gilbert Strang 的课本中附赠了讲义、视频和其它有用的资源。

可惜这本书并不适合我,所以我又找到了另一本。我喜欢 Thomas Shores 写的《Applied Linear Algebra and Matrix Analysis》,但是后来发现它的练习有些无聊,所以,目前我比较推荐 Sheldon Axler 的《 Linear Algebra Done Right》。

当我开始读这本书的时候,碰到了一件有趣的事情。第一章就出现了复杂的算法。在读完第一章之后,我意识到,开始读这本书前,我需要做更多的功课。

当时,因为需要去复习高中数学,我觉得非常沮丧:这似乎离我的目标更远了。有一天晚上,我甚至哭了,而且真的想过放弃。

但我明白,复习更简单的数学是我唯一的选择。我摆平了心态,然后着手寻找合适的教材来复习高中代数、三角和几何。

我没有使用类似与曾经高中教材的书,而是一些权威的数学家们编写的书。

我找到了关于基础代数(elementary algebra)、几何(geometry)和三角(trigonometry)的好书。

我还梳理了有关单变量计算的知识,所用的教材是 Serge Lang 写的。当然,我觉得它比我高中用过的书要有趣多了。

我觉得提高我学习数学的方法也很重要。我意识到,以前我做了许多无用功,因为没有找到高效的学习方法。

我很喜欢Barbara Oakley的《A Mind For Numbers: How to Excel at Math and Science (Even If You Flunked Algebra)》。它讲述了作者成为一名工程教授的非凡之路。同时,它也有许多有效的学习方法。

对于那些还没有上过必修数学,但又想了解更高阶的数学知识的人来说,一本详解证明和数学推理的书是很有帮助的。在大学,我用的是这本《Foundations Of Higher Mathematics》。这是我学过的最有价值的课程之一。

我觉得在亚马逊和互联网上寻找好书是很有意义的。你会收获许多惊喜。以下是一些我准备去读,并且我觉得会对你的学习规划有帮助的好书:

  • 《Linear And Geometric Algebra》,作者 Alan Macdonald
  • 《Vector And Geometric Calculus》,作者还是 Alan Macdonald
  • 《Visual Complex Analysis》,作者 Tristan Needham
  • 《Information Theory, Inference and Learning Algorithms》,作者 David J. C. MacKay

当然,你也会对其它知识感兴趣。以下是一些你也许会感兴趣的知识点:

  • 与编程语言设计相关的范畴理论
  • 与密码学相关的抽象代数和数论
  • 与科学工程类的应用计算问题相关的微分方程,最优化控制和有限元素法
  • 与金融模型相关的Monte Carlo仿真
  • 与广义相对论相关的微分几何
  • 与算法分析相关的离散数学和组合数学

大家可以有不一样选择。比方说,你可以看 Khan Academy 的视频或者完成 Coursera 的课程。选择的标准是要符合大家自己的水平和专业背景。可能性是无限大的。现在就开始吧!

加载余下内容▼

相关文章:

;