66 lines
2.8 KiB
Markdown
66 lines
2.8 KiB
Markdown
# Practical Python Programming
|
|
|
|
When I first learned Python nearly 25 years ago, I was immediately
|
|
struck by the ease at which I could apply it to all sorts of messy
|
|
work projects. Fast-forward a decade and I found myself teaching
|
|
others the same joy. The result of that teaching is this
|
|
course--material that has been actively taught to more than 400
|
|
in-person groups since 2007. Traders, systems admins, astronomers,
|
|
NASA rocket scientists, and even a few software engineers--they've all
|
|
taken this course. Now, the course is available for free. Enjoy!
|
|
--David Beazley (http://www.dabeaz.com)
|
|
|
|
## Prerequisites and Target Audience
|
|
|
|
The material you see here is the core of an instructor-led Python
|
|
training course. It is typically taught in-person over the span of
|
|
three or four days--requiring approximately 25-30 hours of work. This
|
|
includes the completion of approximately 130 hands on coding exercises.
|
|
|
|
The target audience is 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.
|
|
|
|
The goal of the course is to cover foundational aspects of Python
|
|
programming with an emphasis on script writing, data manipulation, and
|
|
program organization. The course does NOT focus on Python tooling,
|
|
IDEs, or third-party packages (i.e., it's not focused on using data
|
|
science libraries in Jupyter Notebooks or on deploying web apps).
|
|
|
|
To complete this course, you simply need a basic installation of
|
|
Python 3.6 or newer and time--especially the latter.
|
|
|
|
## Table of Contents
|
|
|
|
* [1. Introduction to Python](01_Introduction/00_Overview)
|
|
* [2. Working with Data](02_Working_with_data/00_Overview)
|
|
* [3. Program Organization](03_Program_organization/00_Overview)
|
|
* [4. Classes and Objects](04_Classes_objects/00_Overview)
|
|
* [5. The Inner Workings of Python Objects](05_Object_model/00_Overview)
|
|
* [6. Generators](06_Generators/00_Overview)
|
|
* [7. A Few Advanced Topics](07_Advanced_Topics/00_Overview)
|
|
* [8. Testing, Logging, and Debugging](08_Testing_debugging/00_Overview)
|
|
* [9. Packages](09_Packages/00_Overview)
|
|
|
|
## 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 decade. 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 took this
|
|
course and contributed to its success with their feedback and discussion.
|
|
|
|
|
|
|
|
|
|
|
|
|