SIGN IN SIGN UP

Practical Python Programming (course by @dabeaz)

0 0 0 Python
2020-05-27 18:20:21 -05:00
# Welcome!
2020-05-24 15:06:01 -05:00
2022-11-26 09:29:04 -06:00
When I first learned Python nearly 27 years ago, I was immediately
2020-05-27 18:20:21 -05:00
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
2020-05-27 17:44:22 -05:00
in-person groups since 2007. Traders, systems admins, astronomers,
2020-05-29 06:54:08 -05:00
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
2023-02-27 11:07:22 -06:00
pleased to make it available under a Creative Commons license--completely
free of spam, signups, and other nonsense. Enjoy!
2020-06-19 21:00:59 -05:00
[GitHub Pages](https://dabeaz-course.github.io/practical-python) | [GitHub Repo](https://github.com/dabeaz-course/practical-python).
2020-05-24 15:06:01 -05:00
2023-02-27 11:07:22 -06:00
--David Beazley ([https://dabeaz.com](https://dabeaz.com)), [@dabeaz](https://mastodon.social/@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](https://www.dabeaz.com/advprog.html))
2020-05-24 15:06:01 -05:00
2020-05-29 04:24:42 -05:00
## What is This?
2020-05-24 15:06:01 -05:00
2020-05-28 18:12:20 -05:00
The material you see here is the heart of an instructor-led Python
2020-05-29 04:24:42 -05:00
training course used for corporate training and professional
2022-12-11 07:19:57 -06:00
development. It was in continual development from 2007 to 2019 and
2020-05-29 04:50:02 -05:00
battle tested in real-world classrooms. Usually, it's taught
in-person over the span of three or four days--requiring approximately
2020-05-29 06:49:44 -05:00
25-35 hours of intense work. This includes the completion of
approximately 130 hands-on coding exercises.
2020-05-29 04:24:42 -05:00
## Target Audience
2020-05-24 15:06:01 -05:00
2020-05-29 04:42:23 -05:00
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.
2020-05-24 15:06:01 -05:00
2020-05-29 04:24:42 -05:00
## Course Objectives
2020-05-27 17:44:22 -05:00
The goal of this course is to cover foundational aspects of Python
2022-12-11 07:19:57 -06:00
programming with an emphasis on script writing, basic data manipulation, and
2020-05-29 04:42:23 -05:00
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.
2020-05-29 04:24:42 -05:00
## Requirements
2020-05-24 15:06:01 -05:00
2020-05-28 18:12:20 -05:00
To complete this course, you need nothing more than a basic
2020-05-29 04:42:23 -05:00
installation of Python 3.6 or newer and time to work on it.
2020-05-24 15:06:01 -05:00
2020-05-27 17:44:22 -05:00
## What This Course is Not
2020-05-24 15:06:01 -05:00
2020-05-27 17:44:22 -05:00
This is not a course for absolute beginners on how to program a
computer. It is assumed that you already have programming experience
2020-05-29 04:24:42 -05:00
in some other programming language or Python itself.
2020-05-24 15:06:01 -05:00
2020-05-29 06:45:48 -05:00
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
2020-05-29 19:31:27 +05:30
some interesting acts--just nothing involving animals.
2020-05-29 06:45:48 -05:00
2022-12-11 07:19:57 -06:00
This is not a course on using tools that happen to be written
in Python. It's about learning the core Python language.
2020-05-27 17:44:22 -05:00
This is not a course for software engineers on how to write or
2020-05-29 04:42:23 -05:00
maintain a one-million line Python application. I don't write programs
2020-05-29 04:24:42 -05:00
like that, nor do most companies who use Python, and neither should
2020-05-29 19:31:27 +05:30
you. Delete something already!
2020-05-24 15:06:01 -05:00
2020-05-27 17:44:22 -05:00
## Take me to the Course Already!
2020-05-24 15:06:01 -05:00
2020-05-29 19:31:27 +05:30
Ok, ok. Point your browser [HERE](Notes/Contents.md)!
2020-05-24 15:06:01 -05:00
2020-05-27 19:44:37 -05:00
## Community Discussion
2025-12-22 13:51:27 -06:00
Want to discuss the course? Feel free to use [GitHub Discussions](https://github.com/dabeaz-course/practical-python/discussions).
I can't promise an individual response, but perhaps others can jump in to help.
2020-05-27 19:44:37 -05:00
2020-05-27 17:44:22 -05:00
## Acknowledgements
Llorenç Muntaner was instrumental in converting the course content from
Apple Keynote to the online structure that you see here.
Various instructors have presented this course at one time or another
over the last 12 years. This includes (in alphabetical order): Ned
Batchelder, Juan Pablo Claude, Mark Fenner, Michael Foord, Matt
Harrison, Raymond Hettinger, Daniel Klein, Travis Oliphant, James
Powell, Michael Selik, Hugo Shi, Ian Stokes-Rees, Yarko Tymciurak,
Bryan Van de ven, Peter Wang, and Mark Wiebe.
I'd also like to thank the thousands of students who have taken this
course and contributed to its success with their feedback and
discussion.
2020-05-27 19:39:09 -05:00
## Questions and Answers
2020-05-28 18:12:20 -05:00
### Q: Are there course videos I can watch?
No. This course is about you writing Python code, not watching someone else.
2020-05-27 19:39:09 -05:00
### Q: How is this course licensed?
2020-05-29 19:31:27 +05:30
Practical Python Programming is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
2020-05-27 19:39:09 -05:00
### Q: May I use this material to teach my own Python course?
Yes, as long as appropriate attribution is given.
### Q: May I make derivative works?
Yes, as long as such works carry the same license terms and provide attribution.
2020-05-31 07:55:05 -05:00
### Q: Can I translate this to another language?
Yes, that would be awesome. Send me a link when you're done.
### Q: Can I live-stream the course or make a video?
Yes, go for it! You'll probably learn a lot of Python doing that.
2020-05-29 06:54:08 -05:00
### Q: Why wasn't topic X covered?
2020-05-29 07:35:47 -05:00
There is only so much material that you can cover in 3-4 days. If
2020-05-29 06:54:08 -05:00
it wasn't covered, it was probably because it was once covered and it
caused everyone's head to explode or there was never enough time to
2020-05-31 07:55:05 -05:00
cover it in the first place. Also, this is a course, not a Python
reference manual.
2020-05-29 06:54:08 -05:00
2022-12-11 07:19:57 -06:00
### Q: Why isn't awesome `{command}` in awesome `{tool}` covered?
The focus of this course is on learning the core Python language,
not learning the names of commands in tools.
### Q: Is this course being maintained or updated?
2023-02-27 11:07:22 -06:00
This course represents a "finished product" that was taught and
developed for more than decade. I have no plans to significantly
revise the material at this time, but will occasionally fix bugs and
add clarification.
2022-12-11 07:19:57 -06:00
2020-05-28 18:12:20 -05:00
### Q: Do you accept pull requests?
2020-05-27 19:39:09 -05:00
2020-05-31 07:55:05 -05:00
Bug reports are appreciated and may be filed through the
[issue tracker](https://github.com/dabeaz-course/practical-python/issues).
Pull requests are not accepted except by invitation. Please file an issue first.
2020-05-27 20:14:07 -05:00