Ask HN: Best way to learn async development?

9 points by staticautomatic ↗ HN
I'm a relatively novice Python developer. I've dabbled in multithreading and multiprocessing, and am trying to learn more about single threaded async coding. I tend to learn by trying, and my test project is an asynchronous web scraper that doesn't block the i/o thread when parsing.

However, the combination of learning about generators, futures, callbacks, coroutines, and event loops sort of all at once is making my head swim. There are lots of moving parts, and fundamentals I just don't get, like how to run a callback function outside of an event loop, or what the hell is actually happening when I call a coroutine from another coroutine.

Can anyone share any particularly good resources on learning the fundamentals of async development, the kind of thing that explains how all these things fit together and work at a basic level?

4 comments

[ 3.4 ms ] story [ 16.5 ms ] thread
(comment deleted)
I would recommend this 22-part tutorial on async concepts:

http://krondo.com/?p=1209

It uses Python's Twisted framework. You don't need to use this for your development, but I would recommend working through and understanding the tutorial. Once you get the concepts, you'll be able to apply them to other libraries/concepts.

Very nice and clear. I really like the diagrams on the first page.