114 lines
4.4 KiB
Markdown
114 lines
4.4 KiB
Markdown
# Welcome!
|
|
|
|
When I first learned Python nearly 25 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 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 freely available under a Creative Commons license. Enjoy!
|
|
|
|
--David Beazley ([https://dabeaz.com](https://dabeaz.com)), [@dabeaz](https://twitter.com/dabeaz)
|
|
|
|
## 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 has been in continual development since 2007 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 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, 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 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 already!
|
|
|
|
## Take me to the Course Already!
|
|
|
|
Ok, ok. Point your browser [HERE](Notes/Contents)!
|
|
|
|
## Community Discussion
|
|
|
|
Want to discuss the course? You can join the conversation on
|
|
[Gitter](https://gitter.im/dabeaz-course/practical-python). I can't
|
|
promise an individual response, but perhaps others can jump in to help.
|
|
|
|
## 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.
|
|
|
|
## Questions and Answers
|
|
|
|
### Q: Are there course videos I can watch?
|
|
|
|
No. This course is about you writing Python code, not watching someone else.
|
|
|
|
### Q: How is this course licensed?
|
|
|
|
Practical Python Programming is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
|
|
|
|
### 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.
|
|
|
|
### Q: Do you accept pull requests?
|
|
|
|
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.
|
|
|