Skip to content

How to learn programming

Start here if you want to become a programmer

Hi. I am a programmer. I’m one of those cool people that sit all day at the computer and make it do things.

We have it pretty good. No problem if the weather is bad, we work inside. Also, there’s plenty of work, anywhere in the world. And we have the option to work remotely, since programming is done on computers.

I can understand why you want to become a programmer. And I want to help you.

First, you should figure out what is the field you’re going to work on. Or the field you would like to work on.

This depends on your goals, your inclinations, and perhaps the odds of finding a good job in that field.

Because there’s not just “programming”, or “software development” in general. There are different kinds of programming. You might want to learn programming to:

or you might want to dive into complex fields like data science or machine learning, AI and so on.

Each of those sectors are very different from each other. Each one has a different programming language as their “main language”.

We have countless different programming languages. Some are more complex than others. Some are more beginner friendly. Some are highly specialized, some are general purpose languages. Some are very popular, some others are obscure and niche languages. Some are old, some are more recent.

Typically, the language you choose depends on the field you want to work on:

You can really start programming with any language. Just know that some specializations are exclusive to a single language. For example iOS development can be only done with Swift, not C#. Android is Kotlin or Java, not Python or PHP. And frontend Web development is mostly the realm of JavaScript.

To each specialization its perfect programming language.

The main issue with learning programming is motivation. If you have an ambitious goal, for example creating your the program or game you want to create, your drive to achieve your dream is going to do marvels for your learning.

It’s much easier to learn this way rather than a general “learn programming” goal that can be too general and give less motivation.

Motivation is not just dreams to build your own software and games - it might also be getting better at your job, of course.

Learning programming requires lots of practice, trial and error, patience and persistence.

If you don’t know what language to start with, unless your field is dominated by a specific programming language, and everyone uses that to perform the task you want to do.

If you want to become a Web programmer, start with JavaScript as that’s what you’re going to use all day long.

Otherwise if you just want start and you want someone to tell you which language to choose, I think everyone should learn Python.

Python is a general purpose programming language that’s easy to learn and very flexible. Once you know how to create Python programs, you’re going to apply that knowledge everywhere.

Here’s how to start.

If your language of choice is Python or JavaScript, start today on freeCodeCamp. The practice-based curriculum will help you get started very quickly.

Then pick some books. Books are immensely useful because you can have them at hand and they look at you all the time saying “read me”.

Pick physical copies, so you can annotate notes and underline what you want. Good books last years.

Start with a beginner’s book, and intermediate book. Books made for schools are great. “Intro to Python for Computer Science and Data Science”, for example.

If you pick JavaScript you can start with my JavaScript Beginner’s Handbook, but get more resources too.

The programming language is just a tool. A very important tool that you should know inside-out, like a carpenter knows the tools of the trade.

The job of a developer is to solve problems. Analyze the domain, choose the right solution, identify the best tools, services and other software that can help you, and implement it into code.

This is why in parallel to learning a programming language, or while you learn it, you should learn how to solve problems.

Initially at a high level. How to reason about a problem, how to think like a programmer.

Then you will get more in-depth and you will start solving problems with code.

So you will learn better your programming language of choice, and you will learn how to solve problems with it.

This is where things get blurred a little bit. To provide more guidance, once a year I launch a practice-based JavaScript Bootcamp and that’s all about learning how to solve problems with code.

Then if you plan to get hired at a company, you will need to prepare for the job interview. I recommend you to start with studying data structures and algorithms, and then start practicing with sites/books that are specialized in interview questions.

There’s a whole industry specialized in just that part.

For some reason preparing for a job interview is very different from the actual programming you will do on the job, but it’s a necessary evil in most cases.

Of course if you want to learn programming to become better at your job or for personal projects, you can skip all that part.

That was an introduction.

Go and download the books you’re interested in from The Valley of Code and remember: it’s going to be difficult, but it’s going to be worth it.


→ I wrote 17 books to help you become a better developer:

  • C Handbook
  • Command Line Handbook
  • CSS Handbook
  • Express Handbook
  • Git Cheat Sheet
  • Go Handbook
  • HTML Handbook
  • JS Handbook
  • Laravel Handbook
  • Next.js Handbook
  • Node.js Handbook
  • PHP Handbook
  • Python Handbook
  • React Handbook
  • SQL Handbook
  • Svelte Handbook
  • Swift Handbook
...download them all now!

Also, JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025

Bootcamp 2025

Join the waiting list