DEV Community

Magda Rosłaniec
Magda Rosłaniec

Posted on • Originally published at

Resources to learn Python

Python is my first and favourite programming language (not that I've been learning lots of them). It's friendly for new coders, almost like writing in English. There are also lots of resources for learners.
But when you are starting, the number of resources can be intimidating and you can suffer from the paradox of choice. Instead of wasting time, you can follow my steps. 

Disclaimer: I'm not a fan of video tutorials. I can't say I haven't been using any video courses, but they aren't my favourite. 

If you're starting and have never before written a line of code and really don't know if it is something for you, try

1. an interactive course.

You will avoid installing Python or upgrading Python's version, installing the code editor and working from the command line. All those things are important, but they can wait a bit. 

My favourite platform with interactive courses is Codecademy. Unfortunately, their free Python course is about Python 2, which is no longer supported, and although the differences aren't so significant (at least for beginners), I don't recommend using it. They have all their pro courses for free during the trial seven days period so that you can try the course out and Python as well. 

I like it because they have snippets of code with explanations, and then you have to write your own code on the screen. And you know if you pass or not. If you are stuck, they give you hints. They lead the learner slowly, step by step. If you are doing the pro version, you have even small projects after each lesson. 

If you like the platform and you are willing to pay the subscription, they have more than one Python course. 

Alt Text

Another resource is an excellent book written by Al Sweigart

2. Automate the Boring Stuff with Python.

You can access this book for free online: There is also an Udemy course, and the author published the first 15 parts of the course on Youtube for free.

In the book, you can find instructions on how to install Python or a code editor. But in the beginning, you can easily use an interactive online platform for writing code: ~You don't even have to sign up to use it~. Create an account to have access to all scripts you would write. 

Alt Text

You only need to click: Start coding, then choose the language: Python and you have a place to write and run your code. 

Now while reading the book, you can type all the snippets of code in the Repl and press the green run button to see the output. If you want to start a new repl (script, file), it's enough to click + sign. 

The other book I like and recommend is

3. Python Crash Course by Eric Matthes.

This one isn't free, but it's really great. It's divided into 2 parts: Basics and Projects and Projects part has got 3 projects - a game, a data visualization project and a web application with an introduction to Django. You can go through the basic part in the same way - using Repl. But I think that at one point you will install Python, a code editor and will start learning to use the command line because you become hooked with programming. 

Why do I like both books?

Not only because they are great for people who don't have a tech background and don't use complicated jargon, but also because they have a lot of examples and practice questions and projects. And the level of the practice exercises is only just a bit above the level of presented examples. They help to make the stuff that is presented in the book stick

The next resource is surprise surprise the video course. But Colt Steele's

4. The Modern Python 3 Bootcamp

is excellent.

It is almost 30 hours of lectures, 123 articles and the enormous amount of coding exercises. There is even a whole part with exercises at the end of the course. But yes, it's paid. 

I've gone through all four resources and many more, but things stick in my mind only when I use something.
That's why there isn't something like too many exercises

5. w3resource

This website contains hundreds of Python (and other programming languages) exercises divided into categories.
You can solve them in the interactive editor, and they also have solutions. 
My other favourite platforms with coding puzzles are Codewars and Edabit. Edabit has got more puzzles for beginners. These exercises are a bit more random, but when you solve a task, you can check other people's solutions and learn new ways of writing code. And they also have a gaming aspect. 

As you can see, all my favourite resources are favourite because they are friendly for people without the tech background but also because the best way to learn is to practice and practice through writing code, solving tasks. Watching videos, reading books, and even typing code with the instructor is not enough to learn. 

Originally I wrote this article for my Coding Journal

Top comments (8)

chrisgreening profile image
Chris Greening

I loooved Python Crash Course, that's always one of my go to recommendations when people ask me how to get started with Python. Some other great resources I've enjoyed over the years are

I've only tangentially read snippets of Automating the Boring Stuff but I should probably get around to reading it sometime, might as well be canonical Python material at this point lol

makneta profile image
Magda Rosłaniec • Edited

Your resources are great as a next step. I often use Real Python because they have really good instructions and I've never been disappointed with them.

svejdam13 profile image
Martin Svejda

Very nice article :) don't know python well but maybe will start learning in future :) I like that your articles are short, clear and very easy to understand:)

makneta profile image
Magda Rosłaniec

Thank you for your nice comment. Learning Python is fun.

eleftheriabatsou profile image
Eleftheria Batsou

Thanks!! I just bookmarked it :)

makneta profile image
Magda Rosłaniec

Thank you! Really appreaciate.

chriswilkinsoncodes profile image
chris wilkinson

Thank you for this post, Magda! Great resources!!

makneta profile image
Magda Rosłaniec

Thanks a lot. It means a lot to me.