By Casey Liss
How Do I Start Programming?

One of the most popular questions that I get asked is “How do I learn to program? Where do I start?”. This actually takes one of many forms:

  • What resource should I use to learn how to program?
  • How did you learn X?
  • Which language should I learn first?
  • Is it worth learning Y?

The best answer I have is not an answer to any of those questions at all:

Find a problem to solve, then solve it using the most appropriate tool(s).

That’s it.

How did I learn Node? I figured out a problem I wanted to solve (how can I easily and efficiently write an engine to power a website?), and then solved it.

How did I learn Objective-C? I figured out a problem I wanted to solve (how can I make an app to enable me to quickly send text messages?), and then solved it.

That’s the first step. If you don’t have a concrete problem to solve, you’ll never have the patience nor tenacity to learn enough to solve it.