4 weeks, 24 hours in total
Two evening classes a week
Up to 10 people in a group
The purpose of this course is to take people who already know some Python — and immerse in it so deep that we start dreaming in it. This not only teaches some extremely valuable, practical tools, but shows how versatile and nuanced these tools can be, if we just bother to understand them.
We'll start with the most basic topic of all: assignment — and quickly discover how much more sophisticated it is, as we try to figure out names and values, scopes and namespaces.
Then, we'll move on to flow control, and talk about conditionals, loops and exceptions. Again, as basic as it sounds — you'd be surprised how nuanced it gets, in both trickery and elegance. We'll talk about how to do it right, and cover less familiar features that can often save the day.
Then we'll get to functions: from fundamental topics such as signatures and invocation, through functional programming, 1st and 2nd order decorators, and straight-up to disassembling functions and modifying their bytecode on the fly. We'll also cover generators, and introduce the concept of the coroutine.
And finally, we'll get to objects: an odyssey of special methods; the truth behind attribute access, methods and descriptions; and a culmination of classes, metaclasses, and advanced metaprogramming techniques.
We'll also talk about modules, packages, and Python's workflow: how to structure a project, how to test it, how to document it — and, more generally, how was it possible for Instagram and Dropbox to build their entire product in Python.
Finally, we'll spend some time talking about Python's (alleged) weak point: performance. We'll start with benchmarking, then optimizations, and eventually — foreign function interfaces, from ctypes, through Cython, to PyPy — until we reach code that's literally faster than C.
This training is quite intensive, and requires a fair amount of work. The students will get access to a wide range of exercises (and solutions), as well as the session recordings. By the end of this course, you'll know the language inside out, and be fully up to date on all the coolest tips n' tricks, ready to make Guido proud!
Knowledge should be free — that's why I publish a lot of my materials online. But seeing as I can't scale my time, I have to charge money for it; and unfortunately, some people don't have the means to participate. So, every course iteration, one spot will be reserved for someone who couldn't have afforded it otherwise.
If you think you qualify, shoot me an email, tell me a bit about yourself, why you're interested in the course, and your situation — and we'll figure something out.