The Real Poop
Code is everywhere. It runs our cars. It makes our Apple TVs work. It gives criminals full access to our hard-earned money. And it's a good bet that the world is going to need MORE code, not LESS code 10 years from now. And 20. And 30. And 40. Water to a thirsty, motley crowd.
Coders are the hard-working boys and girls who turn fanciful ideas into reality by writing software. The products written by coders form the backbone of our modern economy. Businesses in the software domain have also been responsible for having created the fortunes of modern America. Think: Bill Gates (Microsoft), Larry Ellison (Oracle), Jeff Bezos (Amazon.com), Larry Page and Sergey Brin (Google), and Mark Zuckerberg (Facebook), among many, many others.
So…what do we mean by "code" or "coder"? Well, like everything else, there is a hierarchy, and software coding as a career has been around since computers proliferated in the 1960s and beyond. In 1962, there was no real "Internet"—if you wanted to code, you worked for the government in one form or another. (Back then, you could have worked for what is today, more or less, AT&T and coded their billing and back office infrastructure. Ooh fun.)
With the advent of the Internet and easier-to-use software publishing tools, a project that in 1990 took 187 people working two years to execute, can be done today by three people in a few months. And here's where the "hierarchy" comes in.
There are generic coder, that is, hobby housewives who want the ultimate web page to show off their pasta sauce recipes. They code in a form called HTML, or hyper text mark-up language, which is really just a set of rules for formatting a page. You need a bracket here, a "< b >" sign there to bold this text and a "< /b >" sign there to stop bolding text. Very simple "code." But there's lots of demand for web pages out there and almost always a job if you want to do more than code as a hobby. ("Jobby"?)
Then there are coders who actually write real code. They write in languages where they can build systems instead of pages. That'd be languages like C++, Java, and other flavors where they know the basic building blocks for how projects run, how pages are assessed by Google for keyword pickup, how servers…serve, how credit card companies plug in to websites, and 50 other things.
Coding in a real language requires schooling to perform even reasonably well. Those who weren't trained in school produce what is commonly called "spaghetti code," meaning that the program flow is much like that of a tangled bowl of spaghetti. Spaghetti code is hard to follow by other coders and "doesn't scale" because it doesn't follow the deeper, more complex mathematical laws that govern the physics above computers. Which brings us to our "top" level of hierarchy in coders—database coders. Or, rather, those who are qualified to touch the central core of computer code that governs a website or series of websites. In order to scale as that kind of coder, you usually need to have dropped out of a PhD program (yeah, that's a Silicon Valley joke—the best coders don't seem to stay in school long enough for the sheepskin because leaving is too lucrative).
If you know the deep math rules, you probably also understand enough about the physics of how computer data is stored, retrieved, promulgated, diagnosed, and curated so that as you build new elements of the website/database/whatever, you can think through the ramifications that may affect other parts of the network. An unschooled cover might lack the depth of understanding to foresee such an array of problems.
What kind of person goes through all of this hassle to put together such labyrinths? Well, good coders have the ability to focus on the job at hand to the exclusion of everything else. Sure, your co-workers might be playing foosball in the lounge or hosting a Wii tennis tournament, but you however, have code to produce, and produce it you will.
Excellent coders are creative to boot. They can think outside of the box, which enables them to manipulate code in ways that others, perhaps even their bosses, may not have considered. Coders can take constructive criticism from their colleagues and bosses—and dish it out—too.
Finally, if you want to be the kind of coder who creates a product or founds a company that ends up being worth a fortune, you need to be able to have vision for solving difficult problems that people care about—before anyone else does. Coder billionaires didn't make their piles by sitting in cubicles, working 9 to 5 every day for The Man. They took risk,s rolled the dice to create dog food—and the dogs ate.
There are lots of perks to coding. The pay is pretty darn amazing, and many software companies don't scrimp on the benefits (free food, free drink, team-building trips to Napa, etc.). There's always the potential that your company stock options will make you rich. Many startups also allow their coders a lot of leeway in terms of work start and end times and telecommuting.
If you lean toward nerdiness, you will likely find yourself right at home with your fellow coders. Discussions about Diplomacy and Civilization V are always welcome. The guy who gets a tattoo of Euler's theorem on his right bicep is an object of admiration rather than derision.
There are, however, some downsides to a career in coding. It can be difficult to have a social life if you have to spend long hours in the office, staring at a computer screen. There is always the possibility that your company may disappear between from day to the next. Perhaps most importantly, chances are good that you will, at some point, find yourself sitting next to a guy who not only doesn't shower regularly, but who has never heard of deodorant and wouldn't know what to do with a washing machine if his life depended on its proper use—or use at all.