As someone who learned how to code pretty recently, I’m frustrated by the way that coding is taught to beginners.
I wanted to learn coding because: a) I wanted to build a Web app and it’s near impossible to find good developers in this market, and b) Thought coding would be a valuable skill to have (just read the back cover of Douglas Rushkoff’s “Program or be Programmed” if you want to see what I mean).
Like many others, my first stop was Codecademy.
Admittedly, it was pretty cool. There was a novelty of being able to type code into my browser and immediately see what it did. But the novelty wore off fast. I was learning about stuff like variables, strings, and “for loops” – but pretty soon I found myself wondering, “How is knowing any of this going to help me build what I want to build?”
The idea of building anything even remotely practical out of variables, strings, and for loops is like building a skyscraper out of Lincoln Logs. That’s the point where I nearly gave up.
There is another way…
In his intro, Michael Hartl makes a great point:
“Many beginning Rails developers are excited about making web applications,
and would rather not slog through a 500-page book on pure Ruby before ever
writing a single web page.”
It wasn’t until after finishing the Ruby on Rails Tutorial that I went back to Codecademy. Only then did I really understand why I was learning it and how to apply it immediately.
Now the roles have switched, and I find myself teaching first-time web developers who are where I was only a few months ago. We have to understand that motivation and excitement is an extremely fragile thing. It’s very easy to scare people away from programming (some would argue that those people just aren’t meant to be programmers – but I think that’s pretty elitist).
Imagine a world in which everyone is technology-literate! That’s a world we should strive for.
People are hungry to create, to make, and to express themselves on the Internet. Let’s show them how.