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?
Python is a popular high-level programming language that’s known for its simplicity and versatility. It’s widely used in many areas, including web development, data science, artificial intelligence, and machine learning.
One of the best things about Python is that it’s easy to read and write, even if you’re new to coding. It has a large and supportive community that provides lots of resources and tools for learners, which makes it a great language to start with.
Python is also in high demand in the job market, so learning it can open up many career opportunities for you. Many companies are looking for Python developers, and the salaries for those jobs are often quite competitive.
Whether you’re interested in building websites, analyzing data, or creating machine learning models, Python is a valuable tool to have in your skillset. With its simple syntax and wide range of applications, it’s definitely worth investing some time and effort into learning it.
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
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).
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:
You are starting out with a good understanding of the foundations, this provides you with the time to focus on your weak areas.
Established industry relationships The bootcamp might actually help you get your foot in the door e.g. Alumni referrals
Someone is giving you direct feedback on how to improve your code and explains industry conventions/practices to you.
You’ll have an opportunity to collaborate with other developers like you would at your future job.
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.