|
1 | 1 | # Python 算法与数据结构视频教程
|
2 | 2 |
|
3 |
| - |
4 | 3 | ## 课程简介
|
5 |
| -数据结构和算法是每个程序员需要掌握的基础技能之一,也是面试中跨不过的槛。目前关于 Python 算法和数据结构的中文资料比较欠缺, |
| 4 | +数据结构和算法是每个程序员需要掌握的基础知识之一,也是面试中跨不过的槛。目前关于 Python 算法和数据结构的中文资料比较欠缺, |
6 | 5 | 笔者尝试录制视频教程帮助 Python 初学者掌握常用算法和数据结构,提升开发技能。
|
7 |
| -本教程是付费教程,因为笔者录制的过程中除了购买软件、手写板等硬件之外,业余需要花费很多时间和精力来录制视频,希望大家体谅。 |
| 6 | +本教程是付费教程,因为笔者录制的过程中除了购买软件、手写板等硬件之外,业余需要花费很多时间和精力来录制视频、查资料、编写课件和代码,希望大家体谅。 |
| 7 | + |
| 8 | +## 作者简介 |
| 9 | +目前就职于知乎,从实习期间接触 Python 起一直从事 Python 后端开发,有一定 Python 的使用经验。 |
| 10 | +知乎专栏: 《Python 学习之路》《玩转vim》 |
| 11 | +电子书:《Python web 入坑指南》 |
8 | 12 |
|
9 | 13 | ## 课程内容
|
10 | 14 | 包括我们在业务开发和面试中常用的算法和数据结构,希望可以帮助新人快速上手,很多老手写业务代码写多了很多基础知识忘记了,
|
11 |
| -也可以作为回顾。 |
| 15 | +也可以作为回顾。课程尽量用通俗的方式讲解,结合 python 语言和日常开发实践的经验,让没有太多基础和非科班的同学也能够理解。 |
12 | 16 | 对于每个算法和用到的数据结构我们需要知道:
|
13 | 17 |
|
14 | 18 | - 原理
|
|
20 | 24 | 这里讲解的章节我参考了下边教材中列举的一些书籍,并且自己设计了大纲。
|
21 | 25 | 视频课程的目录结构:
|
22 | 26 |
|
23 |
| -- 课程简介,笨方法学算法 |
| 27 | +- 课程简介之笨方法学算法 |
24 | 28 | - 抽象数据类型 ADT,面向对象编程
|
25 | 29 | - 数组和链表
|
26 |
| -- 队列和栈 |
| 30 | +- 队列和栈,双端队列 |
27 | 31 | - 算法分析,时间复杂度 大O 表示法
|
28 |
| -- 高级链表。双链表 |
| 32 | +- 高级链表。双链表,循环双端链表 |
29 | 33 | - 哈希表,散列冲突
|
30 | 34 | - 字典和集合
|
31 | 35 | - 递归
|
|
34 | 38 | - 高级排序算法: 归并排序、堆排序、快排
|
35 | 39 | - 树,二叉树
|
36 | 40 | - 图,dfs 和 bfs
|
37 |
| -- python 内置常用数据结构和算法。list, dict, set, collections 模块,heapq 模块 |
| 41 | +- python 内置常用数据结构和算法的使用。list, dict, set, collections 模块,heapq 模块 |
| 42 | +- 面试笔试常考算法 |
38 | 43 |
|
39 | 44 | ## 编程语言
|
40 | 45 | 我们这里使用最近很火的Python。Python 入门简单而且是个多面手,在爬虫、web 后端、运维、数据分析、AI 方面领域都有 Python 的身影。
|
41 | 46 | 知乎、豆瓣、头条、饿了么、搜狐等公司都有广泛使用 Python。笔者日常工作使用也是 Python 居多,有一定实践经验,
|
42 | 47 | 在知乎上维护了一个专栏[《Python 学习之路》](https://zhuanlan.zhihu.com/c_85234576)。
|
43 | 48 |
|
44 |
| -并且由于 Python 抽象程度比较高, 我们能用更少的代码来实现功能,同时不用像 C/C++ 那样担心内存分配、指针操作等问题, |
45 |
| -把主要心思放在算法逻辑本身上,Python 也号称伪代码语言。 |
| 49 | +Python 抽象程度比较高, 我们能用更少的代码来实现功能,同时不用像 C/C++ 那样担心内存管理、指针操作等底层问题, |
| 50 | +把主要心思放在算法逻辑本身而不是语言细节上,Python 也号称伪代码语言。所有代码示例使用 Python3. |
46 | 51 |
|
47 | 52 | ## 受众
|
48 | 53 | 想要学习 Python 算法和数据结构的初、中级同学。需要掌握 Python
|
49 | 54 | 的基本语法和面向对象编程的一些概念,我们这里只使用最基本的 Python 语法,不会再去介绍用到的 Python 语法糖。
|
50 | 55 |
|
51 | 56 | ## 教材
|
52 |
| -这里我曾参考过三本书: |
| 57 | +这里我参考过三本书: |
53 | 58 |
|
54 |
| -[《算法图解》](https://book.douban.com/subject/26979890/): 图解的形式很适合新手 |
| 59 | +[《算法图解》](https://book.douban.com/subject/26979890/): 图解的形式很适合新手,示例使用的是 python |
55 | 60 |
|
56 | 61 | [《Data Structures and Algorithms in Python》]( https://book.douban.com/subject/10607365/): 适合对 Python
|
57 |
| -和算法比较熟悉的同学,或者是有其他语言编程经验的同学 |
| 62 | +和算法比较熟悉的同学,或者是有其他语言编程经验的同学。英文版,缺点是书中错误真的很多,代码有些无法运行 |
58 | 63 |
|
59 |
| -[《算法导论》]( https://book.douban.com/subject/20432061/): 喜欢数学证明和板砖书的同学可以参考,有很多高级主题 |
| 64 | +[《算法导论》]( https://book.douban.com/subject/20432061/): 喜欢数学证明和板砖书的同学可以参考,有很多高级主题。使用伪代码 |
60 | 65 |
|
61 | 66 |
|
62 | 67 | ## 讲课形式
|
63 | 68 |
|
64 | 69 | 绘图演示+手写板+现场编码
|
65 | 70 |
|
66 | 71 | 我将使用绘图软件+手写板进行类似于纸笔形式的讲解,边讲边开个终端分成两个窗口,一个用 vim
|
67 |
| -编写代码,另一个窗口用来运行代码,所有代码我将会现场编写(还是很有挑战的),不会像某些大学教师一样只喜欢念 ppt, |
| 72 | +编写代码,另一个窗口用来运行代码,所有代码我将会现场编写(还是很有挑战的),不会像某些大学教师一样只喜欢念 ppt。 |
| 73 | +每个视频我会尽量控制时长,讲的内容尽量通俗易懂,摆脱学院派的授课方式。 |
| 74 | + |
68 | 75 | 你可以参考我在知乎发的专栏文章看下:
|
69 | 76 |
|
70 | 77 | [那些年,我们一起跪过的算法题[视频]](https://zhuanlan.zhihu.com/p/35175401)
|
|
80 | 87 |
|
81 | 88 | ## 如何学习
|
82 | 89 | 笔者讲课录制视频的过程也是自己再整理和学习的过程,录制视频之前需要参考很多资料
|
| 90 | +希望对所讲到的内容,你能够 |
83 | 91 |
|
84 | 92 | - 理解所讲的每个数据结构和算法的
|
85 | 93 | - 原理
|
86 | 94 | - Python 实现方式
|
87 | 95 | - 时间、空间复杂度
|
88 | 96 | - 使用场景,什么时候用
|
89 |
| -- 自己尝试实现,如果抛开视频自己写起来有困难可以多看几次视频,一定要自己手动实现 |
| 97 | +- 自己尝试实现,如果抛开视频自己写起来有困难可以多看几次视频,一定要自己手动实现。很多面试可能会让手写 |
90 | 98 |
|
91 | 99 | ## 开发工具
|
92 |
| -推荐使用以下工具进行开发,如果使用编辑器你需要安装对应的插件: |
| 100 | +推荐使用以下工具进行开发,如果使用编辑器你需要安装对应的 Python 插件: |
93 | 101 |
|
94 | 102 | - Pycharm
|
95 | 103 | - Sublime
|
96 | 104 | - Atom
|
97 | 105 | - Vscode
|
98 | 106 | - Vim
|
| 107 | + |
0 commit comments