数据结构和算法是每个程序员需要掌握的基础知识之一,也是面试中跨不过的槛。目前关于 Python 算法和数据结构的中文资料比较欠缺,
笔者尝试录制视频教程帮助 Python 初学者掌握常用算法和数据结构,提升开发技能。
本教程是付费教程(文字内容和代码免费),因为笔者录制的过程中除了购买软件、手写板等硬件之外,业余需要花费很多时间和精力来录制视频、查资料、编写课件和代码,养家糊口不容易,希望大家体谅。
https://github.com/PegasusWang/python_data_structures_and_algorithms
Python数据结构与算法教程 - 网易云课堂
网上阅读《Python 算法与数据结构教程 》
github 链接
Python 数据结构与算法视频教程
痛点
目前就职于知乎,从实习期间接触 Python 起一直从事 Python 网站后端开发,有一定 Python 的使用和实践经验。
知乎专栏:
电子书:《Python web 入坑指南》
包括我们在业务开发和面试中常用的算法和数据结构,希望可以帮助新人快速上手,很多老手写业务代码写多了很多基础知识忘记了,
也可以作为回顾。课程尽量用通俗的方式讲解,结合 python 语言和日常开发实践的经验,让没有太多基础和非科班的同学也能够理解。
对于每个算法和用到的数据结构我们需要知道:
这里讲解的章节我参考了下边教材中列举的一些书籍,并且自己设计了大纲,争取做到循序渐进。因为实现一些高级数据结构的时候会用到
很多底层数据结构,防止跳跃太大导致读者理解困难。
课程的目录结构如下,每一章都有配套的文字讲义(markdown),示例代码,视频讲解,详细的讲解一般会放在视频里,使用手写板来
进行板书,包括文字、图示、手动模拟算法过程等。
我们这里使用最近很火的Python。Python 入门简单而且是个多面手,在爬虫、web 后端、运维、数据分析、AI 方面领域都有 Python 的身影。
知乎、豆瓣、头条、饿了么、搜狐等公司都有广泛使用 Python。笔者日常工作使用也是 Python,有一定实践经验,
在知乎上维护了一个专栏《Python 学习之路》。
Python 抽象程度比较高, 我们能用更少的代码来实现功能,同时不用像 C/C++ 那样担心内存管理、指针操作等底层问题,
把主要心思放在算法逻辑本身而不是语言细节上,Python 也号称伪代码语言。所有代码示例使用 Python2/3 兼容代码,
不过只在 python3.5 下测试过,推荐用相同版本 Python。
想要学习 Python 算法和数据结构的初、中级同学,包括自学的同学和本科低年级学生等。需要掌握 Python
的基本语法和面向对象编程的一些概念,我们这里只使用最基本的 Python 语法,不会再去介绍用到的 Python 语法糖。
__len__
__contains__
这里我参考过三本书:
《算法图解》: 图解的形式很适合新手,示例使用的是 python
《Data Structures and Algorithms in Python》: 适合对 Python
和算法比较熟悉的同学,或者是有其他语言编程经验的同学。英文版,缺点是书中错误真的很多,代码有些无法运行
《算法导论》: 喜欢数学证明和板砖书的同学可以参考,有很多高级主题。使用伪代码
绘图演示+手写板+现场编码
我将使用绘图软件+手写板进行类似于纸笔形式的讲解,边讲边开个终端分成两个窗口,一个用 vim
编写代码,另一个窗口用来运行代码,所有代码我将会现场编写(还是很有挑战的),不会像某些大学教师一样只喜欢念 ppt。
每个视频我会尽量控制时长,讲的内容尽量通俗易懂,摆脱学院派的授课方式。
你可以参考我在知乎发的专栏文章看下:
那些年,我们一起跪过的算法题[视频]
抱歉,我是开发,你居然让我写单测[视频]
笔者讲课录制视频的过程也是自己再整理和学习的过程,录制视频之前需要参考很多资料
希望对所讲到的内容,你能够
掌握基本的算法和数据结构原理,能独立使用 Python 语言实现,能在日常开发中灵活选用数据结构。
对于找工作的同学提升面试成功率。
推荐使用以下工具进行开发,如果使用编辑器最好装对 应 Python 插件:
输出其实也是一种再学习的过程,中途需要查看大量资料、编写讲义、视频录制、代码编写等,难免有疏漏之处。
有出版社找过笔者想让我出书,一来自己对出书兴趣不大,另外感觉书籍相对视频不够直观,有错误也不能及时修改,打算直接把所有
文字内容讲义放到 github 上,供大家免费查阅。
如果你觉得文字内容或者视频内容有错误,欢迎在 github 上提 issue 讨论,我会修正相关内容,防止产生误导。
使用 mkdocs 和 markdown 构建,使用 Python-Markdown-Math 完成数学公式
安装依赖:
pip install mkdocs # 制作电子书
# https://stackoverflow.com/questions/27882261/mkdocs-and-mathjax/31874157
pip install https://github.com/mitya57/python-markdown-math/archive/master.zip
编写并查看:
mkdocs serve # 修改自动更新,http://localhost:8000 访问
# 数学公式参考 https://www.zybuluo.com/codeep/note/163962