In all likelihood, you shouldn't learn to code. That is, you should ignore all the tech industry hype-men and silly futurists who say that everyone should learn to create their own software, or that coding is the only way to be free in "the digital age." Don't listen when President Obama promotes these fallacies. It's nonsense.
I know because I am still learning to code. Last fall, I joined the inaugural class of Fullstack Academy in New York City for a three-month intensive course. I enrolled because I was a ferocious tinkerer on my computer, and had dabbled with programming. A unique piece of software that a friend put together in an afternoon was the basis of my baseball newsletter business. I liked that coding was a kind of "knowledge work," but — unlike journalism — the fruits of my labor almost always impressed other people. They said "wow" at the things I made.
So here's what I learned at code school.
Coding is a boomtown, exciting and a little corrupt. There is tremendous morale in a soaring industry like software development. Coding schools are opening like crazy because there is a lot of money sloshing around the tech industry. You don't need a license or a degree to get hired as a coder. The resources to learn are everywhere and relatively cheap. Every tech meet-up or product presentation seems to end with a slide that says, "We're hiring." There is so much demand for young coding talent that recruiters are founding schools to create their own recruits.
This also means there are plenty of sub-standard schools out there. Be careful.
Coding is a subculture, entrancing and a little suffocating. When in code school, do as the coders do. Coders will talk about their "life hacks" — how they tricked themselves into losing weight or saving money. Somebody will talk to you about The Singularity. Coders will talk about important lessons in movies like Idiocracy or Ender's Game. Coders sometimes judge themselves and others based on what languages they know and use. Coders can be supremely arrogant about their skills, while being simultaneously generous about teaching them.
Coders will tell you that "the only thing that matters in coding is getting shit done." Then they'll spend all morning on Hacker News. These gods of productivity will spend enormous effort on finding the exact right font for their Terminal application. (I like Annonymous Pro.) They'll debate the merits of code editors the way photographers debate the pros and cons of certain lenses. A well-articulated preference for Sublime Text 2 doesn't help you get your work done, but it does signal that you're a part of the coding world.
Coding is a craft. You cannot fake your code into working condition. Our teachers cited pianist Vladimir Horowitz's supposed quote: "If I don't practice for a day, I know it. If I don't practice for two days, my wife knows it. If I don't practice for three days, the world knows it." The intense concentration and pressure of hackathons and our boot camp taught me many a coding skill. But I could feel those skills starting to deteriorate within a week after graduation. Retaining them requires the constant relearning that comes with practice.
Coding is not for everyone. Writing a successful application can feel like circumnavigating the globe in a ship you built by hand. You have to possess the ambition to brave the stormy sea, and the patience to sand every splinter off the ship's deck, only to see those same splinters reappear the next morning. You must be a little OCD and a little Napoleon. Does that remind you of some of the big tech executives out there?
It's an unusual skill set: numeracy, creativity with abstract problems, and the oddest sort of empathy. You must learn how to think like a simple-minded computer, so that you can instruct that computer to solve complex problems for humans. If you have the temperament and the talent, try some online courses first.
My three months at Fullstack Academy were the most intellectually stimulating of my adult life. Fun teachers, motivated classmates, and the lure of success made the work easier. But coding isn't some cure-all for the American economy or the human condition. A coder whose car is breaking down on the highway needs a good mechanic. You know, someone with the "skills for a motoring age."