how to learn python feature

How To Learn Python: A Guide For Self-Learners

In this self-learners guide, I want to share my perspective on how you can learn Python on your own. Over the last couple of years, Python’s popularity has exploded and so has the number of tutorials, video courses, books and bootcamps. Which can be frustrating to navigate especially for beginners.

Instead of just listing every resource there is, I want to show you one possible way from zero programming experience to getting hired. The resources that I recommend, I have either used myself or I noticed them because they have been recommended hundreds of times on StackOverflow and Reddit.

What is Python and why should I learn it?

Still not convinced? Check out Should You Learn Python In 2019 to learn more about its history, use cases, and job prospects.

Let’s start learning! 🐍

First Steps – What does Python code look like?

I’ll spare you the “Hello, World!” example in this article 😉 If you already have some programming experience in a different language you can (optionally) skip the “first-steps” part. However, if you have some time to spare I’d recommend you check out these resources anyways.

A great first place to experience Python and programming in general, are interactive tutorials. You not only get to play around with writing your first lines of code, but you can also avoid spending time on setting up a programming environment on your computer. 

There are two interactive Python tutorials that I would recommend for someone who has zero experience with programming. I think both of them are great, so the choice is yours. You definitely don’t need to do both.

Computer Science Circles by the University of Waterloo – Chapters 1 to 10 should provide you with a good foundation that will get you started on your Python journey.
Snakify – Lessons 1 to 11, you can ignore the stuff beyond lesson 11 (e.g. JavaScript, HTML and CSS).

Moving On – Writing your own programs

Option 1: Team Treehouse

For some strange reason, I don’t see Team Treehouse being recommended often enough. I believe it is a great place to help you build a solid foundation and for you to start developing your own projects.

They really seem to put a lot of work into their materials, including teacher’s notes + animations etc. Treehouse has a good mix of lectures and exercises that will take you through various topics. 

One nice feature that is often overlooked is their workspaces, a “fully browser-based code editor” that lets you write and run your code directly in your browser. Super helpful if you just want to try out some stuff and not set up a new dev environment. 

There are a few different ways to utilize the site’s content. You can either browse the library, do a Python track or fully commit to a tech degree. If you don’t know which option is a good fit for you try these tracks first: Intermediate Python (or Beginning Python as a refresher). 

Option 2: Automate the Boring Stuff with Python

Automate the Boring Stuff is an amazing Python beginner’s book that teaches you how to use Python programming to make your work/life easier. The best part 🔥 the book is FREE.

Automate the Boring Stuff is written for total beginners, but a lot of the later chapters touch on more intermediate topics like Regular Expressions, Image Manipulation and Web Scraping. The author does a really good job explaining those topics in easy to understand English.

I’d recommend you check out both options and see which one is a better fit for your learning style. I actually used a combination of both Team Treehouse and Automate the Boring Stuff. Same as before, I wouldn’t say that one is better than the other.

Let’s Get Serious – Committing to learning the language

Congratulations, if you studied all the resources mentioned above and made it here. At this point, you probably already have a good idea of what topics you want to study next e.g. web development with Django or data analysis with pandas

This level could already be good enough to do some entry-level freelancing projects on the side. At this time, you should consider if you want to really commit to a career as a developer or continue just for the fun of it.

What resources and topics to study definitely becomes a lot less straight forward. You can continue your self-learning journey with more intermediate and advanced books like Fluent Python and Problem Solving with Algorithms and Data Structures using Python (free), you can try to find a coding mentor that helps you identify holes in your studies or you could opt for a coding Bootcamp.

I honestly don’t want to recommend one over the other. There are benefits to each of those options. Some people become amazing developers by just reading books and building side projects, others find an amazing mentor and some prefer the structure of a Bootcamp.

If you want to do this stuff full-time, consider applying for an entry-level Python developer position just to see if you reach your limits during a coding interview.

The cost of a coding Bootcamp is a big turnoff for many. That’s why I also want to leave you with a few reasons, why it still could be a good choice:

Conclusion – Lifelong learning

No matter how you continue your journey, always keep in mind programmers never stop learning 👩‍🏫

Every month a new language, framework or technology is popping up and your career might require you to dive into machine learning, deep learning, blockchain or data analysis. Let’s prioritize and tackle 💪!

How about you? How did you learn Python? Let me know in the comments below.

Written by
Tim Osterbuhr
Join the discussion