1
1
# Python 算法与数据结构视频教程
2
2
3
3
## 课程简介
4
- 数据结构和算法是每个程序员需要掌握的基础知识之一,也是面试中跨不过的槛。目前关于 Python 算法和数据结构的中文资料比较欠缺 ,
5
- 笔者尝试录制视频教程帮助 Python 初学者掌握常用算法和数据结构 ,提升开发技能。
4
+ 数据结构和算法是每个程序员需要掌握的基础知识之一,也是面试中跨不过的槛。目前关于 Python 算法和数据结构的系统中文资料比较欠缺 ,
5
+ 笔者尝试录制视频教程帮助 Python 开发者掌握常用算法和数据结构 ,提升开发技能。
6
6
本教程是付费教程(文字内容和代码免费),因为笔者录制的过程中除了购买软件、手写板等硬件之外,业余需要花费很多时间和精力来录制视频、查资料、编写课件和代码,养家糊口不容易,希望大家体谅。
7
7
8
8
## 链接
37
37
电子书:[ 《Python web 入坑指南》] ( http://python-web-guide.readthedocs.io/zh/latest/ )
38
38
39
39
## 课程内容
40
- 包括我们在业务开发和面试中常用的算法和数据结构,希望可以帮助新人快速上手 ,很多老手写业务代码写多了很多基础知识忘记了,
41
- 也可以作为回顾。课程尽量用通俗的方式讲解,结合 python 语言和日常开发实践的经验。
40
+ 包括我们在业务开发和面试中常用的算法和数据结构,希望可以帮助 Python 开发者快速上手 ,很多老手写业务代码写多了很多基础知识忘记了,
41
+ 也可以作为回顾。课程尽量用通俗的方式讲解,结合 python 语言和日常开发实践的经验。书中代码可以作为大家的面试笔试参考。
42
42
对于每个算法和用到的数据结构我们需要知道:
43
43
44
44
- 原理
@@ -99,9 +99,9 @@ Python 抽象程度比较高, 我们能用更少的代码来实现功能,同
99
99
- 无需太多数学基础,仅在算法时间复杂度分析的时候会用到一些简单数学知识。对于学习基础算法,逻辑思维可能更重要一些
100
100
101
101
## 教材
102
- 这里我参考过三本书,均可以网购纸质版或者网络上搜索电子版:
102
+ 这里我参考过三本书,均可以网购纸质版或者网络上搜索电子版,建议大家先大致阅读一本教材掌握基本原理 :
103
103
104
- [ 《算法图解》] ( https://book.douban.com/subject/26979890/ ) : 图解的形式很适合新手,示例使用的是 python。建议基础较少的同学看这本书入门
104
+ [ 《算法图解》] ( https://book.douban.com/subject/26979890/ ) : 图解的形式很适合新手,示例使用的是 python。推荐基础较少的同学看这本书入门
105
105
106
106
[ 《Data Structures and Algorithms in Python》] ( https://book.douban.com/subject/10607365/ ) : 适合对 Python
107
107
和算法比较熟悉的同学,或者是有其他语言编程经验的同学。本书是英文版,缺点是书中错误真的很多,代码有些无法运行而且不够 Pythonic。该书 [ 勘误] ( http://bcs.wiley.com/he-bcs/Books?action=resource&bcsId=9003&itemId=0470618299&resourceId=35653 )
@@ -114,7 +114,7 @@ Python 抽象程度比较高, 我们能用更少的代码来实现功能,同
114
114
绘图演示+手写板+现场编码
115
115
116
116
我将使用绘图软件+手写板进行类似于纸笔形式的讲解,边讲边开个终端分成两个窗口,一个用 vim
117
- 编写代码,另一个窗口用来运行代码,所有代码我将会现场编写(还是很有挑战的),不会像某些大学教师一样只喜欢念 ppt 。
117
+ 编写代码,另一个窗口用来运行代码,所有代码我将会现场编写(还是很有挑战的)。
118
118
每个视频我会尽量控制时长,讲的内容尽量通俗易懂,摆脱学院派的授课方式。
119
119
120
120
你可以参考我在知乎发的专栏文章看下:
@@ -139,7 +139,7 @@ Python 抽象程度比较高, 我们能用更少的代码来实现功能,同
139
139
140
140
## 资料
141
141
142
- - 视频。包含所有讲解视频
142
+ - 视频。包含所有讲解视频(网易公开课)
143
143
- 代码示例。所有代码我会放到 github 上。
144
144
- markdown 讲义,包含视频内容的提要等内容
145
145
- 延伸阅读。我会附上一些阅读资料方便想深入学习的同学
@@ -169,7 +169,7 @@ Python 抽象程度比较高, 我们能用更少的代码来实现功能,同
169
169
对于找工作的同学提升面试成功率。
170
170
171
171
172
- ## 工具
172
+ ## 开发和测试工具
173
173
174
174
推荐使用以下工具进行开发,如果使用编辑器最好装对 应 Python 插件,笔者视频演示中使用了 vim,读者可以自己挑选自己喜欢的开发工具:
175
175
@@ -179,7 +179,7 @@ Python 抽象程度比较高, 我们能用更少的代码来实现功能,同
179
179
- Vscode
180
180
- Vim/Emacs
181
181
182
- 代码中使用到了 pytest 测试框架和 when-changed 文件变动监控工具(方便我们修改完代码保存后自动执行测试),你需要用 pip 安装
182
+ 注意视频中使用到了 pytest 测试框架和 when-changed 文件变动监控工具(方便我们修改完代码保存后自动执行测试),你需要用 pip 安装
183
183
184
184
``` py
185
185
pip install pytest
@@ -191,7 +191,7 @@ pip install when-changed
191
191
``` sh
192
192
#! /usr/bin/env bash
193
193
194
- # pip install when-changed, 监控文件变动并且文件修改之后自动执行 pytest 单测
194
+ # pip install when-changed, 监控文件变动并且文件修改之后自动执行 pytest 单测,方便我们边修改边跑测试
195
195
when-changed -v -r -1 -s ./ " py.test -s $1 "
196
196
```
197
197
将以上内容放到 test.sh 文件后加上可执行权限, ` chmod +x test.sh ` ,之后就可以用
@@ -220,8 +220,8 @@ pip install when-changed
220
220
如果读者关于代码、视频、讲义有任何疑问,欢迎一起讨论
221
221
请注意以下几点:
222
222
223
- - 优先在网易云课堂的讨论区提问,方便别的同学浏览。如果未购买视频,也可以直接在 github 里提出 issue,笔者会有空会给大家解答 。
224
- - 描述尽量具体,视频或者代码哪一部分有问题?
223
+ - 优先在网易云课堂的讨论区提问,方便别的同学浏览。如果未购买视频,也可以直接在 github 里提出 issue,笔者有空会给大家解答和讨论 。
224
+ - 描述尽量具体,视频或者代码哪一部分有问题?请尽量把涉及章节和代码贴出来,方便定位问题。
225
225
- 如果涉及到代码,提问时请保持代码的格式
226
226
227
227
0 commit comments