Learn to make, don’t learn to code

The agony of learning:

You sign up for Codecademy. You spend 3 months deciding between Python and Ruby, because you heard Django was more powerful or something but Rails had better community support or something. You in fact have no idea what that means. You maybe do a tutorial or two. Oh wait, I should be learning Node.js. It’s the future. Then… hey what’s that shiny thing over there?

Jake Levine

Boy-o-boy does this ever ring true. My experience was precisely like that—learning to code is simply that—learning to code. Until you actually learn to build something, you’ll never get anywhere. I went from Ruby to Python to Javascript back to Ruby back to Javascript—it never ended.

But I remember the moment when some of it finally clicked: I was learning PHP a few years back, I kept falling asleep during the Lynda.com videos, so I bought a book. The book put me to sleep too. I followed tutorials that mostly didn’t work or were outdated, and tried everything else out there to help beat it into my head.

One day, I was trying to dynamically create a menu in WordPress using a query—I had to create a function to get the page id, hand that off to another function to get that page’s children, and then to another to get the last item in an array to determine the page’s ancestors. It was all there—strings, numbers, arrays, functions, passing values around. No doubt it was a Frankenstein of code, but it worked, and did it ever feel good!

Until you actually start making something, you’re just going through the motions—you’re not learning.