dabeaz-course /practical-python

Practical Python Programming (course by @dabeaz)

★ 10,936⑂ 7,261👁 335⑃ 111● 86▤ 0
10,936
stars
+0+0+38
7,261
forks
335
watchers
111
prs
86
issues
0
releases
–
discussions

README

Welcome!

When I first learned Python nearly 27 years ago, I was immediately
struck by how I could productively apply it to all sorts of messy work
projects. Fast-forward a decade and I found myself teaching others the
same fun.  The result of that teaching is this course--A no-nonsense
treatment of Python that has been actively taught to more than 400
in-person groups since 2007.  Traders, systems admins, astronomers,
tinkerers, and even a few hundred rocket scientists who used Python to
help land a rover on Mars--they've all taken this course. Now, I'm
pleased to make it available under a Creative Commons license--completely
free of spam, signups, and other nonsense. Enjoy!

GitHub Pages | GitHub Repo.

--David Beazley (https://dabeaz.com), @dabeaz

(P.S. This course is about Python. If you want a Python course that's about programming,
you might consider Advanced Programming with Python)

 What is This?

The material you see here is the heart of an instructor-led Python
training course used for corporate training and professional
development. It was in continual development from 2007 to 2019 and
battle tested in real-world classrooms.  Usually, it's taught
in-person over the span of three or four days--requiring approximately
25-35 hours of intense work. This includes the completion of
approximately 130 hands-on coding exercises.

 Target Audience

Students of this course are usually professional scientists,
engineers, and programmers who already have experience in at least one
other programming language. No prior knowledge of Python is required,
but knowledge of common programming topics is assumed.  Most
participants find the course challenging--even if they've already been
doing a bit of Python programming.

 Course Objectives

The goal of this course is to cover foundational aspects of Python
programming with an emphasis on script writing, basic data manipulation, and
program organization.  By the end of this course, students should be
able to start writing useful Python programs on their own or be able
to understand and modify Python code written by their
coworkers.

 Requirements

To complete this course, you need nothing more than a basic
installation of Python 3.6 or newer and time to work on it.

 What This Course is Not

This is not a course for absolute beginners on how to program a
computer.  It is assumed that you already have programming experience
in some other programming language or Python itself.

This is not a course on web development.  That's a different
circus. However, if you stick around for this circus, you'll still see
some interesting acts--just nothing involving animals.

This is not a course on using tools that happen to be written
in Python. It's about learning the core Python language.

This is not a course for software engineers on how to write or
maintain a one-million line Python application. I don't write programs
like that, nor do most companies who use Python, and neither should
you. Delete something alread

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON