每当我想深入学习一下算法相关的内容时,其中涉及的一些复杂数学知识有时候就会成为“拦路虎”。
我承认自己的数学确实没学好,但也不至于很糟糕。不过,这种“不上不下”的数学水平,完全无法应对业界 Big Tech 公司(亚马逊、苹果、谷歌、Facebook 和微软)的面试,尤其是面试被问到算法的一些问题,比如某个算法的时间和空间复杂度,或者具体的排序和搜索算法之间的比较等。
因此,我要学习所有这些知识点。在搜索和学习过程中,我搜集了几篇有关编程所需的数学知识的文章。
在编程方面,最为知名的数学支持者是史蒂夫·耶格(Steve Yegge)。关于编程所需的数学,我列举了以下内容供你参考:
数学笔记
《Math for Programmers》
成为一名黑客需要多少数学
谈数学
《数学黑客》
《关于 C 语言实现的斐波那契数示例》
如果你还没读过以上内容,那么你可能会错过我写这篇博客所要表达的意图。按照史蒂夫·萨米特(Steve Summit)、埃里克·雷蒙德(Eric Raymond)以及保罗·格雷厄姆(Paul Graham)的观点,你无需过多地关注数学就可以成为一名出色的程序员或者黑客(此处黑客泛指维基百科中对黑客的定义以及埃里克·雷蒙德(Eric Raymond)对黑客的定义)。
史蒂芬·诺布尔(Steven Noble)认为,程序员应该懂一些数学;埃文·米勒(Evan Miller)似乎在某种程度上也同意这一观点。我本人只是出于热爱而开始踏上编程之路的。
从 2009 年以来,我主要使用 C 语言进行编程,有时候还会用 C++,并且大部分时候是在 Linux 和 UNIX 环境下工作。我对编程充满热情,有时候需要使用多种不同的语言进行编程,因此我必须学习用不同的思维方式工作。编写代码不是很难,但是,使用特定的编程语言并按照一定的范式寻找思路且建立模型,才是最难最耗时的工作。
我在编程道路上的经历告诉我,编程不是数学,而且永远不是。如果你想学习计算机编程,那么去学计算机编程就好了,不需要你去翻阅数学书籍,而是要经常浏览一些编程论坛(比如 comp.lang.c 和 comp.lang.lisp)。关于浏览论坛,你可以使用一个新闻阅读器,比如 Pan,订阅来自 GNU 的所有软件信息,并使用 Linux 发行版来处理日常工作,我趋向于使用轻量级版本。如果你想学习计算机编程而学习了大量的数学知识,那么很有可能会迷失在复杂的数学理论当中,并朝着错误的方向前进,最终也不会学到太多的编程知识。
市面上的数学资料我看了不少,不是太难就是太抽象,能深入浅出的确实不多,《程序员的数学基础课》就是其中一个。跟着学下来,让我把算法和数学模型都串联起来,还理清了之前的一些盲点,有时间一定二三刷。
这门课非常适合想扎实数学基础的程序员和准程序员,课程里的学习路径既能让你巩固基础知识,又可以深入理解这些内容对计算机编程和算法究竟意味着什么。通过“数学概念 - 数学模型 - 数据结构 - 基础算法 / 机器学习算法 - 编码实现”这几个关键步骤,让你深刻理解编程中的数学。
要把一门学了十几年的课重新拾起,还是得“耗点功夫”的。一个好老师可以将复杂的问题简单化,把晦涩的知识点讲得通俗易懂,这门课的作者黄申,就是这么个人。
关于这哥们:
LinkedIn 资深数据科学家和微软学者,IBM ExtremeBlue 天才计划成员。
长期专注于大数据相关的搜索、推荐、自然语言处理、广告以及用户精准化领域;
在微软亚洲研究院、IBM 美国研究院、eBay 中国、1 号店和大润发飞牛网都曾担任要职,带队完成了若干个公司级的战略项目;
著有 20 多篇国际论文和 10 多项国际专利;
这种资历的人开专栏讲课,说真的,挺难得。专栏已有近 6 W 人订阅,截了点评价给你们参考:
这个专栏除了内容过硬,还有 3 点不得不提:
第一,专栏图文并茂,我发现,手绘图片是真挺好看,数学书里面可没有这些,算是给程序员的专属福利了;
第二,每一章末尾,老师都会针对这一讲的内容总结「学习笔记」,方便大家记忆,可以保存下来,随时查看;
第三,每篇文章老师都会留个难度适中的思考题,并在评论区跟大家耐心互动,解答大家提出的问题。
课程原价 199 元,限时优惠仅需 119 元,该门课程也加入超级会员体系,开通会员,能一次性拿下平台 190 多门课程。
如果把 APP 内的这 190 多门课程和专栏全部加起来,按照以往单价,总价达到了 3 万多。而现在,一个会员只要 499,一次性拿下课程和专栏。
说实话,这个方案算是很良心的。毕竟 499 可能以前只能买几个专栏
极客时间这个平台的课程主要是涉及IT、产品和职业技能,非常适合互联网的同学。
在学习这件事儿上,回报大于投入,冲!
点击阅读原文,每天 ¥1.4,拿下极客时间超级会