Learning Python from Scratch


by Anthony Shaw, May 28, 2020

So, you want to learn Python? That’s great news!

I get asked on a weekly basis for starting points. Where should you start if you want to learn Python? What’s the best tutorial, video, website, or library to get going?

Before I can give you that advice, I need to know one thing

Where are you starting from?

To help work out which tutorials are going to work for you. It’s important to decide what programming experience you have. A lot of Python tutorials and guides assume that you already know how to code. That means you at least know about loops, variables, scope, and functions.

If you pick a tutorial that is aimed at developers and you’re new to programming, you’re going to get confused and frustrated really quickly.

Which of these statements applies to you and we’ll continue from there:

  1. I’m new to programming
  2. I know another programming language

New to Programming

That’s great that you want to learn to program. Python is a great language for beginners.

You’re also in great company, there are millions of people learning Python right now. That means there are loads of resources available for you to use to learn.

Actually, there’s almost too much choice. Its a little overwhelming, and if you ask people, they might give you conflicting views.

My perspective is that you should pick the approach that meets the way you like to learn. This should be fun. Programming is about writing code, so to really learn, you need to build things and execute them. You can’t learn to ride a bike by reading a book.

There is a bunch of theory you need to learn as part of your programming journey. The really great programming tutorials are the ones that relate concepts in programming to things in real life. It makes it so much easier to understand, it they are low on technical jargon.

Something else about programming that’s different to learning many other skills, is that computers are really particular about what you type in. This isn’t like cookery where you can be a bit creative. If you follow the recipe for baking a cake but mucked up some of the steps, you’re still going to get a cake. It might not taste great, but it’ll still be edible.

photo of a child making a cake

Computers aren’t like that. If you miss a step, or get a step even slightly wrong, they’ll throw a big error message at you. This is intimidating for lots of beginners and puts them off continuing with learning after making a few mistakes. One of the skills that you need to learn when you program is how to solve errors. Most of the tutorials skip over this part, and when you follow the instructions and things don’t work like the instructor said, you’re on your own.

For this reason, I suggest asking someone who knows how to code to support you. Websites and forums can be quite unfriendly to beginners, so its good to have someone you can ask to look over your code and tell you what you’ve done wrong. This isn’t something that just beginners do, its something that all programmers do.

Learning to Program by Watching Tutorial Videos

If you’re happy watching videos, there are thousands of video tutorials on learning Python. Before you invest a lot of time into a course, you want to know a few things:

  • Is the instructor good at explaining things to beginners?
  • Is the tutorial up to date?
  • Is the course easy to follow and at a good pace?

I’ve selected three of the best for you to choose from:

  1. “Python for Absolute Begineers”
  2. “Learn Python - Full Course for Beginners” at freeCodeCamp
  3. “Python Tutorial for Absolute Beginners”

These courses are many hours long. Anything that claims to teach you in “20 minutes” is total nonsense. You need weeks to learn it properly, even if you’re some kind of prodigal genius.

Something else about the resources in this article is that some are paid and some are free. As with all things in life, you get what you pay for. There is a lot of bad, inaccurate, content out there for free or for a few dollars. It ends up being a waste of your time to save a few $. If you can’t afford the cost of the paid courses, some of the free options are great to get started.

They are 4-7 hours long, but don’t think this is a Netflix show that you can binge-watch. Take it slow and stop the video to follow along with the steps on your computer. Try playing the video on a tablet and doing the tasks on your computer. Remember that programming is something you do. You can’t learn by watching someone else doing it!

Recommendation 1: Python for Absolute Beginners

Python for Absolute Beginners is for people who are totally new to programming. I really like this course because:

  • The instructor, Michael Kennedy, is one of the best out there. I’ve directed over 5000 people to his courses and the feedback has always been excellent.
  • This course is 7 hours and takes you from the absolute basics.
  • It has a lot of visual diagrams and illustrations to explain concepts.
  • You get to make things which are fun like games.
  • You don’t need a formal Computer Science education to use this course.

This course costs $50 USD, but its worth every cent. Remember I said to find someone to help you if you get stuck? As part of the cost of the course, the instructor makes themself available to help you. You can book time online.

image of python for absolute beginners course

Check it out

Recommendation 2: Learn Python - Full Course for Beginners (YouTube.com)

This is a free, 4 hour tutorial for beginners that show you how to install Python and write the most basic script all the way up to functioning games. freeCodeCamp.org have a whole bunch of free videos on their Python channel.

Things I like about this course:

  • The instructor teaches at a nice pace, its not rushed.
  • They start with some really simple examples and work up to more complex ones.
  • Its easy to follow.

Note: The instructor is using a mac, but if you’re on Windows, follow these steps for installing on Windows.

freecodecamp

Check it out

Recommendation 3: Python Tutorial for Absolute Beginners (YouTube.com)

Similar to Recommendation 2, this is a free tutorial course on YouTube for total beginners. Things I like about this course:

  • The instructor gives you challenges to solve.
  • It includes an overview of Jupyter, a popular tool for data science (and where 50% of the Python jobs are!).
  • Its well paced and comes with illustrations to explain harder concepts.

python-for-beginners-youtube

Check it out

Learning to Program by Reading

If you’re still at college or university, or you’re used to studying from text books, there are lots of great books and online content for learning to program. Two big benefits of books over videos is that you can go at your own pace, you can read a page twice, put a bookmark in, come back. The second benefit is that books are very dense in information. Something that would take an instructor a while to explain on video could be explained in a few pages in a book.

Recommendation 4: Python Crash Course (2nd Edition)

Python Crash Course is the world best-selling book on learning to program with Python. This book is designed for people who don’t have any programming experience. I like this book because:

  • The language is clear and simple. It’s not too academic.
  • The pace of the book is quite fast, it covers a lot of topics in a dense book. But its not rushed.
  • The covers practical things to make and contains lots of resources to develop your knowledge further.

The book is about $30-40. If you don’t have an eReader, I recommend getting a physical copy. Programming books are reference material. You want something that you can have next to your laptop, open on the right page.

photo of the python crash course book

Check it out

Making Stuff with Python

So far you’ve got some recommendations on places to learn how to program, but not what you can do with it. Sure, you could start writing some tax-accounting software, but that might not be that much fun!

One of the great things about Python is that it works well on little devices. You can buy a small device for $30 that runs Python, and use it to program things around you.

There are two popular options for this- raspberry pi and adafruit circuitpython:

photo of the a pyportal device

Using either of these you can write small, simple Python scripts to control circuits, motors, 3D printers, lights, robots or even LEGO.

What next?

Make sure you checkout realpython.com as its brimming with free, detailed tutorials on any Python topic.

There are tutorials on data science, engineering, games, web applications, and more.

I Know Another Programming Langauge

If you already know another programming language, it doesn’t matter if its similar to Python or not. The thing that matters is you understand basic principles of programming. With this knowledge, you can fast-track learning a new language by focusing on a few things:

  • The syntax and language
  • The application and compilation process
  • Packaging, modules and imports
  • APIs, library and extensions

My recommendations are a combination of video tutorial, written tutorials, and interactive samples. As with the beginner recommendations, you get what you pay for, so I do recommend investing in your skills and picking the right option, not the cheapest (if you can afford to).

Recommendation 7: LearnPython.org

The course at learnpython.org is free and ideal for those who already know how to code in another language.

I really like this course because:

  • You can code in the browser.
  • It jumps straight into syntax and examples.
  • It links to data science tutorials.
  • It has exercises that it tests you on within the website.

pluralsight-screenshot

Check it out

Recommendation 8: Codecademy Learn Python 3

At codecademy, the tutorials, exercises and editor is all a single interface. This makes it really easy to read the tutorial, write the code and test it. There is a great course on Python that takes you from basic function calls, to variables, loops, classes and more complex language structures.

I like this course because:

  • The interface is great, you can follow along with the samples
  • It goes beyond basic “hello world” and gets into more advanced language features

Interactive Python examples are free and a pro subscription is $20/month.

codeacademy screenshot

Check it out

Recommendation 9: The Python path on Pluralsight

I’m not going to recommend a specific course on Pluralsight, since your subscription gives you unlimited access to the whole catalog.

There is instead a learning path on Python comprising of over 21 hours of course content. I strongly recommend this path (and yes, I’ve finished the whole thing!) but stagger it over a few months.
I really like this learning path because:

  • It has a built in knowledge checker, called Pluralsight IQ.
  • The instructors are worldwide experts.
  • It contains “interactive courses” where you can code into your web browser.
  • It takes you from the basics to advanced topics.
  • It has a mobile app, with offline access, perfect for commuting.

A Pluralsight subscription costs $29/month, but like I said it covers the whole catalog (about 6000 courses). They also often have a promotion- so keep an eye out.

pluralsight-screenshot

Check it out

Recommendation 10: The Python Basics tutorials on RealPython.com

My final recommendation is the “Python Basics” tutorials at RealPython.com. This is the recommendation for anyone who wants to cherry-pick topics and concepts that they need to learn. If you can figure out the language pretty-quickly and need to get up to speed on web-development in Python, then realpython has you covered.

I like realpython’s articles because:

  • The writers are Python experts.
  • They are written in clear, easy to follow language.
  • They are constantly reviewed and updated.

cartoon of person looking surprised

Check it out