What I’d Do Differently: Starting Programming from Scratch in 2024

Starting from scratch with programming in 2024? This guide walks you through choosing a language, finding free resources, and using tools like ChatGPT to help you along the way. Perfect for beginners looking for a roadmap to kick-start their coding journey!

I have seen many people try to transition from a different career into IT and fail. And that's okay—like any other field, IT isn't for everyone.

Software Engineering is a career path that, with the right skills and dedication, can lead to lucrative opportunities, sometimes in a relatively short time frame.

My journey in IT began in 2008, a time when the internet landscape was nothing like today:

  • We still learned from books—that’s how I got my start. However, technical books were expensive, so I had to borrow them from my university library. With a bit of luck, the book wouldn’t be reserved by someone else, or I’d have to return it before I was finished.
  • YouTube didn’t have many useful resources for learning.
  • AI—well, yeah... AI as we know it today, only became widely available to the public in 2021 with tools like ChatGPT.

Yet, here I am, like many others, continuing to grow in this ever-evolving field.

Learning Curve

Recently I came across this article:

Source: https://www.kdnuggets.com/2022/03/people-fail-learn-programming.html

Right from the subtitle, we see how many resources—bootcamps, online courses, tutorials—we have at our disposal nowadays.

Yet, why do so many people still struggle along the way?

In the article, one particular paragraph stood out to me:

I was treating programming like any other subject at school. I was trying to learn too much, too fast. And in doing that, I forgot that there was a learning curve...

This highlights one of the biggest misconceptions about learning programming: it takes time to master. It's unrealistic to expect to become a top-notch programmer in just a month or two.

Consistent practice is the most important part of this journey. Bootcamps, videos, and courses are valuable, but they won’t suffice on their own.

You need to actively apply what you learn, experiment, and build projects.

Imagine you're part of a survival game, and your ultimate goal is to build a shelter—a metaphor for learning programming.

You're dropped into the wilderness with three key items to help you on this journey:

  • A map, showing places where you might find useful resources.
  • A toolbox, filled with everything you need to build the shelter—but you'll have to gather the resources yourself.
  • A satellite phone, which you can use anytime to seek guidance.

Now, let’s connect this to your programming journey:

  • The map is the guide I’m about to give you to navigate through learning programming.
  • The toolbox is your computer—your primary tool to build and experiment.
  • The satellite phone is ChatGPT (or any GenAI)—your immediate help for when you get stuck.

The Map Handover

So, if I were starting from scratch today, with zero knowledge and no money, here's what I'd do step-by-step:

  1. Pick a programming language to learn.
  2. Find a free online course on YouTube.
  3. Use ChatGPT to help guide you throughout the journey.

Pick a Programming Language

🪚 The first tool in your toolbox.

But, you’ve got to pick only one.

It doesn't matter which one

The internet is full of debates about:

  • Which programming language is best
  • Why you should use Language A instead of B
  • Why you shouldn’t learn Language X in 2024

Let me repeat: It doesn’t matter.

Just choose a mainstream language, and you’ll be fine. Stick with it!

Tune out distractions that might make you second-guess your choice.

Here are a few solid options:

  • Python – A beginner-friendly language, widely used for web development, data science, and automation.
  • JavaScript – The backbone of web development; great for both front-end and back-end projects.
  • Ruby – Known for its simplicity and popular in web development.
  • Java – A more complex language with a steeper learning curve, used for enterprise applications.
  • Go – A newer language, great for system programming and highly performant apps.

At first, the logical reasoning you’ll develop from coding is much more important than the language itself.

Once you start feeling comfortable, switching or learning another language will be relatively easy. So, no worries there.

If you have no idea where to start, I suggest Python—it’s the most beginner-friendly language I know.

I personally started with Java, but I wouldn’t recommend it for beginners, as it has a much steeper learning curve.

However, if you're not starting from complete zero and already have some familiarity with a language, stick with it! It’ll probably be easier than learning a new one right off the bat.

Find an Online Course on YouTube

🪵 A place filled with resources.

Once you've chosen your programming language:

  • Go to YouTube.com.
  • Find a course from the vast selection available, and
  • Start your learning journey.

If you don’t like the course you’ve chosen, no worries—just pick another one.

💡
Try to learn a little bit every day. You don’t have to spend hours on it. Even if you only have 30 minutes, use them wisely. If you typically watch 2 hours of Netflix before bed, try cutting back to 1h30 and spend the extra 30 minutes learning.

For those of you who can afford to buy a paid course and want to, go for it!

But if you’re unsure whether programming is for you and just want to dip your toes in before making a bigger commitment, you don’t need to spend any money at first.

The only prerequisites are:

  1. Access to a computer.
  2. Internet connection.
  3. Commitment and will power.

Remember, consistency is key.

ChatGPT (or other GenAI)

🛰️ The satellite phone.

ChatGPT can be a really valuable tool when learning online. Think of it as a tutor or mentor you can turn to whenever you’re stuck.

Never hesitate to ask for help!

Here are a few ways ChatGPT (or another GenAI) can assist you:

  1. Explain a concept or topic you’re struggling to understand.
  2. Create a list of exercises to reinforce what you've learned.
  3. Review your code.
  4. Suggest improvements to your code or approach.
  5. Break down a piece of code you don’t understand.
  6. Help you troubleshoot when you're stuck on a specific problem.

Reviewing the Map

Let’s quickly review the map I’ve just given you:

  1. Pick one programming language.
  2. Find a course on YouTube about that language.
  3. Learn every day, as much as you can—whether it's 10, 20, 30 minutes, or a few hours (the more, the better).
  4. Practice what you’ve learned along the way—this is one of the most underrated steps:
    1. Ask ChatGPT to create a list of exercises on a given topic.
    2. Do the exercises.
    3. Ask ChatGPT to review them.
    4. Ask for help when you're stuck.

💎 Throughout this journey, you might stumble upon hidden gems:

  • A really cool course or article that helps you learn faster.
  • Another online platform that offers great programming resources.
  • Anything else that has made your journey easier.

Remember, we all benefit from shared knowledge. If you find a hidden gem—whether it's a course, article, or resource—be sure to share it with others so they can benefit too.

With the right tools, consistency, and a willingness to learn, you’ll be well on your way to mastering programming.

So go ahead—pick your language, start your course, and dive in.

You've got this!