mantra |ˈmantrə, ˈmän-|
(originally in Hinduism and Buddhism) a word or sound repeated to aid concentration in meditation.
• a Vedic hymn.
• a statement or slogan repeated frequently
• something people repeat all the fucking time without caring if it’s true.
Mantras are all the rage these days. Here in the valley it is difficult to swing a dead venture capitalist around your head without hearing the rotting carcass repeating some phrase that sounds credible. Until you spend more than 30 seconds thinking about it. The corpse gets extra points for including “gamification”, “big-data” or any sort of German sounding superlative: ”Nietzche-ing the gamification of big data analytics”. (I hear the soft rustling of term sheets getting hard just thinking about something this gamechanging.) So here’s the latest mantra that I’m hearing more and more that is starting to make sense less and less: “If you’re not ‘technical’ you should learn how to code.”
How can I put this succinctly: This statement is complete bullshit.
If you are not technical and you don’t want to be technical do the world a favor: don’t learn how to code.
If you don’t believe me that this latest piece of often repeated “conventional wisdom” is the worst sort of bullshit by all means read the rest of this rant and give me an opportunity to change your mind.
Perhaps you, dear reader, have dined out. Maybe even at a restaurant that doesn’t consider an espresso one of the four food groups. Major variances aside, the scene probably unfolds like this: You’re seated at a table. A few minutes later a menu is placed in front of you; a waiter of above average competence takes your drink order and asks if you’d like a cocktail. You have time to peruse the menu in relative ease. It has been a long week; you decide on something traditional – Caesar salad and a steak medium rare. A dry gin martini is just the cocktail to kick things off. Then perhaps a juicy Cote Du Rhone to match to the steak. At this point, the waiter comes back to you and comments on your exquisite taste in the selection of the wine and of the meal in general. You’re anticipating the fresh crisp of the lettuce. The sweet pepper-salt taste of the steak warm from the grill. The waiter strolls towards your table. He has a cart before him. Coming along side your table, he reveals what’s hidden beneath the cover: An apron, several butchers knives of questionable sharpness and directions on how to operate the commercial grill in the kitchen. He then slaps you across the face and tells you to learn how to cook your own goddamn steak.
Kind of ruins the mood, yeah?
Learning to code just to make a product is like going to a restaurant and having to know how to cook before ordering. Wait – it is worse than that – it is like having to attend five years at a top culinary school before you’re allowed to even look at the menu. The difference here? No sane individual would consider entering the kitchen of a Three Michelin Star restaurant and telling the chef how to cook a meal. If you sat down for a meal at the low low cost of three hundred euro a plate and then had the staff refuse to serve you unless you could prove you know how to cook you’d likely depart the restaurant a wee bit pissed off.
Telling someone that they should learn to code is analogous.
Reducing a professional task – creating good software – to something that can recreated by following these simple steps…. or a list of instructions (Insert code fragment A into compiler slot B) ignores exactly how complicated creating good software is. It ignores nuance. Being “good” at anything requires knowledge but more importantly it demands context.
Still think that this hyperbole? Assembling IKEA furniture is the number one task on Task Rabbit. Ikea is designed for self assembly; software as a general rule is not. Still don’t believe me? Watching KungFu movies doesn’t give you the ability to fight. It will let you get your ass kicked by someone who has studied how to fight and painfully demonstrate how the context of fighting is different than the knowledge of fighting. If you insist that straw-men be planted firmly in the hay bales of reality consider the medical profession. Medical residency gives admittedly knowledge rich MDs the proper context to become effective physicians.
The next time someone glibly throws out “just learn how to code”. I humbly submit that you should tell them that you’ve watched a whole season of ER and are willing to operate