python-mastery README

The project's README from github.com/dabeaz-course/python-mastery. As one markdown file: README.md.

Advanced Python Mastery

A course by David Beazley (https://www.dabeaz.com)
Copyright (C) 2007-2024

Synopsis

An exercise-driven course on Advanced Python Programming that was battle-tested several hundred times on the corporate-training circuit for more than a decade. Written by David Beazley, author of the Python Cookbook, 3rd Edition (O'Reilly) and Python Distilled (Addison-Wesley). Released under a Creative Commons license. Free of ads, tracking, pop-ups, newsletters, and AI.

Everything in this course should work with the latest version of Python, but be aware that the course primarily targets the feature set of Python 3.6. As such, certain modern features don't get coverage. Honestly, this shouldn't affect you much unless you're trying to write code that's freakishly clever.

Target Audience

This course is for Python programmers who want to move beyond short scripts to writing more sophisticated programs. To do that, it helps to better understand the programming techniques used in popular libraries and frameworks. Thus, this course is mainly for programmers who want to build a more complete mental model of the Python language itself and how it works. Ultimately, the goal is to be able to apply this knowledge to your own projects.

Prerequisites

You already know some Python. This is not a course for beginners. For more introductory material, you might consider the Practical Python Programming course.

How to Take the Course

To take the course, you should first fork/clone the GitHub repo to your own machine.

It is assumed that you are working locally in a proper Python development environment. That means a proper installation of Python, an editor/IDE, and whatever other tools that you would normally install to work on Python. Due to the use of multiple files and module imports, the use of Notebooks is not recommended.

The PythonMastery.pdf file contains detailed presentation slides. Course exercises and suggested timings are clearly indicated. You'll want to keep this by your side (I recommend downloading and viewing it with a local PDF viewer). Start here!

The Exercises/ directory has all of the course exercises.

The Solutions/ directory has fully worked out solution code.

The Data/ directory has some datafiles used during the course.

The course was originally taught over 4-5 days in an in-person classroom setting with a mix of lecture and hands-on exercises. Successful completion of the course will likely require 30-50 hours of work. Exercises tend to build upon each other. Solutions are always provided in case you get stuck.

Supplemental Material

The Advanced Python Mastery course often suggested more in-depth tutorials on selected topics. These were presented at the PyCon conference and might be of interest:

Questions and Answers

Q: Are any videos available?

A: No. You will be able to more quickly read the presentation slides which contain technical information. However, the Python Programming Language: LiveLessons video available on O'Reilly's Safari site is closely related to the material in this course.

Q: Can I use these materials in my own course?

A: Yes. I just kindly ask that you give proper attribution.

Q: Do you accept bug reports or pull requests?

A: If you've found a bug, please report it! However, I'm not looking to expand or reorganize the course content with new topics or exercises.

Q: Are the presentation slides available in any format other than PDF?

A: No.

Q: Is there any forum/chat where the course can be discussed?

A: You can use GitHub discussions to discuss the course.

Q: Why wasn't topic/tool/library X covered?

A: The course was designed to be completed in an intense 4-day in-person format. It simply isn't possible to cover absolutely everything. As such, the course is focused primarily on the core Python language, not third party libraries or tooling.

Q: Why aren't features like typing, async, or pattern matching covered?

A: Mainly, it's an issue of calendar timing and scope. Course material was primarily developed pre-pandemic and represents Python as it was at that time. Some topics (e.g., typing or async) are sufficiently complex that they would be better covered on their own in a separate course.

Q: Do you have plans to modernize the course?

A: It is my intention that everything in the course apply to the latest version of Python. Unless Python makes backwards-incompatible changes to the core language, that should hold. Although the course doesn't cover every new features, I won't rule out future changes. A lot depends on my available time and interest however. So, I make no promises.

Q: Why did you release the course?

A: This course was extensively taught pre-pandemic. Post-pandemic, my teaching has shifted towards projects and CS fundamentals. However, why let a good course just languish on my computer?

Q: How can I help?

A: If you like the course, the best way to support it is to tell other people about it.


>>> Advanced Python Mastery
... A course by dabeaz
... Copyright 2007-2023

. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

python-mastery (dabeaz-course/python-mastery)

Searching Database…

这是什么?这是一门免费的 Python 高级编程课程,由 David Beazley 编写,以幻灯片、练习文件和完整答案的形式提供,而不是托管在学习平台上。
这是现场授课,还是我自己学?这是自学课程材料,包括一份 PDF 幻灯片、一个 Exercises/ 目录和一个 Solutions/ 目录。它最初是为 4-5 天的线下课堂设计的,现在向所有人开放,供大家独自学习。
我要怎么学这门课程?Fork 或克隆仓库,打开 PythonMastery.pdf 查看幻灯片和课程节奏指引,然后做 Exercises/ 中的练习;如果卡住了,就去看 Solutions/。
除了安装 Python,我还需要别的东西吗?你需要在本地正确安装 Python,并准备一个编辑器或 IDE。作者明确不建议使用 Jupyter notebook,因为练习涉及多个文件和模块导入。
这门课大概要花多少时间?大约需要预留 30-50 小时。这份材料最初是按 4-5 天的线下课程设计的。
这门课适合 Python 初学者吗?不适合。课程假设你已经懂一些 Python,作者建议初学者改学他的另一门课程 Practical Python Programming。
这门课会讲 typing 或 async 这类较新的 Python 特性吗?不会。课程主要涵盖 Python 3.6 的特性,没有讲 typing、async 和模式匹配,因为作者认为这些主题应该单独开一门课。
有视频讲座吗?没有视频。PDF 幻灯片是获取技术内容最快的方式,不过 O'Reilly 有一套视频系列讲解相关内容。
我能用这份材料来教自己的课吗?可以。作者明确允许你在自己的课程中使用这些材料,但需要注明出处。
这门课还会加入新主题吗?作者没有在主动增加新主题。不过只要 Python 语言保持向后兼容,他打算让这门课继续适配最新版本的 Python。
Size
6.4 MB
Stars
13.4K
Age
3y
Commits · 90 Days