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
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.
Another resource is an excellent book written by Al Sweigart
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: Repl.it. ~You don't even have to sign up to use it~. Create an account to have access to all scripts you would write.
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
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
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.
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