While it’s straightforward to get Hello World implemented in Python, learning the ins and outs of the programming language takes a lot of time and effort.
There are so many aspects to consider when conquering a programming language like Python: syntax, built-in functions, performance. Sometimes, a language will make your life easier. Other times, it won’t. Knowing when is useful.
Teaching yourself all of these things is doable, but it can be challenging to find the good stuff that will actually teach you well. Learning the basics of how to write a script in Python is something you can easily do on your own with the help of Stack Overflow, but learning which strategy Python’s dictionaries use to merge will bring your code to the next level. This kind of theoretical information is practically impossible to just stumble upon yourself.
That’s why the best resources for learning Python come straight from the experts. Rather than sitting down and tinkering with some code until it does what you want it to do, you need to gain a big-picture understanding of Python, what makes it tick, and how that can influence your use of it.
To help you learn both the basics and how to take your Python code to the next level, I’ve compiled a variety of resources. Each category has advantages in terms of how you learn best, how fresh the information is, and how accessible the expansion of the information is, so pick whatever works for you!
🔗 Best Books for Learning Python
Yes, much of Python is best learned in front of a computer screen. However, some of the best resources for learning Python take the form of real paper and ink. While sitting down with a book to learn to code may not appeal to you, books are a great way of initially stepping in. Each of these books will give you a great overview of Python and some of its most common uses.
I find having all this information laid out in a logical, organized way for you to digest is the best way to build a framework of knowledge. Everything else you learn can be slotted into the framework you build with books.
This book really takes the cake. It is incredibly thorough, well-written, and specifically targeted at those who are first learning to code. Even experienced programmers will enjoy this read and gain some knowledge. It’s easy to feel frustrated with the learning process, but this book has helped so many people, from curious kids to people looking to change careers.
Swaroop truly composed one of the best resources for learning Python. They claim that “if all you know about computers is how to save text files, then this is the book for you”. It includes all of the basics like data types, data structures, OOP, I/O, exceptions, standard Python library, and basic Python set-up. The book even includes a problem solving section, which is great, since thinking about how to code is just as important as the actual coding.
This book is a condensed, free resource to double-check your doubts, learn about Python-specific data structures and how best to use them, and includes some of the more classic CS curriculum, like input/output and exceptions.
Python is great for writing automation programs, and I often think that can be one of the most motivating reasons to start coding with Python - to eliminate the boring parts of your job!
A simple script which does in seconds what would’ve taken hours is very inspiring when it comes to learning to code.
Al Sweigart makes programming with Python very approachable. The book is free, and the author has several other books that dig deeper into different parts of Python and its uses. The first 9 chapters of the free, online book cover Python basics, and the last 10 walk you through very useful and practical examples of ways you can use Python to make your life easier, like updating, renaming, and moving files and folders in large batches or crawling the web.
These very cool programming challenges really are quite practical. The book walks you through in great detail any libraries or tools you need to download, like openpyxl.
If you don’t already know how to program, I’d recommend this book. It lets you get your feet wet before you dive into the deep end of programming.
This book is handy when it comes to learning how to think about programming, and helps you build that thought pattern. It’s got plenty of code snippets to accompany most theoretical concepts to help you translate the written concept into practical code.
If you’re planning to do a bootcamp or another paid course and you’ve never programmed before, I would highly recommend reading this book first. It brings value to everyone, from beginners to advanced programmers. It’s an easy read and covers a lot of fundamentals.
🔗 Best Courses for Learning Python
Some of the best resources for learning Python are more hands-on. If you’re looking for a more intense learning route, a bootcamp or coding course might work best for you! Though I still recommend reading one of the above books before you dive into a course, courses are great for making you turn your theoretical knowledge and loose ideas into code.
This course checks all the boxes you need it to, covering variables, comparisons, lists and loops, functions, dictionaries, sets, and more. Additionally, this course has lovely little programming activities scattered throughout the content. One of the stand-out aspects of this course is you get instant feedback on the code you’ve written, and if you’re really stuck, you have access to well-written solutions to the problems, so you can learn from the professionals.
Learn Python from boot.dev also gets you access to their active discord community. If you’re hoping to break into the software industry, this community will help you do everything from prepping your resume, finding jobs that fit your skills and interests, and maybe even some mock interviews!
This course really takes it up a notch. They cover some concepts that aren’t included in others on this list, like working with timestamps and understanding decorators. This course also sets you up for a lot of cool mini projects, like creating GUIs using Jupyter notebooks and creating games using Python.
If you liked the simple real-world applications outlined in “Automate the Boring Stuff”, this course will walk you through the code for similar examples like working with PDFs, scraping websites, reading Excel files, and more.
Replete with live coding examples where an instructor steps through the implementation thought process, this course also includes quizzes, homework assignments, and three portfolio projects. Lots of people really enjoy the “code along” sessions, which feel a bit like partner programming, one of my favorite ways to learn from more experienced programmers.
This course is normally $139, but there are often promotions bringing it down to $20-$40. Over 1.5 million students have taken it, and over half of reviewers give it five stars.
This course starts from the ground up, including installation help for any OS. Topics include strings and collections, modularity, objects, resource management, and most notably deployment of Python applications.
Deployment is a much-needed real-world skill when it comes to productive and employable Python coding, which is why it’s so wonderful that this course covers it.
Coming in at $45 per month, this gets you access to this course and all of the other courses hosted on Pluralsight. There are plenty of other Python courses on Pluralsight as well, so once you’ve mastered the basics you can pick out another course to tackle. Solutions Review put together a great short list for the best Python courses on Pluralsight.
🔗 Best Blogs for Learning Python
Blogs have got a bit of a bad rap, but they’re one of the best resources for learning Python because they come from a place of pure, unadulterated passion for Python. The real Pythonistas write blogs.
With most of their content available to the public, blogs are probably the resource I interact with most frequently. I think almost all developers would admit they are deeply grateful for the programming knowledge strangers have graciously shared on the internet.
More than just specific help with a certain exception, programming blogs are wonderful publications that can include everything from an innovative use of existing technology, how-to guides, to walkthroughs of the basics with elaborative examples.
Here are my top three favorite Python blogs.
This blog has been active since 2012, and in the last ten years, it’s produced a plethora of informative material. It’s got tons of very cool application examples, like learning pandas by exploring Covid-19 data and creating cool visuals using open source visualization libraries, and important concepts like how to monitor web applications.
In addition to inspiring tutorials, Full Stack Python also has plenty of blog posts covering basics like basic data types. If you’re looking to dive deep on a certain topic, Full Stack Python can help inform you too. They have a wide variety of in-depth technical guides. Though the examples are very specific, which means less may be applicable to your current problem or interests, if you find one that fits what you’re looking for, these posts are very informative.
Finxter is great when you’re having trouble wrapping your head around some of the more elusive computer science concepts in the context of python, like what static class variables and methods are in Python.
Finxter is a great intermediate blog to spend time combing through. Once you’ve grasped the basics of programming, there are a lot of basic tasks, like how to call an element from a numpy array, which may go just a little over your head, and it’s nice to have a wealth of examples to turn to on Finxter to walk you through how to accomplish your current coding goal.
You’ll also find lots of cool compilations of additional resources that are helpful to the average Python programmer on Finxter, including many what they call “cheat sheets”, which are like condensed syntax or behavior study guides.
There’s also cool applications posts like how to sample a random number from a probability distribution and super useful basics like how to initialize a dictionary with keys.
Having the added bonus of being the blog of the official Python foundation, this blog targets a more advanced or fanatical audience. Dig in here if you’re looking to find out the intricacies behind recent updates and releases. They also have a really detailed beginner’s guide to Python and other cool insider resources.
Here you’ll find lots of interesting Python-specific tidbits in terms of what goes into the Python stdlib, explanations of the latest releases of tools like pip and what their implications are. It is quite technical and advanced, so this blog is less useful for the casual reader.
🔗 Best Communities for Learning Python
Sometimes, the best resources for learning Python come from real people, not resources at all. Reading books, blogs, and watching videos can all be great ways of learning to code with Python, but sometimes it’s nice to join others on this journey. Reach out to join a community of Pythonistas to help you keep your motivation up, get 1:1 coding or career advice, and make some friends with a common interest in coding with Python.
Having a community to turn to to proudly show off your latest prototype, be inspired by the work of others, or get some debugging help can make the coding learning journey more pleasant.
They’ve got lots of free tutorials, from basics to super specific, advanced topics. One thing I really like about RealPython’s content is that they’ve organized their free tutorials into “learning paths,’’ so while the giant list of topics may feel overwhelming, you can read through them in chunks by picking a few learning paths.
They have tons of quizzes, mostly focused on Python fundamentals. A lot of them line up with one of their learning paths. It’s a great way to validate your knowledge acquisition, and they’re free!
You do have to become a paid member to access true community aspects, like office hours and their Slack. Even if you decide the paid route isn’t for you, their free content is really valuable.
PySlackers an open Slack community, and beginners and experts alike are welcome to join.
PySlackers has a very cool assortment of resources covering algorithms, Python essentials, and frameworks like Django, Flask, and FastAPI. They’ve also got a great collection when it comes to testing, which is such a critical part of the software development cycle.
On top of sharing resources, PySlackers also has a collection of community projects ranging from an asynchronous bot framework, an async Slack API library, and their own website. Open source communities like PySlackers with ongoing projects are great ways to get your feet wet, write some code, get feedback, and learn from others in the community.
Python’s official community has a vast collection of sub-communities focused on different goals or technical interests. This collection includes a bunch of chat rooms, Discord servers, newsletters, LinkedIn groups, conferences and more. In addition to useful resources, Python.org also has specific sub-communities based on region, topic, tech stack, and more. They also have official forums in both English and German.
🔗 Wrap-Up on Best Resources for Learning Python
Learning to code with Python is a great way to step into the programming field. If you’re a first-time coder though, it can be quite overwhelming knowing where to start. My recommended strategy for learning to code with Python is to follow the resources I’ve outlined here in order.
Reading a book first is important to put up some Python knowledge scaffolding in your brain.
Once that’s set up, moving on to a course forces you to start typing up some code yourself, while keeping the training wheels on. That’s important to keep making progress and prevent yourself from getting overwhelmed or overly frustrated.
Once you’ve built up some knowledge and gotten some coding in, dive into different blogs to pick up extra knowledge in areas that interest you, get inspired by some cool demos and projects, and get to work on expanding your own portfolio and Python coding skill set.
Communities are the only resource outside this list - join a Python community at any point to enhance your learning journey. You might even meet some people who are a couple steps ahead of you. It’s great to build a coding support system for yourself for both technical and career advice.
Knowing how you learn best is crucial to succeeding with learning to code with Python. If you like structure and deadlines help you focus, signing up for a bootcamp or course could be very helpful. If you don’t have big chunks of time, relying more on communities and asynchronous resources like books and blogs might work better for you. Remember to be patient with yourself and find ways to make coding fun.