I started working with Python around version 3.3, which predates the addition of asynchronous features into the language’s standard library. Asynchronous programming in Python has come a long way since then; it is now a well-established feature of the language.
I first wrestled with async on an Amtrak train, on my way home from the Code4Lib conference in 2018. I remember it being a bit daunting. For me, the transition to an asynchronous mindset was made easier by starting with trio, an aysnc library with metaphors that are – in my opinion – much simpler than those used by the more common asyncio library.
The value of async is that unlocks some programming problems that would not otherwise be solvable in a reasonable amount of time. For example, do you have a lot of requests to make across the network all at once? Async will make that way faster for you than waiting on each request to finish synchronously. It’s a valuable tool in the Python programmer’s toolkit. If you have not had a chance to dive into this yet, I encourage you to give it a try!