Moving Beyond Code
Why the Future Does Not (Exactly) Belong to Coders
“ Learning to write programs stretches your mind, and helps you think better, creates a way of thinking about things that I think is helpful in all domains.” — Bill Gates
Coding is also overrated.
Let me clarify that: coding, for the sake of coding (which, I argue, is what has been happening in abundance for decades), is overrated.
There’s buzz for a while now about how software code is the language of the future, and hence, by direct association, coding is the skill of the future. That if you were an individual who wanted to be relevant in the long-run then you’d better saddle up and learn a thing or two about coding.
The consequences of this are two-fold:
- People entering school or who are beginning their route to find their careers are seriously considering entering software development disciplines, even if their true calling lay elsewhere, and
- People who have already graduated with non-programming backgrounds are feeling (either outwardly or subconsciously) inferior, handicapped or vulnerable in some way relative to their code-trained peers.
Both of these, in my view, are over-reactions to a trend towards, it seems, an increasingly code-centric global economy.
But therein lies the problem: the belief that the economy, the world, the future, is going to be centered around code.
It is not.
As long as we are in a pre-Singularity world and human beings are governing our economic, social, and political decisions, our global ecosystem will always be driven by the human need. Anything else is a tool or language which we use to further the human specie.
And that includes code.
We should treat coding as an enabler, not an anathema nor an elixir.
The time of the Uber Coder is gone.
Now is the time of the Hacker Generalist—anyone who can blend some coding skills with another vocation. Here, coding is not in and of itself the value; it becomes the vehicle with which value can be provided. It is the catapult to the individual’s success. The sawed-off shotgun in their dual-wielded ass-kicking ensemble.
During one of my MBA classes, there was a team that delighted us with an unusually slick, well-polished slideshow presentation — a true rarity. When I later asked the group who the architect behind it was, they pointed to their team member, a cardiac surgeon. He, as-a-matter-of-factly, told me that before being a doctor he used to moonlight as a graphics designer. A graphics designer turned cardiac surgeon! I was floored.
But what if, I sheepishly thought, what if he also had some coding skills, even rudimentary ones? What if he could whip up an HTML5 and CSS3 powered website? What if he could tweak the PHP scripts behind a Wordpress site? What if he knew how to download and use jQuery plugins? Heck, what if he could develop some intermediate-level spreadsheet macro magic?
The value-add to his ward and likely even to his patients, I thought, would be tremendous.
The 21st century demands us to realize the inter-disciplinary inter-connectedness of so many aspects of our lives, with technology usually being the glue. And once we have realized this, we can truly begin to understand how we as individuals, teams, and organizations can solve the problems that our fellow human beings are afflicted with.
It is no longer enough to be a Java EEE ninja, or a Django guru, or an Objective-C whiz, or a Widget Y Knight Mage with Level 300 Experience Points. These skills and certifications, no doubt, are tough to master and usually demonstrate immense skill on the coder’s part.
However, to truly move the world forward, to stand out from the crowd and earn a place amongst the ranks of tomorrow’s big problem-solvers, to be truly creative, you need to bring something else to the table: depth of breadth. To put another way, you need to be good at something else, too.
The message, then, is the following:
- If you are a coder, develop skills and knowledge in another discipline — whether it’s design, music, world economics, social enterprise or knitting. This will open your possibilities to apply your coding skills in situations and problems that were not in your periphery to begin with.
- If you are not a coder and have skills in other disciplines, pick up some basic coding skills. This will empower you to really push your ability to solve problems to a new level. It might even make you look at and use your own talents, hobbies and passions in new ways.
Call the end of the Uber Coder.
Enter the era of the Hacker Generalists!
 I gave much thought to the term I was going to use to describe anyone who can blend coding skills with skills and insight in other disciplines, and I’m not quite sure I’m 100% satisfied with “Hacker Generalists”. I’ll chew on it for a little longer.
I have found myself using the term “hacker” most frequently to refer to anyone who can scrounge up resources from seemingly disparate sources and duct-tape them together to create something “new” which delivers on a unified purpose. More often than not, this new purpose tends to be completely unrelated to the individual parts from which the hacked solution came. And the term “Generalist” is used to give a polarity against the commonly understood concept of Specialists. Hacker Generalists, in my mind, are the Jack of All Trades and Masters of Being Adaptive. I will likely devote a separate write-up to my thoughts about Hackers.
 The term “value” has become almost a catch-all by analysts (another catch-all), business heads, and entrepreneurs to describe anything related to something good, most especially profits. In this piece, I use the term to generally refer to “a positive difference”.
EDIT: August 2015: It’s been more than 2 years since I wrote this. I figured I would leave some updated thoughts on this:
- Coding is still a highly sought after skill. And in general, I still see that many people who don’t possess the skill feel they are disadvantaged compared to their coder peers.
- In my original post, I had written that it would be worth non-coder’s while to pick up on some coding skills in order to better prepare them for the future. I’m feeling less confident about this assertion. Coding, in its most effective form, is meant to be a skill used to solve problems. As such, while I’m sure lots of interesting things would come about if someone specialized in another field were to pick up coding, I’m thinking that non-coders should instead, invest in being better problem solvers. The ability to critical think about problems, distill them into their core parts, synthesize data points, make educated inferences, execute on them (through coding or not), and refine them based on feedback and empathy, I believe, is more crucial and valuable than learning to code. As a non-coder, if you feel picking up on coding skills will make you better at solving problems, then do it. This post by Jesse Weaver offers what I think is a better solution. Instead of turning into a coder (unless you really believe it’s a great fit for you), learn instead to empathize and work better with coders.