Coders - by Clive Thompson
A book depicting what itâs like to be a coder, and how they (and their programs) affect the society. I think itâs a good read even for coders themselves, especially the second half, to understand how good intentions can lead to societal problems. I find the first half interesting too – after years of corporate life, it reminded me coding can (and should) be fun. Canât believe how many of my perspectives toward coding have been skewed by my job.
Highlights #
Coding #
- If you spend enough time around complex old systems, âyou realize that the fastest, shortest way to a deep, solid, elegant integration is just by putting another layer of dirt on top.â
- In the world of coding, this sort of fix is whatâs known as an âencasement strategyââfixing a hairy, complex system by boxing it in.
- Coding vs. writing
- In contrast, I have no such simple affirmations of the efficacy of my journalism. You cannot really ask whether any particular Wired column I write is âworkingâ; writing does not possess similarly binary pass-fail parameters.
- Most coding is about breaking a big, hard task down into small pieces.
- The upshot is that this can produce a remarkably soothing sense of progress.
- Research by the Harvard professor Teresa M. Amabile and researcher Steven J. Kramer has found that employees are happiest at jobs where they experience âthe power of small winsââregular, daily, visible progress.
- Coding gave me precisely that sense of linear, regular achievement. Writing rarely did. Producing a book always feels more like piloting a boat across a foggy lake. I know Iâll eventually arrive at my destination, but the voyage will be filled with nail-biting doubt about my bearings.
- âRefactoringâ is, in a way, like editing.
- âYou donât have âcoderâs blockâ the way you have âwriterâs block,ââ she told me. âOf course some writers really love writing. But you hear so much about the agony of writing, the procrastination. Whereas I find with programmers, you donât find the same agony. If anything, itâs, like, âYeah, I want to get back to coding!ââ
Coders #
- What type of personality, what type of psychology, makes someone good at programming?
- Some traits are the obvious ones. Coders tend to be good at thinking logically, systematically⊠(Philosophy students, it seems, make excellent coders: I met philosophy majors employed at Kickstarter, start-ups, and oodles of other firms.) Coders are curious, relentlessly so, about how things work.
- But if you had to pick the central plank of coder psychology, the one common thread in nearly everyone who gravitates to this weird craft? Itâs a boundless, nigh masochistic ability to endure brutal, grinding frustration.
- What are they actually doing, most of the time? Finding bugs.
- Coding is, in a profound way, less about making things than about fixing them. The pioneering computer scientist Seymour Papert had a koan: No program works right the first time.
- Why can coders be so snippy? Atwood asks, rhetorically. He thinks itâs because working with 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,â
- âThe programmer personality is someone who has the ability to derive a tremendous sense of joy from an incredibly small moment of success.â
- The phrase âuser-friendlyâ is itself hilariously revealing: It implies that most software is âuser-hostile,â until someone can wrest the design from the codersâ hands and get it in the mitts of someone who actually understands how real humans function.
- For many programmers, a profound allure of coding is that itâs a refuge from the unpredictability of humans, from their grayscale emotions and needs.
- This love of objective, tangible results underpins most forms of engineering.
Obsessed with automation
- The upshot is that most coders arrive at the same logic, which we could summarize thusly: (a) Doing things repeatedly or at the same time every day is boring, and Iâm terrible at it. By contrast, (b) slavishly and meticulously doing the same task again and again is easy for the deathless machine sitting on my desk. Thus, (c) I am going to automate every single thing I possibly can.
- As it turns out, this experience of mine is a common syndrome among programmers. The more I asked around, the more stories I heard of people spending more time writing a program to automate an action than it would take to simply do the damn thing itself.
Obsessed with efficiency
Programmers are obsessed with efficiency. It is the one thing Iâve encountered in essentially every coder Iâve met. Coders might be wildly diverse in other waysâpolitically, socially, culturally, what have you. But nearly every one found deep, almost soulful pleasure in taking something inefficient and ratcheting it up a notch. Removing the friction from a system is an aesthetic joy; their eyes blaze when they talk about making something run faster, or how they eliminated some bothersome human effort from a process.
In part, this lust for efficiency isnât unique to software developers. Engineers and inventors of all stripes have long been obsessed with it. Hoâs chart seemed amiably nuts, but it reminded me of the original American hacker and engineer, Benjamin Franklin.
- Franklin wasnât just interested in optimizing the physical world, though. He also thought his moral and ethical qualities should be tracked and tweaked for maximum improvement, too. So he wrote down thirteen âvirtues,â including âIndustry. Lose no time; be always employâd in something useful; cut off all unnecessary actions,â and âFrugality. Make no expense but to do good to others or yourself; i.e., waste nothing.â Then he printed them on a chart, with the virtues in rows and the days of the week in columns, so he could track daily how often he practiced good behavior, with a satisfying Puritan tick of the pencil.
In a very data-scientist fashion, she rebels at the idea that a single archetype can hold true across an ever-larger cohort of coders worldwide. The population has grown so huge that you canât generalize across the entire field anymore when it comes to personality.
The elder coders all used Vim; âreal coders use Vim,â they more or less told her. So she forced herself. At first it was ungainly and awkward; she kept on wanting to use her usual mouse-or-arrow-key movements to navigate. But after three weeks of painstakingly reprogramming her habits, it clickedâand suddenly she felt a cyborgic level of oneness with the machine, a sort of âI know kung fuâ moment reminiscent of The Matrix. âYouâre one with the keyboard,â she marvels. âThereâs no moment when I have to break away from my train of thought.â
Paul Graham refers to it as the collision between the âmakerâs scheduleâ and the âmanagerâs schedule.â The work of managers, he points out, is composed almost entirely of meetings. Managersâ jobs are to make sure things are going well, so they block out their day in one-hour increments, meeting with a different employee every hour. So they think nothing of asking a coder to come in at 1:00 p.m. and have a check-in meeting. But for the coders, that meeting destroys any chance of getting into a long flow state. âI find one meeting can sometimes affect a whole day,â Graham wrote. âA meeting commonly blows at least half a day by breaking up a morning or afternoon. But in addition thereâs sometimes a cascading effect. If I know the afternoon is going to be broken up, Iâm slightly less likely to start something ambitious in the morning. I know this may sound oversensitive, but if youâre a maker, think of your own case.
Societal impact #
- Once advertising and growth become the two pillars of a big-tech firm, then itâs nearly inevitable that theyâll seduce their users into endless, compulsive useâor âengagement,â as itâs euphemistically called.
- While still at Google, Williams began to do doctoral research into our attention and how modern tech was affecting it. âNobody goes into tech thinking, I want to spy on people and make the world a worse place,â he said. âTheyâre well intentioned.â But the business models have a propulsive force of their own. Eventually, after ten years at Google, Williams left; he wound up at the University of Oxford, where he wrote Stand Out of Our Light, a penetrating meditation on the civic and existential dangers of big tech. âIâve gone from one of the newest institutions on the planet to one of the oldest,â he says wryly.
- As scholars have found, social algorithms around the internet all seem to reward material that triggers strong emotions.
- My friend Zeynep Tufekci, an associate professor at the University of North Carolina who has long studied techâs effect on society, argued in early 2018 that YouTubeâs recommendations tend to overdistill the preferences of usersâpushing them toward the extreme edges of virtually any subject. After watching jogging videos, she found the recommendation algorithm suggested increasingly intense workouts, such as ultramarathons. Vegetarian videos led to ones on hard-core veganism. And in politics, the extremification was unsettling. When Tufekci watched Donald Trump campaign videos, YouTube began to suggest âwhite supremacist rantsâ and Holocaust-denial videos; viewing Bernie Sanders and Hillary Clinton speeches led to left-wing conspiracy theories and 9/11 âtruthers.â
- Engineers who build huge systems, like economists with their models, see the world in the aggregate, not in the particular. âOne of the dangers of the tech community is that their fixation on data models means that they donât see the humanity based in them,â says boyd, who today runs the Data & Society think tank.
- The first generation of social networks were built and funded by techies who regarded âconnecting peopleâ as the only goal, as danah boyd points out. They naively hoped that all the hard stuffâgetting humans to actually understand each other, to bridge their big political differencesâwould happen automatically. It didnât. It canât.
- Indeed, one problem with assuming coding is crucial to navigating the worldâs future problems is that this drifts dangerously toward Silicon Valleyâstyle solutionismâassuming that, hey, every problem in the world should be solved with some software! âIt puts the method before the problem,â Atwood noted. âBefore you go rushing out to learn to code, figure out what your problem actually is. Do you even have a problem? Can you explain it to others in a way they can understand? Have you researched the problem, and its possible solutions, deeply? Does coding solve that problem? Are you sure?â The whole reason the humanities are still a crucial field of study is that they help us understand the grayscale, maddening complexities of human behavior. They help us define our vision for society and the human spirit, which is the crucial first step before grappling with which toolsâcoding? plumbing? urban planning?âcan help us achieve it.
Anti venture capital
- Glitchâs Anil Dash thinks coders with start-up ideas should consider avoiding venture capitalâor take as little of it as they can. Thatâs because investors will insist on hockey-stick growth, and that pushes the firm down the slippery slope to terrible design.
- David Heinemeier Hansson. Heâs a coder who watched ad-based businesses fall apart in the dot-com crash of the â90s and thus decided to write only software that people would be willing to pay money for. So he started making an organizational tool called Basecamp,
- âThereâs a magical relationship you have with people who are paying you money,â he tells me.
- On the other side â
- if theyâd charged for their services, theyâd have pushed away millions of lower-income peopleâand billions in the developing world. Many of those people have enjoyed enormous personal and economic benefits from social media, but theyâd never have had the chance if required to pay even one dollar a month.
More than just coding
And if theyâve studied very little of the humanitiesâhistory, sociology, literatureâthey often have what Northrop Frye might have called an âuneducated imaginationâ: They have little ability to envision what motivates the users of their software.
âPeople with liberal arts degrees, theyâre critical thinkers,â
Amazonâs success is predicated on rendering life into a carousel of instant gratification, as the computer engineer and director Ruhi Sarikaya notes: âFriction is any variable that impedes your progress toward a goal, whether itâs purchasing a product or navigating traffic to make your nine a.m. meeting on time. Amazon is obsessively focused on reducing or eliminating frictionâthink one-click ordering, Amazon Prime, or Amazon Go.â
âItâs our generationâs crack cocaine,â as the tech entrepreneur Rameet Chawla wrote. âPeople are addicted. We experience withdrawals. We are so driven by this drug, getting just one hit elicits truly peculiar reactions.â Psychologists probably could have predicted this behavior: Back in the â70s, the social psychologist Donald Campbell pointed out that if you use a single measurement to reward people, theyâll do everything they can to goose that number higher. (Itâs now known as âCampbellâs Law.â)