It’s not you; it’s me

Coders are not necessarily the best people to teach coding. For example:

Self-Taught Steve used a “hello world” tutorial when he was starting out. His motivation was to learn HTML so he could make his company’s website look less terrible. Since “hello world” worked for him, he feels like starting with it is the right way to learn to code. Steve is now an experienced developer. Wanting to give back, he writes his own “hello world” tutorial and publishes it on his blog. His friends — other self-taught programmers who also used “hello world” tutorials — review it and tell him it’s great. His uncle, who has no coding experience but thinks making websites might be a nice source of extra income, completes the tutorial. A few months later Steve asks him how his coding is going. His uncle hasn’t done anything since “hello world,” having concluded he’s too old and too “not-a-computer-person” to learn code on his own.

This is happens a lot: a person completes a coding tutorial, and doesn’t know what to do next. They assume it’s because they’re not built to be a developer. Really, it’s because they don’t have a pressing need for it. Coding is a tool to solve problems. Without problems, the tool is useless.

So what do you do if you want to learn code but don’t have the “need” of an up-at-night problem?

1. Create the need.

If you want to learn web development, create a website for yourself. Include a picture, a short biography, contact information, and maybe a résumé. Publish it for free on a site like BitBalloon or Github Pages.

Since you know what you want to accomplish, following the steps on CodeAcademy or Dash will be helpful. The tutorials become a tool and a means to an end, instead of an end in themselves.

Then, show your website to other people. It will probably be really ugly, which is great! Not wanting to be embarrassed becomes the up-at-night problem that motivates you to continue learning.

2. Take a class.

One of the biggest advantages of taking a class is that there’s a teacher breathing down your neck. You need to learn and produce results. Not wanting to feel bad becomes your up-at-night problem.

3. Learn some code in about two hours without a computer.

Most programming books assume you already have an up-at-night problem. They tell you how to write code, but they don’t tell you why you might be interested in the first place. So, someone curious about code picks up a book, flips through a few pages, and finds:

It looks really boring.

It looks really complicated.

It looks really long.

They need a computer to do anything.

Their curiosity goes poof, and they turn into a “not-a-computer-person”.

My book, “Learn some code in about two hours without a computer”, is for people who are just curious. Instead of telling you how to code, it’s full of fill-in-the-blanks and multiple-choice questions that you solve with a pencil to explore why code is the way it is. It’s all common sense; no computer knowledge necessary.

You answer the same logical, common-sensical questions the inventors of code had to ask themselves.

Experienced programmers will be frustrated that it teaches the “wrong way”—that is, different from the way they learned. If you have an up-at-night problem then starting with “Hello, world!” makes sense. I’m more interested in finding the fun in learning and understanding the language. Code only works as a means to an end if you know what the “end” is.

My hope is that publishing this for cheap will make coding accessible to all the people who would otherwise write themselves off as not-computer-people, or would think they couldn’t afford to learn.

Coding is the future. How to make it a future for everyone is a tough nut, but I think a crackable one.

A good chunk of “Learn some code in about two hours without a computer” is already available online for free. To support writing the rest, I’ve launched a Kickstarter.