Because of my writing on Quora, many people come to me asking how to learn to code from scratch.

So I looked at how I learned to code back in 1995 and came up with a method that matches what worked best for myself, and also many of my friends who are excellent programmers.

In The Year 1995

Back in 1995, the internet was AOL, actually it was America Online and the AOL shorthand wasn’t totally a big deal yet. And compared to now, it wasn’t the best place to learn how to code.

There weren’t a ton of great tutorials. There were no videos or screencasts. The internet back then was a terrible and wonderful place to hang out.

I decided I wanted to program video games, so I begged my mom to get me a programming book so that I could someday make my own video games.

The Book That Started It All…

It’s funny because for some reason I figured out that the language that professional programmers used was C, so I got a copy of Teach Yourself C in 21 Days.

That was really just a clever way of selling a 21 chapter book, but I liked it anyway and that was my gateway drug into the wonderful world of programming.

Now, books are cool and all, but I wanted to make video games, not read books. So, I set out to make my own games.

Let’s Make A Game!

I started with little text based games because all I knew was how to print text, loop, and get text input. So, number guessing games and so on were where I lived for a few years.

Eventually, I found a graphics library called Allegro which was great for 2D game programming.

That took everything I did to the next level. Now I could put graphics on screen and so on and it was amazing.

I set out to make my own version of Pong and after a few months of daily effort, I made my own very simple version of Pong and IT WAS AWESOME!

Seriously, I loved that game.

And more importantly, I did what I set out to do. I made my own video game, but now I wanted more.

I Was Hooked On Programming.

So I kept giving myself these interesting little projects to do. I made my own tile based map editor. I had a bad version of Tetris that never quite got finished. All kinds of weird little projects.

By the time I got to college there wasn’t much left to learn in terms of writing code, so I kept giving myself weird little projects to work on. I got into web development with PHP and MySQL and all of that kind of thing.

I still have bizarre little side projects. Last year I started building my own operating system from scratch with Assembly. So yeah, weird stuff like that I guess keeps me going.

The Simple Learning System

And after careful consideration, I found a pattern in all of this that I call The Simple Learning System .

It works like this:

  1. Pick software you are excited to build
  2. Each day write at least 1 new line of code for what you are building
  3. When you finish building your project, pick new software to build
  4. Repeat this process every day forever

The excitement of a project you care about combined with making a little bit of progress each day becomes this amazing engine of learning that seems to be much more effective than any traditional approach I’ve seen.

Yes, courses are good and you can learn a lot with them. Yes, books are great too. So are screencasts and blog posts!

But, it’s the habit of writing code every day that I’ve seen make the biggest difference in my own growth as a programmer and the same with the best programmers I know.

You Will Learn As You Go

Also, along the way, I find that it’s easier to pick up important concepts as I need them to solve problems in front of me than it is to learn them in a purely abstract setting like a classroom. Everything is easier when I have a problem you care about solving.

So, I would suggest if you want to learn to code from scratch, decide what you really want to build and then work your way towards that. There are so many great languages and tools out there now that it’s so much easier to learn than it’s ever been before.

But like it’s always been, you have to be willing to put the practice in to develop the skill. Just like guitar, martial arts, or any other skill. It takes practice. So…

Write Code Every Day!

Now, if you are like many people, you might still need help getting started. I do have a course inside the Code Career Genius Academy called Zero To Python In 30 Days. It uses this very same approach to take you from zero prior coding experience to building a real application in just 30 days.

For many people like you who might want to learn to code from scratch, this gives the right amount of structure and experience to get started the best possible way.

No matter what tutorial or approach you use, the important thing is to practice.