原文链接: Python 学习路线(2022)
前几天整理了一份 Go 学习路线(2022),广受好评。那么趁火打劫,不是,是趁热打铁,又整理了一份 Python 学习路线。
内容依然是从入门到进阶,既有教程,也有经典书籍推荐,还有实战开源项目。
Python 的发展方向还是挺多的,比如服务端开发,爬虫,数据分析,机器学习等,本文推荐的内容全部是服务端开发,Web 开发方向。
主要分为以下几个部分:
- 文档教程
- 书籍推荐
- Web 开发
- 开源项目
- 实用工具
- 技术社区和博客
文档教程
Python 官方文档
网站地址: https://docs.python.org/zh-cn/3/
Python 的官方文档,支持简体中文语言,可以切换 Python 版本,根据不同版本看对应的内容,包括教程,标准库,安装使用等。有什么能比官方文档更好呢?
廖雪峰 Python 教程
网站地址: https://www.liaoxuefeng.com/wiki/1016959663602400
很多程序员对廖雪峰这个名字应该并不陌生,对他的个人网站应该也不陌生。这个 Python 教程对于编程新手非常友好,内容基础,全面,而且还有完整的示例。
其实,从阅读量也能看得出来,这个教程真的很多人读。
菜鸟教程 – Python 基础教程
网站地址: https://www.runoob.com/python/python-tutorial.html
这个网站就不需要多介绍了吧,很多编程语言的入门教程都可以在这里找到。平时写代码过程中,某个知识点忘了,也可以到这里查。
The Hitchhiker’s Guide to Python
网站地址: https://docs.python-guide.org/
这是一份新手和进阶人员都可以读的教程,内容从安装,虚拟环境搭建开始讲起,然后介绍 Python 最佳实践和实战,比如如何构建项目,网络开发,Web 开发等。
现在已经出实体书了,不过,我觉得看这份教程也足够了。毕竟,白漂就是爽。
learn-python
网站地址: https://github.com/trekhleb/learn-python
一份以代码和注释方式讲解 Python 的免费教程。
每段 Python 程序都会按不同主题进行分类,而且每个基础语法和知识点都采用可以运行的代码为例进行讲解,再配上适当的注释和参考资料,让你快速上手。
书籍推荐
授人以鱼不如授人以渔,首先推荐一个网站:
网站地址: https://pythonbooks.org/
这是一个专门推荐 Python 书籍的网站,会按照书籍的流行度来排名,并且按不同功能进行分组。比如说入门书籍,进阶书籍,或者 Web 开发类书籍,机器学习类书籍等。
网站内容是每个月更新一次,闲暇时间的话可以来逛一逛,然后根据自己的水平和学习方向来选择书籍,还是挺不错的。
下面介绍我推荐的书籍,虽然分了入门和进阶,但是很多书中这两部分内容是都包含了的。大家看的时候可以根据自己的情况,先打好基础,再进行进阶。
入门
《Python编程:从入门到实践(第2版)》
本书是一本非常基础的 Python 入门书,手把手教,编程小白都能看得懂。
全书分两部分:
第一部分介绍 Python 编程所必须了解的基本概念,包括 matplotlib、NumPy 和 Pygal 等强大的 Python 库和工具,以及列表、字典、
if
语句、类、文件与异常、代码测试等内容;
第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的 Python 2D 游戏开发,如何利用数据生成交互式的信息图,以及创建和定制简单的 Web 应用,并帮读者解决常见编程问题和困惑。
《"笨办法"学Python 3》
本书是一本 Python 入门书籍,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。
这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。
《Python基础教程(第3版)》
久负盛名的 Python 入门经典,中文版累计销量 20+ 万册,这一版是针对 Python3 的全新升级。
本书包括 Python 程序设计的方方面面:
首先,从 Python 的安装开始,随后介绍了 Python 的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句。
然后,循序渐进地介绍了一些相对高级的主题,包括抽象、异常、魔法方法、属性、迭代器。
此后,探讨了如何将 Python 与数据库、网络、C 语言等工具结合使用,从而发挥出 Python 的强大功能,同时介绍了 Python 程序测试、打包、发布等知识。
最后,作者结合前面讲述的内容,按照实际项目开发的步骤向读者介绍了10个具有实际意义的Python项目的开发过程。
《Python学习手册(第4版)》
这本书全面、深入地介绍了 Python 语言,不管你是编程新手还是 Python 初学者,它将帮助你快速实现使用 Python 编写高质量,且易于与其他语言和工具集成的代码。
本书每一章都是关于 Python 语言独立的内容,并且带有练习和测试,还有众多带注释的示例和图表,简单易学,适合入门。
《Python Cookbook 中文版(第 3 版)》
本书覆盖了 Python 应用中的很多常见问题,并提出了通用的解决方案,写作的套路就是,先提出问题,再来解决。书中包含了大量实用的编程技巧和示例代码,并在 Python 3.3 环境下进行了测试,可以很方便地应用到实际项目中去。
非常适合具有一定编程基础的Python程序员阅读参考。
进阶
《Python核心编程(第 3 版)》
本书是经典畅销图书《Python核心编程(第二版)》的全新升级版本。作者根据 Python 3.0 版本的种种变化,全面改写了书中内容。
整体章节编排来看,涉及的知识点比较多,内容也比较杂,包括网络编程,GUI 编程,数据库编程等,适合有一定编程经验的人,针对特定需求进行阅读。
《深入理解Python特性》
对语言了解的越多,用起来就越顺,本书只有不到 200 页,这在技术书籍里是很少见的,可以作为《流畅的Python》的开胃菜。
这本书将通过简单的示例和分步说明来介绍 Python 的最佳实践以及 Python 代码的强大魅力。借助本书,你将专注于真正重要的实践技能,在 Python 的标准库中发现「隐藏的金子」。
《流畅的Python》
本书由奋战在 Python 开发一线近 20 年的 Luciano Ramalho 执笔,Victor Stinner、Alex Martelli 等 Python 大咖担纲技术审稿人,从语言设计层面剖析编程细节,教你写出风格地道的 Python 代码。
对于想要扩充知识的中级和高级 Python 程序员来说,这本书是充满了实用编程技巧的宝藏。
《Effective Python:编写高质量 Python 代码的59个有效方法》
很薄的一本书,但看过之后一定会大有收获。
用 Python 编写程序是相当容易的,但若想掌握 Python 所特有的优势、魅力和表达能力,则相当困难,而且语言中还有很多隐藏的陷阱,容易令开发者犯错。
本书可以帮你掌握真正的 Pythonic 编程方式,令你能够完全发挥出 Python 语言的强大功能,并写出健壮而高效的代码
《Python高手之路》
本书是偏向于工程实践的一本书,作者分享了很多个人的实战开发经验。
从如何开始一个新的项目讲起,首先是整个项目的结构设计,对模块和库的管理,如何编写文档,进而讲到如何分发,以及如何通过虚拟环境对项目进行测试。
此外,还涉及了很多高级主题,如性能优化、插件化结构的设计与架构等。
Web 开发
提到 Python 的 Web 框架,第一反应就是老三样,Django,Flask 和 Tornado。如果按流行度来排名的话,应该也是这个顺序。
在 2016 年,发布了一款 Web 框架,叫 Sanic,表现还不错,应该算是后起之秀。
Django
项目地址: https://github.com/django/django
Python 中最流行的 Web 框架,功能非常全面,像安全认证,URL Routing,模板引擎,ORM,甚至 Admin 管理后台,全部包括。
Flask
项目地址: https://github.com/pallets/flask
也是非常流行的一个 Web 框架,它的特定是轻便,灵活,可定制性强。
用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时,实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。
Bottle
项目地址: https://github.com/bottlepy/bottle
一个简单高效的遵循 WSGI 的微型 Web 框架。说微型,是因为它只有一个文件,除 Python 标准库外,它不依赖于任何第三方模块。
这个框架使用的比较少,不过源码也很少,如果想读源码的话,从它入手倒是一个不错的选择
Tornado
项目地址: https://github.com/tornadoweb/tornado
Tornado 是一个基于 Python 的 Web 服务框架和异步网络库,通过利用非阻塞网络 I/O, 可以承载成千上万的活动连接。在需要长连接的场景下使用,效果会更好。
Sanic
项目地址: https://github.com/sanic-org/sanic
2016 年 5 月发布的第一个版本,整体表现还是不错的,使用的人也越来越多。
Sanic 是 Python3.7+ Web 服务器和 Web 框架,旨在提高性能。它允许使用 Python3.5 中添加的
async/await
语法,可以使代码有效的避免阻塞从而达到提升响应速度的目的。
开源项目
阅读开源项目对提高编程水平是很有帮助的,下面推荐的开源项目有的是我读过的,有的是正准备读的。
说实话,有的时候看到好的开源项目会非常自卑,为什么人家就能写出那么优雅的代码,而自己写的是如此垃圾。可能这就是程序员成长的必经之路吧。
alive-progress
项目地址: https://github.com/rsalmei/alive-progress
一个用 Python 实现的非常炫酷的进度条项目。
python-patterns
项目地址: https://github.com/faif/python-patterns
使用 Python 实现一些设计模式的例子。
学语言的同时可以学习一些设计模式,在开发过程中使用恰当的设计模式,可以使自己的代码更加优雅。
peewee
项目地址: https://github.com/coleifer/peewee
Peewee 是一个小型的 ORM 项目,整体规模不大,更容易学习。
如果想看 Django 源码,不妨从 Peewee 入手。
flask-sqlalchemy
项目地址: https://github.com/pallets/flask-sqlalchemy
Flask-SQLAlchemy 是一 个Flask 扩展,简化了在 Flask 程序中使用 SQLAlchemy 的操作。
awesome-django-cn
项目地址: https://github.com/haiiiiiyun/awesome-django-cn
又看到 awesome 了,这个项目收集了大量 Django 相关的优秀应用、项目等资源,方便 Django 用户参考查阅。
500lines
项目地址: https://github.com/aosabook/500lines
这真的是一本神书,在网上也有很多人推荐。它包含了十几个不同章节,比如 ci,crawler,ocr 等,每个章节都由该领域大牛完成。
它的厉害之处就在于每个章节都试图用 500 行,甚至更少的代码去实现相应功能。如果仔细研究各个章节的代码,一定会对 Python 有更深刻的理解。
requests
项目地址: https://github.com/psf/requests
Kenneth Reitz 大神的成名之作,如果想读 Python 源码的话,那一定要看,感受一下什么是真正的 Pythonic 代码。
在这里再推荐一份 Requests 源码阅读清单,可以作为参考。
https://github.com/wangshunping/read_requests
awesome-python
网站地址: https://github.com/vinta/awesome-python
跟大家分享一个小技巧,看到项目名中带有 awesome,那说明这个项目一定不简单。
awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。
看过这个项目,那一定会感叹,知识太多了,根本学不完。
实用工具
Python Tutor
网站地址: http://www.pythontutor.com/
Python Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。
通过这个工具,可以直接在 Web 浏览器中编写 Python 代码,并逐步可视化地运行程序。
如果你不知道代码在内存中是如何运行的,不妨把它拷贝到 Tutor 里可视化执行一遍,加深理解。
在这篇文章 一个关于 += 的谜题 中有过这个工具的使用。
IPython
网站地址: https://ipython.org/
IPython 是一个 for Humans 的 Python 交互式 shell,用了它之后你就不想再用自带的 Python shell 了。
IPython 支持变量自动补全,自动缩进,内置了许多实用功能和函数,同时它也是科学计算和交互可视化的最佳平台。
online-python
网站地址: https://www.online-python.com/
这个没什么可说的,在线编辑和运行代码。
技术社区和博客
- Python 之禅
- Python 之美
- Planet Python
- Armin Ronacher\’s Thoughts and Writings
学习编程并不是一蹴而就,而是需要长期的坚持和训练。整理这份学习路线,是希望和大家共同进步。不管是编程新手,还是需要进阶的有一定经验的程序员,我相信都可以从中有所收获。
文中涉及到的资源和思维导图源文件都在 GitHub 开源了,大家可以自取。
以上就是本文的全部内容,如果觉得还不错的话,欢迎点赞,转发,和关注,我们下期再见。
推荐阅读:
- Go 学习路线(2022)
- https://github.com/yongxinz/tech-blog