The best way to learn Python is not always courses


Here’s a concise resource to learn the basics of Python quickly: https://docs.python.org/3/tutorial/. It’s official, concise, and covers some major aspects. It also spends less than 5 minutes on if and for statements, as opposed to devoting hours to them. (If you read this post till the end, I’ll show you another invaluable and lesser known resource for learning specific language features of Python in detail.)

My suggestion for going through the Python Tutorial above is to read the first 5 chapters, from “Whetting Your Appetite” to “Data Structures” in one go. You may not may not understand a few things, but that’s okay. At least make note of things that you do. Then, be more meticulous in the 2nd pass, and then some more in the 3rd, etc.

Knowledge is like a network, you have to make multiple passes over the material to start making your own connections, similar to how algorithms like PageRank converge. (Now that might be a good motivation to go look up PageRank if you’ve never done so in detail)

Free, detailed, before-date guides for Python language features

Consider “assignment expressions,” a feature slated for 3.8. How do you learn it? Why was it introduced? How will it benefit you or other programmers? How will it ultimately save your time?

You have two options to answer those questions. Either wait for your favourite blogger or YouTuber, or just go and read the PEP: https://www.python.org/dev/peps/pep-0572/. A PEP is a Python Enhancement Proposal. You can see an index of it here: https://www.python.org/dev/peps/.

This is where the proposer argues why this feature is needed, and how it will improve or ease the programmer’s efforts. This is the most direct source of answers for all the questions above.

In conclusion

Use the Python Tutorial to learn the basics, and use the PEP to get a deeper understanding and keep yourself updated. Software engineering is not always about just code, and PEP might give you the additional useful context.