Python is quickly becoming one of the most used programming languages, especially outside of software development jobs because of its practical uses for task automation, data science, web portal creation, and more. For example stock traders can use it to isolate strong buys, business people can use it to automate excel and pdf analysis and creation, architects can use python to integrate with tools like Revit for repetitive design tasks, and the list goes on. Because of all of these new applications of programming that can be done with a simple high-level language such as Python the Python tutorial space is exploding and it is easy to get overwhelmed when trying to learn. Doing a simple google search for “Python Tutorial” you can see 375 Million results alone!
Luckily I can help refer you the quality sites. As a professional software engineer who has been specializing in Python the past 4 years, I have collected my list of favorite Python resources to share with you all to help simplify your Python learning journey and avoid the tutorial rabbit hole. I will also give a brief review of what I like about each of the resources and what makes them stand out from the others to help you decide if you want to invest time in each of them.
The list below is ranked in the order I would recommend doing them in as a beginner with the most basic tutorial first and increasing in complexity towards the bottom. Working through each tutorial will help reinforce the important concepts to make you a more comprehensive python programmer.
Best of luck from the BeAPython.dev as you adventure through the world of learning Python!
Disclaimer – I am not affiliated with any of the sites I’ve recommended below other than my own. I am simply a Python Developer trying to help other people find content and not spend countless hours in the tutorial loop.
1. Microsoft Learn Python Series
Recommended for all beginners (2 days)
I have watched some of the videos in this series and the presentation is very easy to follow and structured logically. Each new course builds off the previous in a convenient playlist that can be completed in a weekend.
Personally this series was too simple for me but if you are completely new to programming and Python this is a nice walk in the park and a great place to start without anything being intimidating.
This course also has an online counterpart with simple exercises for beginners to complete that can be found here.
2. Google’s Python Class
Recommended for all beginners (2 days)
Google for Education’s Python course is set up as a two day workshop from which it was originally recorded from. The content is clear and concise but since the videos are recordings from the original workshop it doesn’t have the high production quality of the Microsoft course.
However the day two content is more advanced where they cover regular expressions for working with strings and using the urllib utility module to interact with web pages and web services.
This would be a good follow up course to the Microsoft playlist above to reinforce the learning through multiple exposure to the content.
3. BeAPython.dev Free Mini Course YouTube series
Recommended for new and future coding professionals that have an established comfort with computers and technical content. (1 day but will be adding content over the next several weeks so please follow the blog and subscribe to the channel if you’re interested)
Since I first created this site in June 2019 to June 2020 I have been avoiding creating a learn Python course for the reason that the above courses are already very comprehensive learning sources. But seeing some of the behavior in a lot of the Python Facebook groups I am a part of have changed my mind.
I commonly see people ask a question “Where do I start learning Python?” and would almost immediately see 50 people reply with their YouTube channel links. A wise mentor once told me if you are going to be teaching algebra you should be comfortable with calculus. The structure of the videos was often unclear and sometimes even just blatantly the wrong use of what they were trying to do.
Additionally all the other tutorials above lay out the content in a very simple step by step way. Teaching each of the parts in small blocks. I think this approach is great for just starting out but doesn’t really reflect the process of coding or the mindset of how a professional developer would think about using these building blocks to create a program.
For these reasons I did create a starter course where I code up a few of the typical starting programs. I also explain the process as I’m doing it to provide a look into how a professional Python developer codes even when it is something basic to provide a unique and free coding tutorial experience.
4. Automate the Boring Stuff With Python
Basic level of Python skills preferred to work through the exercises in the 2nd half of the book (2 weeks)
I highly recommend this online book to all people just starting with Python. The first half of the book covers the same fundamentals from the Microsoft and Google courses but in a book format instead of video. The second half of the book demonstrates applications of Python to automate manual processes that most people come across in their typical work such as batch renaming and copying files, web scraping, sending emails or texts, and more.
This book is a good answer to the question, “Ok, I learned Python. What should I do next?”
Learning the concepts from Automate the boring stuff with Python should present you the opportunity to see where you can use Python in your day to day work life to automate something manual that you’ve been doing manually and get back some of your valuable time to focus on more important tasks. For this time savings alone it’s worth the personal investment to work through.
5. MIT Free Python Course
Recommended for people going into software development looking for a university like class that don’t plan on going to university. (2-4 weeks)
For a more technical tutorial experience that simulates what you would do in a computer science class I highly recommend the MIT Open Course-ware Python class. This class comes complete with a syllabus to guide your learning so you can be self directed but it does recommend purchasing a book for the class. However you can watch the lectures for free.
This course does a great job of going into even more technical depth of Python data structures, why to use object oriented programming, and how to understand program efficiency to help one improve the quality of their coding.
Additional Python Web Site Learning Resources
Python.org is the main page for Python. As such it contains the installers for the python interpreters, application programming interface documents, and a plethora of getting started tutorials.
As an enterprise Python coder I focus on articles to cover Python topics I’m currently learning that is a part of some project I’m working on or something in the Python field that I’ve found interesting. I also teach leadership concepts that I have been practicing lately on my path to become a senior engineer that I feel could be helpful to younger developers to also start growing on.
RealPython is a great resource for learning specific concepts in Python through their daily technical blogs that gets over 1 million visitors per month. When I was first learning Python for corporate development I frequently visited their blogs on logging practices and factory pattern usage.
I must warn that while much of their site is free they do have premium content areas of their site behind paywalls. If you are going to be learning this for the job it may be worth subscribing to for a few months to learn some of this more advanced content from a single source rather than scouring the internet trying to find things just as good on your own.
In addition to Python this site is a resource that covers all programming languages as well as other computer science principles. Asides from the basics, their Python tutorial landing page also has series on other Python frameworks such as Django for building web applications, Numpy for data science, graphical user interface building and more.
I often personally use this site for the resources on competitive programming such as dynamic programming and optimal algorithms for graph searching.