Skip to main content

Ralsina.Me — Roberto Alsina's website

Hack English Instead

Lots of noise re­cent­ly about Jeff At­wood's post about why you should not learn to code. I am here now telling you you should learn to code. But on­ly af­ter you learn a few oth­er things.

You should learn to speak. You should learn to write. You should learn to lis­ten. You should learn to read. You should learn to ex­press your­self.

Richard Feyn­man once de­scribed his prob­lem solv­ing al­go­rithm as fol­lows:

  1. Write down the prob­lem

  2. Think re­al hard

  3. Write down the so­lu­­tion

Most of us can­not do that be­cause we are not Richard Feyn­man and thus, sad­ly, can­not keep all the so­lu­tion in our head in step 2, so we need to it­er­ate a few times, think­ing (not as hard as he could) and writ­ing down a bit of the so­lu­tion on each loop.

And while we who code are un­usu­al­ly proud of our abil­i­ty to write down so­lu­tions in such a clear and un­for­giv­ing way that even a com­put­er can fol­low them, it's ten, maybe a hun­dred times more use­ful to know how to write it down, or say it, in such a way that a hu­man be­ing can un­der­stand it.

Ex­pla­na­tions fit for com­put­ers are bad for hu­mans and vicev­er­sa. Hu­mans ac­cept much more com­pact, am­bigu­ous, and ex­pres­sive code. You can trans­fer high lev­el con­cepts or de­sign to hu­mans much eas­i­er than to com­put­er­s, but al­go­rithms to com­put­ers much eas­i­er than to hu­man­s.

I have a dis­trust of peo­ple who are able to com­mu­ni­cate to com­put­ers eas­i­er than with fel­low hu­man­s, a sus­pi­cion that they sim­ply have a hole in their skillset, which they could eas­i­ly fix if they saw it as es­sen­tial.

And it is an es­sen­tial skil­l. Pro­gram­mers not on­ly run on cof­fee and sug­ar and sushi and dori­tos, they run on hap­pi­ness. They have a fi­nite en­dow­ment of hap­pi­ness and they spend it con­tin­u­ous­ly, like drunk­en sailors. They per­form an ac­tiv­i­ty where jok­ing­ly they mea­sure pro­duc­tiv­i­ty on curs­es per hour, a lone­ly en­deav­our that iso­lates them (us) from oth­er hu­man­s, from fam­i­ly and friend­s.

If a de­vel­op­er can­not com­mu­ni­cate he iso­lates. When he iso­lates he can't co­op­er­ate, he can­not del­e­gate. He can't give ideas to oth­er­s, he can't re­ceive them, he can't share.

And since lots of our com­mu­ni­ca­tion is via email, and chat, and bug re­port­s, and blogs, it's bet­ter if he can write. A de­vel­op­er who can­not write is at a se­ri­ous dis­ad­van­tage. A de­vel­op­er who can­not write to ex­press an idea can­not ex­plain, he does­n't make his fel­lows bet­ter. He's a knowl­edge black hole, where in­for­ma­tion goes to die be­hind the event hori­zon of his skul­l.

So, learn to write. Learn to speak. Learn to read and lis­ten. Then learn to code.

taj / 2012-05-17 11:38:

He's a knowledge black hole, where information goes to die behind the event horizon of his skull."

Classic line.

Roberto Alsina / 2012-05-17 12:48:

OMFG!!!! Taj, where have you been? How's life?

taj / 2012-05-18 17:16:

All good. :) A bit bored with programming but still curious. Nice to see you blogging prominently again.

Roberto Alsina / 2012-05-18 17:24:

Hehe, so, you gonna come to .ar or should I go to .in? ;-)

Pierpaolo Da Fieno / 2012-05-29 17:37:

As usual your words are quite wise. I tried it on myself and I couldn't express it in better words. If you dive in coding as a way of running away from people and annoying thing in your life, your creative vein will dry up leaving you with bad code and even worse emotions. I love your metaphor with the drunken sailor. Great words.

Contents © 2000-2023 Roberto Alsina