The Unbearable Lightness of Coding

The Unbearable Lightness of Coding

This course is about advanced Python programming: from subjects as basic as assignment, conditionals and loops (you'd be surprised how much there's to say), through functions and objects, to descriptors and metaclasses, including Python internals, performance, and software design. Master Python for real, inside out!

Duration

4 weeks, 24 hours in total

Times

Two evening classes a week

Team size

Up to 10 people in a group

Price

3,500 ₪

Cool — I'll ping you when it's on!

Curriculum

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!

Testimonials

Incredible course, both pedagogically and professionally. I was very impressed with Dan's deep knowledge of Python in particular, and software in general.
Intel
The teacher was excellent, super professional! The course and the materials were top notch: not just a "syntax" course, but Python under the hood, which is much harder to learn on your own.
RAD
This is definitely the best course I have taken. Thanks for the experience!!!
Tel Aviv University
Great course! Although I had previous knowledge — I've learned a lot!
Tel Aviv University
Cool — I'll ping you when it's on!

Scholarship

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.