5858
5959 < li > < a class ="toctree-l3 " href ="#_1 "> 课程简介</ a > </ li >
6060
61- < li > < a class ="toctree-l3 " href ="#_2 "> 痛点 </ a > </ li >
61+ < li > < a class ="toctree-l3 " href ="#_2 "> 链接 </ a > </ li >
6262
63- < li > < a class ="toctree-l3 " href ="#_3 "> 作者简介 </ a > </ li >
63+ < li > < a class ="toctree-l3 " href ="#_3 "> 痛点 </ a > </ li >
6464
65- < li > < a class ="toctree-l3 " href ="#_4 "> 课程内容 </ a > </ li >
65+ < li > < a class ="toctree-l3 " href ="#_4 "> 作者简介 </ a > </ li >
6666
67- < li > < a class ="toctree-l3 " href ="#_5 "> 目录结构 </ a > </ li >
67+ < li > < a class ="toctree-l3 " href ="#_5 "> 课程内容 </ a > </ li >
6868
69- < li > < a class ="toctree-l3 " href ="#_6 "> 编程语言 </ a > </ li >
69+ < li > < a class ="toctree-l3 " href ="#_6 "> 目录结构 </ a > </ li >
7070
71- < li > < a class ="toctree-l3 " href ="#_7 "> 受众</ a > </ li >
71+ < li > < a class ="toctree-l3 " href ="#_7 "> 编程语言</ a > </ li >
72+
73+ < li > < a class ="toctree-l3 " href ="#_8 "> 受众</ a > </ li >
7274
7375 </ ul >
7476
7577
76- < li class ="toctree-l2 "> < a href ="#_8 "> 预备知识</ a > </ li >
78+ < li class ="toctree-l2 "> < a href ="#_9 "> 预备知识</ a > </ li >
7779
7880 < ul >
7981
80- < li > < a class ="toctree-l3 " href ="#_9 "> 教材</ a > </ li >
82+ < li > < a class ="toctree-l3 " href ="#_10 "> 教材</ a > </ li >
8183
82- < li > < a class ="toctree-l3 " href ="#_10 "> 讲课形式</ a > </ li >
84+ < li > < a class ="toctree-l3 " href ="#_11 "> 讲课形式</ a > </ li >
8385
84- < li > < a class ="toctree-l3 " href ="#_11 "> 课程特点</ a > </ li >
86+ < li > < a class ="toctree-l3 " href ="#_12 "> 课程特点</ a > </ li >
8587
86- < li > < a class ="toctree-l3 " href ="#_12 "> 资料</ a > </ li >
88+ < li > < a class ="toctree-l3 " href ="#_13 "> 资料</ a > </ li >
8789
88- < li > < a class ="toctree-l3 " href ="#_13 "> 如何学习</ a > </ li >
90+ < li > < a class ="toctree-l3 " href ="#_14 "> 如何学习</ a > </ li >
8991
90- < li > < a class ="toctree-l3 " href ="#_14 "> 课程目标</ a > </ li >
92+ < li > < a class ="toctree-l3 " href ="#_15 "> 课程目标</ a > </ li >
9193
92- < li > < a class ="toctree-l3 " href ="#_15 "> 工具</ a > </ li >
94+ < li > < a class ="toctree-l3 " href ="#_16 "> 工具</ a > </ li >
9395
94- < li > < a class ="toctree-l3 " href ="#_16 "> 勘误</ a > </ li >
96+ < li > < a class ="toctree-l3 " href ="#_17 "> 勘误</ a > </ li >
9597
96- < li > < a class ="toctree-l3 " href ="#_17 "> 本电子书制作和写作方式</ a > </ li >
98+ < li > < a class ="toctree-l3 " href ="#_18 "> 本电子书制作和写作方式</ a > </ li >
9799
98100 </ ul >
99101
@@ -198,19 +200,24 @@ <h2 id="_1">课程简介</h2>
198200< p > 数据结构和算法是每个程序员需要掌握的基础知识之一,也是面试中跨不过的槛。目前关于 Python 算法和数据结构的中文资料比较欠缺,
199201笔者尝试录制视频教程帮助 Python 初学者掌握常用算法和数据结构,提升开发技能。
200202本教程是付费教程(文字内容和代码免费),因为笔者录制的过程中除了购买软件、手写板等硬件之外,业余需要花费很多时间和精力来录制视频、查资料、编写课件和代码,养家糊口不容易,希望大家体谅。</ p >
201- < h2 id ="_2 "> 痛点</ h2 >
203+ < h2 id ="_2 "> 链接</ h2 >
204+ < p > < a href ="http://ningning.today/python_data_structures_and_algorithms/ "> 网上阅读《Python 算法与数据结构教程 》</ a > </ p >
205+ < p > < a href ="https://github.com/PegasusWang/python_data_structures_and_algorithms "> github 链接</ a > </ p >
206+ < p > < a href ="http://python-data-structures-and-algorithms.readthedocs.io/zh/latest/ "> readthedoc 电子书下载</ a > </ p >
207+ < h2 id ="_3 "> 痛点</ h2 >
202208< ul >
203209< li > 讲 Python 数据结构和算法的资料很少,中文资料更少</ li >
204210< li > 很多自学 Python 的工程师对基础不够重视,面试也发现很多数据结构和算法不过关,很多人挂在了基础的数据结构和算法上</ li >
205211< li > 缺少工程应用场景下的讲解,很多讲算法的资料太『教科书化』。本书实现的代码工程上可用</ li >
212+ < li > 网上很多视频教程比较水,收费还很不合理,纯属智商税</ li >
206213</ ul >
207- < h2 id ="_3 "> 作者简介</ h2 >
214+ < h2 id ="_4 "> 作者简介</ h2 >
208215< p > 目前就职于< a href ="https://www.zhihu.com/people/pegasus-wang/activities "> 知乎</ a > ,从实习期间接触 Python 起一直从事 Python 网站后端开发,有一定 Python 的使用和实践经验。</ p >
209216< p > 知乎专栏:
210217- < a href ="https://zhuanlan.zhihu.com/c_85234576 "> 《Python 学习之路》</ a >
211218- < a href ="https://zhuanlan.zhihu.com/vim-video "> 《玩转vim(视频)》</ a > </ p >
212219< p > 电子书:< a href ="http://python-web-guide.readthedocs.io/zh/latest/<Paste> "> 《Python web 入坑指南》</ a > </ p >
213- < h2 id ="_4 "> 课程内容</ h2 >
220+ < h2 id ="_5 "> 课程内容</ h2 >
214221< p > 包括我们在业务开发和面试中常用的算法和数据结构,希望可以帮助新人快速上手,很多老手写业务代码写多了很多基础知识忘记了,
215222也可以作为回顾。课程尽量用通俗的方式讲解,结合 python 语言和日常开发实践的经验,让没有太多基础和非科班的同学也能够理解。
216223对于每个算法和用到的数据结构我们需要知道:</ p >
@@ -220,7 +227,7 @@ <h2 id="_4">课程内容</h2>
220227< li > 时间、空间复杂度</ li >
221228< li > 使用场景,什么时候用</ li >
222229</ ul >
223- < h2 id ="_5 "> 目录结构</ h2 >
230+ < h2 id ="_6 "> 目录结构</ h2 >
224231< p > 这里讲解的章节我参考了下边教材中列举的一些书籍,并且自己设计了大纲,争取做到循序渐进。因为实现一些高级数据结构的时候会用到
225232很多底层数据结构,防止跳跃太大导致读者理解困难。</ p >
226233< p > 课程的目录结构如下,每一章都有配套的文字讲义(markdown),示例代码,视频讲解,详细的讲解一般会放在视频里,使用手写板来
@@ -246,38 +253,38 @@ <h2 id="_5">目录结构</h2>
246253< li > python 内置常用数据结构和算法的使用。list, dict, set, collections 模块,heapq 模块</ li >
247254< li > 面试笔试常考算法</ li >
248255</ ul >
249- < h2 id ="_6 "> 编程语言</ h2 >
256+ < h2 id ="_7 "> 编程语言</ h2 >
250257< p > 我们这里使用最近很火的Python。Python 入门简单而且是个多面手,在爬虫、web 后端、运维、数据分析、AI 方面领域都有 Python 的身影。
251258知乎、豆瓣、头条、饿了么、搜狐等公司都有广泛使用 Python。笔者日常工作使用也是 Python,有一定实践经验,
252259在知乎上维护了一个专栏< a href ="https://zhuanlan.zhihu.com/c_85234576 "> 《Python 学习之路》</ a > 。</ p >
253260< p > Python 抽象程度比较高, 我们能用更少的代码来实现功能,同时不用像 C/C++ 那样担心内存管理、指针操作等底层问题,
254261把主要心思放在算法逻辑本身而不是语言细节上,Python 也号称伪代码语言。所有代码示例使用 Python2/3 兼容代码,
255262不过只在 python3.5 下测试过,推荐用相同版本 Python。</ p >
256- < h2 id ="_7 "> 受众</ h2 >
263+ < h2 id ="_8 "> 受众</ h2 >
257264< p > 想要学习 Python 算法和数据结构的初、中级同学,包括自学的同学和本科低年级学生等。需要掌握 Python
258265的基本语法和面向对象编程的一些概念,我们这里只使用最基本的 Python 语法,不会再去介绍用到的 Python 语法糖。</ p >
259- < h1 id ="_8 "> 预备知识</ h1 >
266+ < h1 id ="_9 "> 预备知识</ h1 >
260267< ul >
261268< li > 掌握 Python 基本语法,有过使用 Python 的经验。知道 class、module、yield 等</ li >
262269< li > 基本的面向对象编程知识,会定义和使用 Python 中的类 (class)</ li >
263270< li > 知道 Python 中的魔术方法,比如 < code > __len__</ code > < code > __contains__</ code > </ li >
264271< li > 无需太多数学基础,仅在算法时间复杂度分析的时候会用到一些简单数学知识。对于学习基础算法,逻辑思维可能更重要一些</ li >
265272</ ul >
266- < h2 id ="_9 "> 教材</ h2 >
273+ < h2 id ="_10 "> 教材</ h2 >
267274< p > 这里我参考过三本书:</ p >
268275< p > < a href ="https://book.douban.com/subject/26979890/ "> 《算法图解》</ a > : 图解的形式很适合新手,示例使用的是 python</ p >
269276< p > < a href ="https://book.douban.com/subject/10607365/ "> 《Data Structures and Algorithms in Python》</ a > : 适合对 Python
270277和算法比较熟悉的同学,或者是有其他语言编程经验的同学。英文版,缺点是书中错误真的很多,代码有些无法运行</ p >
271278< p > < a href ="https://book.douban.com/subject/20432061/ "> 《算法导论》</ a > : 喜欢数学证明和板砖书的同学可以参考,有很多高级主题。使用伪代码</ p >
272- < h2 id ="_10 "> 讲课形式</ h2 >
279+ < h2 id ="_11 "> 讲课形式</ h2 >
273280< p > 绘图演示+手写板+现场编码</ p >
274281< p > 我将使用绘图软件+手写板进行类似于纸笔形式的讲解,边讲边开个终端分成两个窗口,一个用 vim
275282编写代码,另一个窗口用来运行代码,所有代码我将会现场编写(还是很有挑战的),不会像某些大学教师一样只喜欢念 ppt。
276283每个视频我会尽量控制时长,讲的内容尽量通俗易懂,摆脱学院派的授课方式。</ p >
277284< p > 你可以参考我在知乎发的专栏文章看下:</ p >
278285< p > < a href ="https://zhuanlan.zhihu.com/p/35175401 "> 那些年,我们一起跪过的算法题[视频]</ a > </ p >
279286< p > < a href ="https://zhuanlan.zhihu.com/p/35352024 "> 抱歉,我是开发,你居然让我写单测[视频]</ a > </ p >
280- < h2 id ="_11 "> 课程特点</ h2 >
287+ < h2 id ="_12 "> 课程特点</ h2 >
281288< ul >
282289< li > 每个算法和数据结构都有讲义、视频(包含讲解、图示、手动模拟)、源代码。其中只有视频内容为付费内容</ li >
283290< li > 讲义循序渐进,结合自己的学习和使用经验讲解。github 上实时更新</ li >
@@ -290,14 +297,14 @@ <h2 id="_11">课程特点</h2>
290297< li > 结合 cpython 底层实现讲解(比如list 内存分配策略等),避免一些使用上的坑。并且会用 python 来模拟内置 dict 等的实现</ li >
291298< li > 每篇讲义后有思考题和延伸阅读链接,帮助大家加深思考和理解</ li >
292299</ ul >
293- < h2 id ="_12 "> 资料</ h2 >
300+ < h2 id ="_13 "> 资料</ h2 >
294301< ul >
295302< li > 视频。包含所有讲解视频</ li >
296303< li > 代码示例。所有代码我会放到 github 上</ li >
297304< li > markdown 讲义,包含视频内容的提要等内容</ li >
298305< li > 延伸阅读。我会附上一些阅读资料方便想深入学习的同学</ li >
299306</ ul >
300- < h2 id ="_13 "> 如何学习</ h2 >
307+ < h2 id ="_14 "> 如何学习</ h2 >
301308< p > 笔者讲课录制视频的过程也是自己再整理和学习的过程,录制视频之前需要参考很多资料
302309希望对所讲到的内容,你能够</ p >
303310< ul >
@@ -312,10 +319,10 @@ <h2 id="_13">如何学习</h2>
312319< li > 每章讲义后边都会有我设计的几个小问题,最好能够回答上来。同时还有代码练习题,你可以挑战下自己的掌握程度。</ li >
313320< li > 最好按照顺序循序渐进,每章都会有铺垫和联系</ li >
314321</ ul >
315- < h2 id ="_14 "> 课程目标</ h2 >
322+ < h2 id ="_15 "> 课程目标</ h2 >
316323< p > 掌握基本的算法和数据结构原理,能独立使用 Python 语言实现,能在日常开发中灵活选用数据结构。
317324对于找工作的同学提升面试成功率。</ p >
318- < h2 id ="_15 "> 工具</ h2 >
325+ < h2 id ="_16 "> 工具</ h2 >
319326< p > 推荐使用以下工具进行开发,如果使用编辑器最好装对 应 Python 插件:</ p >
320327< ul >
321328< li > Pycharm</ li >
@@ -324,12 +331,12 @@ <h2 id="_15">工具</h2>
324331< li > Vscode</ li >
325332< li > Vim</ li >
326333</ ul >
327- < h2 id ="_16 "> 勘误</ h2 >
334+ < h2 id ="_17 "> 勘误</ h2 >
328335< p > 输出其实也是一种再学习的过程,中途需要查看大量资料、编写讲义、视频录制、代码编写等,难免有疏漏之处。
329336有出版社找过笔者想让我出书,一来自己对出书兴趣不大,另外感觉书籍相对视频不够直观,有错误也不能及时修改,打算直接把所有
330337文字内容讲义放到 github 上,供大家免费查阅。</ p >
331338< p > 如果你觉得文字内容或者视频内容有错误,欢迎在 github 上提 issue 讨论,我会修正相关内容,防止产生误导。</ p >
332- < h2 id ="_17 "> 本电子书制作和写作方式</ h2 >
339+ < h2 id ="_18 "> 本电子书制作和写作方式</ h2 >
333340< p > 使用 mkdocs 和 markdown 构建,使用 Python-Markdown-Math 完成数学公式</ p >
334341< p > 安装依赖:</ p >
335342< pre > < code class ="sh "> pip install mkdocs # 制作电子书
@@ -338,8 +345,9 @@ <h2 id="_17">本电子书制作和写作方式</h2>
338345</ code > </ pre >
339346
340347< p > 编写并查看:</ p >
341- < pre > < code class ="sh "> mkdocs serve # 修改自动更新,http://localhost:8000 访问
348+ < pre > < code class ="sh "> mkdocs serve # 修改自动更新,浏览器打开 http://localhost:8000 访问
342349# 数学公式参考 https://www.zybuluo.com/codeep/note/163962
350+ mkdocs gh-deploy # 部署到自己的 github pages
343351</ code > </ pre >
344352
345353< p > 您的打赏就是我写作的最大动力,呵呵哒!
@@ -396,5 +404,5 @@ <h2 id="_17">本电子书制作和写作方式</h2>
396404
397405<!--
398406MkDocs version : 0.17.3
399- Build Date UTC : 2018-04-26 00:35:57
407+ Build Date UTC : 2018-04-26 12:21:47
400408-->
0 commit comments