Python developers can choose from a great variety of learning resources. But sifting through all the books, tutorials, and courses can be difficult if you're looking for something particular.
For example, it doesn't make sense to delve into Python web development if what you want to learn is data visualization. In general, it's a good idea to combine highly-specialized resources with more general ones that help to put all that narrow knowledge in context.
If you're a beginner software developer and want to try your hand at Python, check out this list of the best Python tutorials and learning materials for newbies.
But what if you're a seasoned developer who wants to switch to Python? Or an intermediate-level Pythonista looking to boost your skills? Don't worry, we've got you covered.
Here are 14 Python resources dedicated to more advanced Python developers.
Expert Python Programming is a book that explores the best practices in Python development, focusing on the needs of more advanced Pythonistas. It covers topics such as decorators (with case studies of caching, context manager, and proxy), super() and meta-programming, method resolution order, and a host of general PEP8 best practices. The strength of this book is its multi-chapter case study on writing and releasing a package and, eventually, an application. You'll also find useful tips about best practices like test-driven development, version control, and profiling.
This book is rich with proven and battle-tested Python best practices illustrated by simple examples. It shows how to write better Python code in a step-by-step narrative. The work also serves as a great introduction to intermediate and advanced-level Python with in-depth, practical examples.
This book gives an overview of many basic machine learning and data mining methods. The focus isn't on maths, but on explaining the underlying logic to show how to implement the algorithms in Python. Each of them is described clearly, with the code you can use immediately. It covers topics like collaborative filtering techniques, search engine features (crawlers, indexers, query engines), optimization algorithms, Bayesian filtering, and more.
According to the publisher, “Effective Python will prepare you to make a big impact with Python.” It’s hard to say whether that's true, but one thing is certain: the book does help in writing better Python code. It features 59 specific ways to improve your Python skills. It's a short work but gives sufficient introduction to some of the most common adaptations developers need to make to become intermediate-level Pythonistas.
This book focuses on numerical methods and how to implement them in Python. It covers topics like solving equations, interpolation and data fitting, as well as differential equations, eigenvalue problems, and optimization. The algorithms are implemented in Python 3. All the methods presented in the book feature programs showing how the code is used to solve specific problems.
This is an excellent pick for intermediate to advanced Pythonistas looking to understand how this incredibly versatile language works – and why. The book includes all of this and then shows how to use that knowledge to take your Python coding skills to the next level. The advantage of this book is that it explores features usually left to experimentation, allowing developers to become more creative in their daily problem-solving. Pro Python also helps to develop new programming techniques and approaches.
The idea behind this book is teaching Python programming by using examples from mathematics, natural sciences, and finance. But ultimately, its primary focus on the thinking process behind programming. It's based on detailed case studies where the author defines the problem from biology, physics or another discipline and then explains how to solve it with a corresponding program. The book features a lot of theory, but it's always introduced through examples. Verification and finding errors are prioritized here. You can get the PDF of the book here.
Another great learning material for advanced Pythonistas looking to hone their coding skills. It covers a wide range of data structures and algorithms, with all the concepts illustrated in Python. The book also includes interactive samples you can run directly in the browser. You can find it here.
This video helps developers to take advantage of Python's best features and improve existing code through a series of code transformations by following this formula: “When you see this, do that instead.” It covers a lot of issues, just check out the table of contents under this link. Also, you can find the notes and code from the video here.
This is a complete, top-to-bottom resource for web development using Python. It basically contains everything you need to create, deploy and operate Python-powered web applications: from setting up a web server and designing the frontend to picking a database and optimizing/scaling, and many other things. Have a look at the table of contents to see the breadth of this resource.
This is actually a collection of blog posts written by Rafe Kettler where he explains the “magic methods” in Python. Magic methods are special methods that can make classes and objects behave in different and totally magical ways. You can spot a magic method by its double underscores (for example, init). The problem with magic methods was that they were never adequately documented or organized until this series appeared on the web. You can find a PDF of this guide here.
This is a series of articles that demonstrate the modules in the Python 3 standards library. It includes modules divided into categories like text, data structures, algorithms, dates and times, the file system, data persistence and exchange, mathematics, cryptography, and many more. A great resource for learning more about Python modules.
We also encourage you to check out the 30 python built-in modules we described in one of our articles.
This invite-only online community of Pythonistas is an excellent source of knowledge. It basically brings together people who want to help each other grow as software developers. You'll find lots of answers to programming questions, but also career advice and discussions on other Python-related topics.
R/learnpython subreddit’s wiki14.
This wiki is dedicated to newbies, but it features a great selection of resources that might come in handy to more seasoned developers too. It includes a list of helpful tools for learning Python, places where developers can start working on open-source projects, and a selection of online videos and lectures.
At Sunscrapers, we believe that developers need to invest in professional development regardless of their level.
We make sure that our development teams grow by equipping them with a “growth budget” they can use to buy books, participate in conferences, or take courses.
Want to work in a team that focuses on professional growth? Join us - we're hiring!