My favourite Python resources
Here, you'll find my handpicked list of the most valuable Python resources I've encountered in my time writing Python. I've used all these resources or gotten some value from them.
Enjoy!
Video
-
Corey Schafer - A great place to start if you're a beginner. Corey covers the basics of the language as well as topics applicable to more structured development, including IDE setup, virtual environments, pip package management, unit testing, and more.
-
ArjanCodes - Arjan focuses on software construction and design through Python. The channel has a practical theme and covers many post-Python topics, including development workflows, deployment, and automation. A highlight is the code roast of a Data Science project, which details many valuable ideas for writing Data Science-style code.
-
James Powell: So you want to be a Python expert? | PyData Seattle 2017 - An excellent and lengthy deep dive into Python, exploring how to think about the language, its ideas, patterns, and approaches to problems. It's movie-length but well worth the watch.
-
Stop Writing Classes - A thought-provoking talk that discusses the use of Classes, their overuse, and alternatives.
-
CodeAesthetic - Not a Python-specific channel but a high-quality resource on making your code easier to work with, or more 'aesthetic'. Although the total number of videos is small, each video provides a clear idea that will make your code better. Be sure to check out the video on Dependency Injection.
On the Web
-
Trey Hunner - Trey's clear and concise articles help explain many of Python's key features and how to use them. A favorite is the guide to looping, which finally cleared up the difference between an iterator and an iterable!
-
The Hitchhiker's Guide to Python - An opinionated, community-driven, evolving collection of Python guidelines and best practices. If you want guidelines on structuring a project, logging, or how to publish your code, then this is the perfect resource.
-
Full Stack Python - Similar to the Hitchhikers Guide, Full Stack Python is an extensive compilation of resources focussed on building Python-based applications.
-
Python 3 Module of the Week - A detailed guide on using the Python 3 standard library modules. Where the standard library docs explain the details of a module, PyMOTW3 explains how to use the module.
-
Python Design Patterns - An interesting look at the Gang of Four's famous Design Patterns and their application in Python.
-
Function Composition in Python, Mathieu Larose - How to perform this interesting Functional Programming technique in Python.
-
Idiomatic Python: EAFP versus LBYL - A great explainer of this key Python concept by Brett Cannon, developer lead on the Python VSCode extension and core Python developer.
-
Numpy Docstrings style guide - My preferred style of Docstrings.
-
Fluent Python, Luciano Ramalho - A book that will take your Python to another level. It's not for beginner practitioners but is aimed more at intermediates who want to develop a deeper understanding of the language. Each chapter contains valuable information for the practitioner to write better Python. Highlights include the opening chapter on the Python Data Model, and as a professional who frequently uses REST APIs, the two chapters on Concurrency.
-
Code Complete, Steve McConnell - Not a Python-specific book but a timeless treasure trove on authoring code and software construction. While its intended audience is software engineers, many concepts and ideas are helpful for data professionals who also need to write and manage code. The book outlines naming, layout, control flow, maintenance, quality, and other considerations. First written in 1993, the book's content is as relevant as ever.