If you’re just starting out on your journey into Python, the chances are you’re wondering where to begin. In fact, you may even be asking yourself “How do I even get started when it comes to learning Python?”

Luckily, learning Python is: a) just like learning pretty much anything else and b) totally doable

Perhaps one of the most important things is learning how to learn. If you simply learn how to unpack seemingly difficult problems and apply logic to the different challenges you come across along the way, you’ll find that what seem like complicated tasks now, actually become very straight forward.

Put these together and you become invincible when it comes to learning almost anything – and that includes learning Python. I mean, not literally invincible, but definitely within the sphere of learning how to code effectively. Once you apply this methodology you’re going to have access to a repeatable process which can be replicated across anything else.

Even better, use this approach to learn Python and you’ll be able to pick up other programming languages with ease.

Just do it

Often the hardest part of undertaking any new task is actually getting started.

We’ve all been there.

Putting off doing something is easy, actually pushing yourself and trying something new (and challenging) is not so simple.

Sometimes it’s the fear of the unknown. Sometimes we don’t feel like we have the time or space to do it. Often we’ll doubt our ability to actually accomplish it.

Here’s the thing though, nothing happens without energy.

If you want to create something amazing and be on the leading-edge of technological progress, then there’s some work that needs to be done first and pushing ourselves further with this will mean gaining the ability to unlock doors you didn’t know existed (and in fact,  some of the doors don’t even exist yet).

Whatever your reasons are for not starting before today don’t matter, all that matters is that you make the commitment to change that mindset from now on so you can transform yourself into something incredible.

If you haven’t already, the first task is to install Python. Instructions are here.

If  you’re completely new to the world of Python programming (or if you just want a refresher), you might also want to read up on the basics of Python before we go on.

Don’t worry, I’ll wait ☕

Code everyday

It’s no secret that doing something every day is the key to getting top notch skills.

Whether it’s learning a musical instrument, learning to meditate, or learning a new language (spoken or programming) this golden rule holds true. Learning Python is no different.

Practice makes perfect after all, so if you’re serious about becoming a data scientist or machine learning expert then it’s important to make a daily commitment to perfecting your craft.

Dedicating a specific time (and place!) to practicing your Python programming and coding skills means that not only are you prioritizing yourself, but it’s also more likely that, even when life gets crazy, you’ll actually be able to stick with it every.single.day.

Even spending just 20 minute a day is gold when it comes to building your new skills.

Also, when it comes to coding, one of things that matters most is the ability to form muscle memory.

Just like with typing, your hands and brain need to communicate between what letter you want to type (🧠) and where the key sits on your keyboard (🖐️).

The faster you get and the fewer mistakes you make, the more confident you’ll feel and the more proficient you’ll become. Before you know it, you’ll be writing the code you need to achieve your goals in the same way that you’re able to write an email or send a text to a friend to communicate an idea – it will become second nature.

Take notes

When I first started learning Python I had a really hard time remembering things. There seemed to be so many different elements involved, most of which were foreign to my non-computer science brain. On top of this, I was really busy with my IRL life which meant my mind was often in many different places at once.

Since coding is, by its nature, inherently tied to computers I thought I had to actually do everything on the computer.

It wasn’t until I started taking notes by hand that I began learning more quickly and actually remembering most of it.

I’d even find myself scribbling code down when I was at work or in town grabbing a coffee – the napkin became my screen and the pen became my keyboard.

The benefits of writing notes by hand are well documented and once you start working on small projects, sketching out your code before moving to the computer can actually save you a lot of time and frustration.


It’s one thing to read about a concept and an entirely different thing to actually do it in practice, so when you’re learning to code you should take every opportunity to get your hands dirty and implement Python code in real life.

Even if it’s just running small snippets of code, the more you interact with the Python language and the various associated tools, the better you’ll understand how to think computationally (like a computer) about problem solving and achieving your objectives.

After all, coding is ultimately about learning the language to make your computer do a lot of useful and cool things.

There are two quick ways to begin messing around in Python – notebooks or IDLE.

In a nutshell, notebooks let you run code from within your browser, while IDLE is a piece of software that comes with the default install Python when you download and set it up it on your computer.

You can learn more about the two in detail here.

Join the club

It’s probably no surprise that there are a lot of people out there learning to code in various languages. Like thousands.

With this in mind, one of the best ways to kick start your Python learning is to join them.

Find some code pals

Coding might seem like a pretty solitary activity, but it’s actually way better together.

Finding someone else that’s working through the same things you are (and probably encountering the exact same problems and with the same questions) means that you can help each other out, share your skills, and learn quicker.

Plus surrounding yourself with other people who want to learn Python or anything related to machine learning means you’re more likely to accomplish your own goals. Accountability buddy, anyone? 🙋

It’s cool if you don’t already know anyone else who’s learning Python, that’s where the internet comes in. Search for local events or meetups in your area and you’ll find others who are at the same level as you. Or find people that look cool on social media and just say hi.

Teach others

Fact: teaching other people is one of the best ways to prove that you’ve learnt something.

Another benefit of teaching others is that they will almost certainly ask questions that prompt you to think more critically about what you’ve learnt, encourage you to learn more, or highlight areas where you still need to learn or improve.

So when you learn new concepts in Python try teaching someone else. It could be your code pal, your partner, your best friend, your dog. Anyone who will listen.

A similar approach is to keep some kind of written or recorded log like writing blog posts explaining what you’re working on or recording videos of yourself talking through some new concept that you’ve just learnt.

It doesn’t really matter how you relay the information you’ve learned, as long as you do it.

Ask questions (a lot)

There is literally no such thing as a dumb question. The most important thing is to always ask. No matter how silly it mig ht seem to you.As someone who’s asked a ridiculous number of questions myself, I can assure you that someone else will always be wondering the same thing.

While there’s no such thing as a bad question, you can always ask questions in a better way.

When it comes to coding, there are a few things to remember to include in your question so that other people can better help you and provide the most useful answer that actually solves your problem.

This is particularly important when you ask questions on the internet.

Here are some tips on asking good questions about coding issues:

  • Clearly describe your problem and give context on what you’re trying to do (what is your code supposed to achieve?)
  • Make sure you also outline the things you’ve already done to try and fix the problem.
  • Include the code, error message, and an explanation of the steps you executed when the error happened.
  • Offer suggestions on what you think the problem might be. This helps other people better understand what you’re thinking.

A well constructed question can save you a lot of time and effort by providing all of the background info up front. It will also cut down on the number of back and forth messages required to get to the answer you need, whether it’s in a forum, over email, or asking in person.

Show off

What’s the point of doing all of this work if you don’t claim bragging rights? Now’s the perfect time to show off your new skills.

Build something real

Once you get the hang of Python you’ll be able to start building cool stuff. What you make doesn’t really matter at this point, it’s all about the journey and showing that you’re on the way to the big time.

By working on a project that you’re interested in, you’ll not only be motivated to complete it for yourself, but also you’ll learn far more about hands-on Python coding than you ever would just reading books, articles, or tutorials.

Making and owning something is always 💯

Looking for ideas on what to build first? Check out these tutorials to get started.

Contribute to open-source

In the world of programming, open-source means something has been made publicly available so that anyone can collaborate.

Lots of the Python libraries out there are open-source and some companies even publish open-source projects.

As your confidence grow and you begin to feel more adventurous, why not throw your newly developed skills into improving some open-source projects? It’s a great way to get on-the-ground experience and feedback and maybe even meet a new code pal along the way.

Create a portfolio

If you’ve worked hard on creating Python projects that you’re proud of, then eventually you’re going to want a place for these projects to live.

Enter the portfolio.

Whether you’re an architect, an artist, or a Python programmer, a portfolio is a collection of your best work. It can show how you’ve progressed, what you’re interested in, and the kind of work you want to do.

A portfolio is also a requirement if you want to apply to any kind of technical or creative job so having a high quality portfolio is a great idea if you’re interested in doing any kind of coding work as a career or on the side of your regular job.

Even if you aren’t learning Python to expand your career, it’s still nice to have something to show off so that everyone knows how boss you are.