知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育  > 数学

想从零基础学习算法,想知道有没有好的学习路线或者顺序值得推荐一下?

发表时间:2022-03-25来源:网络

对于这个问题,那我就很有发言权了。从硬件开发转到CS,最近刚跳槽到网易的后端开发,个人觉得自己的经历还是有一定可供借鉴的经验。加上最近好多学弟学妹问我学习路线,故写了这篇经验贴。

虽然不一定适合你,但或许能给没有明确目标的人带来一些学习的方向,那么这篇文章,我就觉得值了。

注意:这篇文章未必能让你成为大神,学完也不能打包票说能拿到大厂的offer,但至少能给处于大学迷茫、不知道学啥的你,一个学习的方向。不过我相信,当你学完了这些,你应该会有自己的学习方向了。

我们先来看看计算机科班的培养计划是怎样的。

首先,我把科班出身的培养计划,有针对性地列出关键项,帮助大家厘清节点和方向。

可以看到,

大一、大二属于打基础的阶段:主要是数学和编程的入门。

大三会接触核心专业课程,包括操作系统等计算机底层知识。

大四阶段,课程安排上基本都是分专业选修的课程。

由此,我们可以把学习路线主要分为4个部分:数学基础、编程能力、算法基础、实战。

一、数学基础

要想学好算法,是需要具备一定数学基础的。我认为只要学好大学的线性代数概率与统计这两门课就足够了,是完全可以应付算法的数学储备的。

这里推荐两本书籍:

线性代数及其应用


这本书详细地介绍了线性代数在几何学、计算机图形学、经济学、概率论、信号与系统、微分方程等领域的应用,给人以直观的认识。

下载地址(提取码:jack ):

https://pan.baidu.com/s/10FtcG4mweUWy810cirGGzg

概率论与数理统计



感兴趣的可以先看看的它的免费试听课。

三、算法基础

编程语言学完了,接下来就是数据结构与算法。

这里推荐一些相关资料。

1.入门系列:

书籍

《算法图解》

“像小说一样有趣的算法入门书”,主打“图解”,通俗易懂。

《大话数据结构》

把理论讲得有趣不枯燥;每个数据结构和算法,作者都结合了生活中的例子,能让你有非常直观的感受。

《数据结构与算法分析》

很多大学都拿它当作教材,非常系统、全面、严谨,适合掌握了至少一门编程语言的同学。作者也很贴心,这本书有三种语言的版本:《数据结构与算法分析 : C 语言描述》《数据结构与算法分析 : C++ 描述》《数据结构与算法分析 : Java 语言描述》。

课程

Algorithms and Data Structures - Part 1

2.进阶之旅:

书籍

《算法导论》

有了一定基础之后,就可以开始啃这本大部头了。这本书合计 1320 页,把数据结构和算法的主要内容都包含了。作者用伪代码解释了每一个算法。这本书非常厚,也非常难,属于知识密集型的书籍。进阶阶段,好好啃这一本书就够了。

课程

北京大学公开课《数据结构与算法Python版》

一个偶然的机会在B站上看到了这门课,由北大网红教授陈斌主讲,讲课非常风趣,表情包用得非常溜。B上有完整的公开课视频,值得喜欢Python的同学系统学习。

3.针对面试准备:

书籍

《剑指 Offer》

几乎包含所有常见的、经典的面试题,题目的分析比较全面,会从面试官的角度给出很多的建议和show各种坑。

课程

《九章算法班》

不同于《九章算法基础班》,算法班主攻算法面试,学完后,基本能掌握大部分medium题和小部分hard题。

刷题网站

Lintcode

Lintcode上面有非常完整的分类题库,而且还有上面提到的《剑指offer》的配套题库,我当时就是配合Lintcode边看书边刷题的。

四、实战——刷题

直接点明一个所有大佬都推荐的刷题方法:把自己的学习阶段分散成几个时间段去刷不同分类的题型,比如第一周专门解链表相关题型,第二周专门解二叉树相关题型。这样你的知识会形成一个体系,通过一段时间的刻意练习把这个题型相关的知识点强化到你的脑海中,不容易遗忘。

这里还是推荐前面提到的刷题网站Lintcode。

可以看到,它是按照知识点对题型进行了分类,想刷哪个部分的知识点一目了然。

而且它是设有阶梯训练的,零基础小白建议从《新手必刷编程50题》开始刷起,循序渐进。

好了,以上整理的就是我大致的学习路线了。要说需要学多久,那就看个人的学习动力了。加油!

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜