Book Notes: âCodersâ by Clive Thompson
What follows are a number of excerpts I wanted to note down from my reading of Coders by Clive Thompson.
A couple of the excerpts from across the book that I found funny as they capture the exasperation of programming:
When you meet a coder, youâre meeting someone whose core daily experience is of unending failure and grinding frustration. (17)
The entire activity of programming is an exercise in continual failure. (72)
Part of the thrill [of programming is] the sheer unpredictably of when a piece of code will suddenly cooperate, suddenly begin functioning. When youâre chasing a bug, success could be a day from now. Or it could be fifteen seconds from now. Who knows? This sporadic nature of success is eerily similar to the psychology behind casinos. (73)
I think everybody that does [programming] for a career or does [it] long term has an unnatural, and almost unhealthy, satisfaction with problem solving. â Rob Spectre (73)
An interesting story behind the culture of âmessinessâ at Netscape in the early days:
If a coder pushed out an update that âbroke the buildâ...the other Netscape engineers would hang a yellow lemon over his chair...It was both a mark of shame (you wrecked the browser because your code was sloppy) and something to which you aspired (you wrecked the browser because you were being daring and trying something new) [one employee noted]: âif you never had the lemon, that was bad. If you had the lemon all the time, that was bad. So it became this interesting part of the culture of appreciating the right amount of breakage. (47)
An opinion on the âoccupational hazardâ of being a programmer as it relates to your personality.
Why can coders be so snippy? [Jeff Atwood] thinks itâs because working computers all day long is like being forced to share an office with a toxic, abusive colleague. âIf you go to work and everyone around you is an asshole, youâre going to become like that,â Atwood says. âAnd the computer is the ultimate asshole. It will fit completely and spectacularly if you make the tiniest error. âI forgot a semicolon.â Well guess what, your spaceship is a complete ball of fire because you forgot a fucking semicolon.â [a reference to the Mariner 1 spacecraft incident].
âThe computer is a complete asshole. It doesnât help you out at all.â Attwood explains. Sure, your compiler will spit out an error message when things go wrong, but such messages can be Delphic in their inscrutability. When wrestling with a bug, you are brutally on your own; the computer sits there cooly, paring its nails, waiting for you to express what you want with greater clarity. âThe reason a programmer is pedantic,â Atwood says, âis because they work with the ultimate pedant. All this libertarianism, all this âmeritocracy,â it comes from the computer. I donât think itâs actually healthy for people to have that mind-set. Itâs an occupational hazard! Itâs why you get the stereotype of the computer programmer whoâs being as pedantic as a computer. Not everyone is like this. But on average itâs correct.â (68)
An insight into the after effects of coming out of coding. Iâve found this to be true myself and have to âwind downâ from coding before, say, going back inside the house to family.
[A particular programer] has noticed thereâs a mental transition-time that comes with coding. The work is so mentally all-absorbing and requires such exactitude that itâs hard to step away. The code still haunts the mind.
Itâs like coming up from a long dive underwater: you have to do it slowly. âItâs an engineer-technologist version of the bends.â
Great quote from Konrad Zuge, inventor of the first digital computer:
The danger that computers will become like humans is not as great as the danger that humans will become like computers.
Possible substance behind the myth of a 10x programmer continues:
coding is an insight-based form of labor, more akin to writing a poem. Merely adding more people doesnât help, because the solution to any problem is liable to come not from the sweat of many brows but from the lightning-strike aha moment of a single insightful individual. (153)
On Todayâs âAIâ
This is the central truth of much of todayâs neural-net AI: It requires extracting information from real live humans, so the AI has something to learn from. (283)
Big data processes codify the past. They do not invent the futureâMathematician Cathy OâNeil (291)
Deep learning is good...at pattern recognition. But human thinking isnât just pattern matching. (301)
Pitfalls of data-driven design:
[engineers] test each new tweak and tricky by using A/B tests: Make the alert red, make it yellow, and see which one users click on more often. Red wins, so it must be the right choice! This data-driven form of design can make each psychological trick seem objectively correct: If users click on it, it must be what they want. To the scale-driven engineering mind, the ethical questions of âWhat should we be making?â Are easily subsumed into the sheerly technical questions of âwhat will help the system grow more and have a bigger throughput?â (314)
When scale comes in, human judgement gets pushed out. (316)
Perspective on the term âusersâ:
When your customers are paying you money, you can actually call them customers and not users, which is a term from drug dealing.âDavid Heinemeier Hansson. (336)