打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
三年学习之路—算法工程师指南


今年是我工作的第四年,一路走来磕磕绊绊,想把自己的学习和工作路径做一份总结,也希望这份总结能够帮助那些想成为算法工程师的同学。


这一次不是21天,也不是3个月速成班,而是需要三年! 我是以一个一线互联网公司对算法工程师的要求写的这份总结和指南,如果你只是想浑水摸鱼,急功近利,那么我写的东西肯定是不适合你的。 在这三年里,我面试了大大小小互联网公司15家左右,收割了包括bat在内的大部分offer。当然,有几份offer是面试多次才获取的,比如百度,阿里等。 刚毕业的时候去面试死的很惨,到后期能力提升上来了,面试也就容易了,也形成了一套自己的面试套路:刷题!


因此这篇文章皆在表达以下几个目的:

  1. 自我总结。对过去三年求学和求工作经历的总结,不断反思,共同探讨

  2. 学习路径规划。我会根据自己的理解推荐三年左右的学习规划

  3. 面试指南。结合自身的面试经历,总结出一些可用实践方案


需要说明的是:文章表达的只是我个人的理解,如果你的理解与我的有出入,那么纯属不巧合,以我为准(捂脸🤦‍♀️)! 同时,我是假设你与我一样的基础:没有数学和计算机基础,但是至少有本科学历 这样的前提条件下来写的。 此处我不想针对学历做任何讨论,现实的世界就是没有学历你将寸步难行,找工作尤为明显。


我规划的学习路线并不是严格按照我当初自学的方法来进行的,因为我当初走了很多弯路,踩了很多坑。在阅读这份总结前需要一点备注信息:

  1. 我假设每周能学习10个小时左右,具体怎么分配可习性安排。但是学习要有连贯性,有保证有大块整段时间来学习!每次学20分钟这种所谓的零碎时间学习就拉倒吧,你将一事无成

  2. 坚持坚持坚持!最难人可贵的不是知识本身而是你的毅力和坚持!智商上的差距真的不是很大,大的是每个人的毅力与野心

  3. 不存在所谓的速成班,算法更是如此!也不存在所谓的业务爱好,走马观花搞一搞,算法不是你想搞,想搞就能搞!既然要学,就做好拼尽全力的准备。否则就是在浪费时间,真的!!


我们把整个学习路径分为三部分:

  1. 夯实基础

  2. 机器学习

  3. 算法工程师


一、夯实基础

算法工程师两把斧,一把是数学,一把是计算机知识。所谓的算法无非就是应用计算机工具将数学知识应用到业务中。 但数学和计算机的知识包罗万象,普通人即使终其一生也不可能学完或者学精整个学科。 对于算法工程师来说,我们只挑选最核心的知识来学习即可!下面直击要害


数学

  1. 统计概率

  2. 微积分

  3. 线性代数

  4. 机器学习入门


计算机

  1. C/C 语言

  2. 数据结构和算法

  3. PYTHON编程语言

  4. JAVA编程语言


英文


至少要是大学六级的水平,雅思6.5分,阅读小分6.5才算合格

我先来说英文,据我所观察,英文是区分一个程序员是否优秀的重要标志。你英文好不一定就能成为优秀的程序员,但是英文不好很大概率上你不可能成为优秀的程序员。 算法这个行业发展太快速了,日新月异,大部分资料都是英文的,发表的paper也肯定都是英文的。中文的翻译书籍往往还没出版,英文的版本就已经迭代好几次了。英文不好,你上不了Google,上不了github,上不了stackoverflow,上不了这个星球上任何优秀的程序员网站。 很大程度上,英文能力会对你的学习工作视野产生决定性影响。说到这,很多同学都寒心了,我就是英文不好,咋办 其实大部分城学员英文都不好,包括那些你看到的优秀程序员! 但是有一点他们肯定很厉害,就是英文阅读的能力。没错,对于大部分程序员来说,只要阅读过关,英文就够用了,如果听力还过关,那基本上足够用了,如果写作业过关,那就很厉害了,如果口语也过关,那就忽略我写的这一段,你将会体验英文给你带来的巨大优势! 


数学

数学是算法的灵魂 数学学不好会比英文还糟糕,英文是锦上添花,数学是你能力的上限!其实发展到今天,机器学习等知识涉及到是数学知识实在是太多了,我自身也没有完全搞清楚或者说将全部的知识弄明白,只能结合自己学习过的以及身边一些案例来给大家做一个推荐


统计概率

统计学和概率论经常被放在一起使用,直到现在还有很多人在区分机器学习和统计学,有所谓的统计派计算机派(参考吴恩达以及他的恩师乔丹,不是打篮球的那个)。 统计学涉及的回归分析是机器学习里最简单的线性模型,概率论里面的概率分布和概率计算是机器学习演算的一个核心。机器学习模型对样本进行预测的都是给出一个概率值,表达不确定性!


如果你是文科生,数学又很弱的话,我推荐你学习《商务与经济统计》。这本书浅显易懂,不会像国内教材那样枯燥乏味,每一章节都会含有一个具体的商业案例,大量的习题(虽然习题很弱)。每天学习1-1.5个小时,差不多30天能学完。最难的章节属于假设检验以及线性回归那里,单也仅仅是相对的难而已,比起机器学习,它毛都不算!

如果你是理科生或者数学功底不错的话,我推荐你学习陈希孺的《概率论与数理统计》。很传统很经典的中国式教材,但是写的内容实在是好,前后衔接的恰到好处,由浅入深,概念解释的直白明了,涵盖了以后机器学习所需要的几乎全部概率知识。缺点就是纯教科书班的书籍,读起来略微枯燥。


推荐星级

《商务与经济统计》 五星

《概率论与数理统计》 四星

建议学习周期:40



微积分

我只推荐一本书《普林斯顿微积分读本》和一门简单的课程《微积分的本质》。我看过很多微积分的教材,包括同济的《微积分》以及《托马斯微积分》,但是都没有《普林斯顿微积分读本》更能吸引我的注意力。这本书浅显易懂,书籍看起来很厚,但是学习起来并不费力,作者的写作观点很友好,风格较为轻松却又不失严谨。建议如果基础较差的同学可以重头来过,好好的跟学一遍!我对泰勒展开式那一章节尤为记忆深刻,作者先是引入了一个及简单的案列,接着就此案列进行了深入的讲解,一目了然。

《微积分的本质》是三蓝一棕出品的简短视频,通过酷炫的动态PPT演示了微积分的过程。但是真的仅仅是入门级别的视频,就当做课外读物学一学吧


推荐星级

《普林斯顿微积分读本》 四星

《微积分的本质》 四星

建议学习周期:60


线性代数


线性代数到底怎么学,我真的一直没有找到很好的方法。我看过很多的书籍和视频,包括同济的那一本很薄的书,我一度以为那是本很好的教材,直到我在网易云课堂上学习了MIT的线性代数课程,像是打开了新世界的大门,原来线性代数背后的理论并不是凭空记忆而来的。后来又学习了《线性代数的本质》这套课程,那令人震惊的动画演示线性变换至今令我记忆犹新!


推荐星级

MIT线性代数》 五星

《线性代数的本质》 五星

建议学习周期:20



计算机技能


PYTHON

如果你想入门计算机,首先应该先学一门语言,它会是你使用最多的一个工具。而PYTHON几乎是最简单的最适合新手学习的一门语言。我个人认为学习PYTHON需要包含以下几个方面:

  1. PYTHON的基础语法

  2. 使用PYTHON掌握基础的计算机编程思路

  3. PYTHON用于数据处理和数据分析


任何一门语言的学习都离不开语法本身,Python也不列外,但相对于其他语言,Python语法就简洁明了。我看过很多PYTHON入门的书籍,要说好的我就只推荐两个,一本是《LEARN PYTHON THE HERD WAY》,另一本是《PYTHON编程:从入门到实践》。如果你每天抽出两个小时来学习,一般两个星期就能搞定PYTHON语法。


接下来我推荐学习的可能与你在其他地方看到的不一样,我希望你能学习一些计算编程思维,再直白一点就是学习一点数据结构和算法。 随着我自己工作经历的增长,越来越发现编程思维(数据结构和算法)对于工作以及思考问题的重要性,所以直到现在我仍然在不断的恶补之前落下的数据结构和算法。因此你不妨在一开始学习阶段就来弥补一些!

我给你推荐的是一本书以及这本书配套的课程,这是我看过的最好的教程: PYTHON编程导论》以及EDX上开设的专门的对应视频课程。这套教程除了讲解PYTHON基础知识外,还会讲解常用的编程算法,包括查找,排序,搜索等等,可以说是相当好的入门计算机课程。


PYTHON是一门非常综合的语言,被发明出来也不是为数据挖掘或者数据分析专用的。PYTHON能够成为“AI第一语言”得益于它众多的第三方库,因此我们还需要学习一下专门用来进行数据处理的第三方库:pandas、numpy、matplotlib。唯一推荐的书籍就是pandas作者写的《利用PYTHON进行数据分析》,这本书介绍了几乎三个库主流的用法,相当实用。唯一的缺点就是编排比较乱,学的很零散,所以需要你自己好好的总结一番!


推荐星级

《PYTHON编程:从入门到实践》 四

PYTHON编程导论》 五星

《利用PYTHON进行数据分析》4星

建议学习周期:30


机器学习


我们宗旨是成为一名算法工程师,现代意义上算法工程师一般就是指机器学习工程师。在第一年的夯实基础阶段,我们并不能完全深入的学习完机器学习的知识,但是入门还是一定要具备的。机器学习数学基础三板斧:微积分、线性代数、统计概率! 所以你可以看出来,为什么我花了很大篇幅和你讲要认真学习这三门课!


那么入门阶段该怎么做呢? 很简单,一门课一本书。


一门课

吴恩达《MACHINE LEARNING》公开课


这真的是地球上最好的机器学习入门课程了!我无法用文字来推荐它,总之你就记得学习机器学习看着门课程就绝对错不了。网上一大堆关于这门课的资料、评价、笔记等等,数不胜数!


一本书

Introduction to Data Mining(数据挖掘导论)


很遗憾,我并没有推荐周老师的书,也没有推荐韩老师的书(如果你不认识两位老师,那就忽略这句话)。 数据挖掘导论是我学习过的最好的入门级别的教材,与其它一上来就开始讲解模型的书籍相比,这本书会从最开始的数据准备,数据处理讲解,给与新手最好的入门方式。其内容板块安排的又是相当的合理,尤其是决策树和异常检测这两章,我觉得是相当的精彩,手把手教你推导一个决策树!有一个章节我觉得可以不学,就是关联分析,似乎可能好像仿佛大约已经没人使用这种技术了,虽然我当初仔细的学习过,而且这本书写的也相当的好,但是真的没应用过,都快忘记的差不多了。请君自行判断~




文:小明

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
机器学习该怎样入门
收藏不看系列?2019年实用性超强的五大机器学习课程
机器学习的必备条件不是数学而是...
我是如何入门机器学习的呢
机器学习和Python怎样快速掌握?你一定需要这27张清单
机器学习/深度学习入门资料汇总
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服