Facebook Pixel
Searching...
English
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Life in Code

Life in Code

A Personal History of Technology
by Ellen Ullman 2017 320 pages
3.97
1k+ ratings
Listen
Listen to Summary

Key Takeaways

1. Programming is More Than Logic: It's an Obsession

People imagine that programming is logical, a process like fixing a clock. Nothing could be further from the truth. Programming is more like an illness, a fever, an obsession. It’s like riding a train and never being able to get off.

Programming's All-Consuming Nature. Programming is not merely a logical exercise but a deeply immersive and often relentless pursuit. It demands intense focus, creativity, and problem-solving skills, often blurring the lines between work and personal life. The programmer's mind becomes consumed with code, details, and potential errors, making it difficult to disconnect.

The Computer's Literal Mind. The challenge lies in translating the chaotic, nuanced world of human understanding into the precise, unforgiving language of computers. Unlike humans, computers take everything at face value, requiring programmers to be meticulous and anticipate every possible input and outcome. This constant translation and attention to detail can be mentally exhausting.

Bugs and Humiliation. The inevitability of errors in code creates a constant sense of vulnerability and potential humiliation for programmers. These errors, often discovered long after the code is written, can damage a programmer's reputation and create a sense of problems trailing behind them through time. This pressure to create perfect code, despite its impossibility, contributes to the obsessive nature of the profession.

2. The Asynchronous Life of a Programmer

Programmers don’t talk because they must not be interrupted.

Interruptions Mean Bugs. Programmers require uninterrupted blocks of time to maintain focus and avoid introducing errors into their code. Any disruption, whether a phone call or a meeting, can derail their train of thought and lead to mistakes. This need for uninterrupted focus creates a life that is out of sync with the schedules and communication styles of other people.

Email Over Phone Calls. Programmers prefer asynchronous communication methods like email or notes over real-time interactions like phone calls or meetings. This allows them to manage their time and attention more effectively, minimizing disruptions to their workflow. The programmer must work in mind-time but the phone rings in real time.

Dreams in Code. The immersive nature of programming can even invade a programmer's dreams, where they find themselves coding everyday situations and conversations. This blurring of the lines between work and personal life further emphasizes the asynchronous nature of the programming life. The author once had to program two people making love.

3. Low-Level Code: The Programmer's Pursuit of Prestige

If you want money and prestige, you need to write code that only machines or other programmers understand. Such code is “low.” It’s best if you write microcode, a string of zeros and ones that only a processor reads.

The Hierarchy of Code. In the programming world, "low-level" code, which interacts directly with the machine, is valued more than "high-level" code, which is used by regular people. This is because low-level code is seen as more complex and challenging, requiring a deeper understanding of computer architecture.

Software Engineer vs. Programmer. The distinction between a "software engineer" and a "programmer" reflects this hierarchy, with engineers typically working on lower-level code and earning more money and prestige. The difference is thousands of dollars a year and a potential fortune in stock.

Frank's Unhappiness. The story of Frank, an office mate who was unhappy writing an end-user query tool, illustrates the desire to be closer to the machine. Frank's unhappiness stemmed from the indignity of writing a program used by normal human beings, leading him to seek a position working on lower-level code.

4. The Disdain Hidden in User-Friendly Interfaces

Underlying every user-friendly interface is a terrific human contempt.

The Imbecile Vision. Graphical user interfaces (GUIs), designed to be "user-friendly," are often built with the assumption that users are unintelligent. To create a crash-resistant system, designers must anticipate and disallow even the dumbest actions, leading to a vision of the user as an imbecile.

Contempt in the Code. This contempt for the user's intelligence is often hidden deep within the code, but it can surface in subtle ways, such as error messages that offer only one possible reply: "OK." The prettier the user interface, and the fewer odd replies the system allows you to make, the dumber you once appeared in the mind of the designer.

The Cult of the Boy Engineer. As computers become more pervasive, this underlying contempt for the user's intelligence spreads into everyday life, reinforcing the cult of the boy engineer and their assumptions about the world. The computer is about to enter our lives like blood into the capillaries.

5. The Cult of the Boy Engineer: A Puerile Culture

This is how I know you’re not a real techie.

Teenage Boy Puerility. The engineering culture is often characterized by a "teen-age boy puerile" atmosphere, with activities like rollerblading, Frisbee playing, and water-balloon wars taking precedence over more mature pursuits. This can create an unwelcoming environment for those who don't fit the mold, particularly women.

Forced Eugenics. Real techies don't worry about forced eugenics. The project team is having lunch and discussing how long it would take to wipe out a disease inherited recessively on the X chromosome. The team members then fall over one another with further suggestions. They start with rewards to discourage carriers from breeding. Immediately they move to fines for those who reproduce the disease. Then they go for what they call “more effective” measures: Jail for breeding. Induced abortion. Forced sterilization.

Eccentricity as Honor. In the programming world, eccentricity is often seen as a sign of intelligence and closeness to the machine. Strange behavior is expected and respected, particularly among senior research engineers.

6. The Internet: A New Form of Engineering Loneliness

To this day, nothing reminds me of engineering loneliness so much as that voice calling CQ through the snow.

The New Ham Radio Operators. The internet, with its bulletin boards and email, has become a new form of ham radio, connecting engineers and programmers through their shared love of machines. This connection, however, can also reinforce a sense of isolation and loneliness.

Calling CQ Through the Snow. The author's memory of a childhood neighbor, Eugene, a ham radio operator calling "CQ" (seek you) through the static, serves as a metaphor for the engineering loneliness that pervades the internet. The internet: Mother’s little helper for the male engineer.

Asynchrony and the Programming Life. The internet, with its asynchronous communication methods, allows programmers to live closer to the machine, free from the obligations of regularly scheduled time. However, this can also lead to a life that is disconnected from the rhythms and connections of everyday human interaction.

7. The Dumbing Down of Programming: A Loss of Control

My programming tools were full of wizards. Little dialogue boxes waiting for me to click “Next” and “Next” and “Finish.” Click and drag, and—shazzam—thousands of lines of working code. No need to get into the “hassle” of remembering the language. No need even to learn it.

Wizards and Templates. Modern programming tools are increasingly designed to simplify the coding process, with wizards and templates that generate large amounts of code with minimal effort. This can make programming more accessible to beginners, but it also risks creating a generation of programmers who lack a deep understanding of the underlying code.

Not-Knowing is a Seduction. The ease of use offered by these tools can be seductive, tempting programmers to rely on pre-built components and avoid the "hassle" of learning the intricacies of the system. This not-knowing is a seduction. I feel myself drifting up, away from the core of what I’ve known programming to be: text that talks to the system and its other software, talk that depends upon knowing the system as deeply as possible.

The Risk of Helplessness. By relying on tools that hide complexity, programmers risk becoming users of components, unable to fix problems or make fundamental changes when things go wrong. This can lead to a sense of helplessness in the face of their own creations.

8. Y2K: A Glimpse into the Fragility of Digital Systems

No one left who understands.

The Millennium Bug. The Y2K problem, caused by the use of two-digit years in computer programs, exposed the fragility of digital systems and the potential for widespread failure. The problem was not a bug, but a conscious decision to maximize the use of scarce resources.

Knowledge Disappearing into Code. The Y2K problem highlighted the tendency for knowledge to disappear into code over time, as programmers come and go and the original understanding of the system is lost. This can lead to situations where no one understands the inner workings of critical systems.

The Fear of the Unknown. The Y2K problem also revealed a deep-seated fear of the unknown, as people began to imagine worst-case scenarios and prepare for the collapse of essential services. This fear was fueled by a lack of transparency and communication between organizations about their Y2K remediation efforts.

9. The Web: A Marketplace of Individualized Isolation

now the world really does revolve around you.

Disintermediation and the Loss of Connection. The commercialization of the web has led to a process of disintermediation, where intermediaries like agents, brokers, and salespeople are removed from the transaction process. This can create a sense of individualized isolation, as people interact with machines rather than other human beings.

The Illusion of Endless Choice. The web offers an unprecedented range of choices, but this can also lead to unhappiness and paralysis. The author's experience of trying to buy a faucet online illustrates the misery-inducing effect of too much choice.

The Cult of the Individual. The web reinforces a cult of the individual, where people are encouraged to retreat from the friction of social space and live in private thought bubbles, reading only those websites that reinforce their desired beliefs. This can lead to a fracturing of society and a loss of shared cultural experiences.

10. Fiber Optic Nights: The Promise and Peril of Bandwidth

We’re laying fiber.

The Promise of Bandwidth. The laying of fiber optic cable, with its potential for vastly increased bandwidth, represents the promise of a more connected and information-rich world. This promise, however, is tempered by the knowledge that the technology will be controlled by large corporations.

The Disruption of Life. The installation of fiber optic cable can also be disruptive to everyday life, with construction crews and noise invading neighborhoods and displacing existing communities. The yoga man disappeared.

The Male Engineer's Internet. The internet is often seen as a tool for male engineers, providing them with a space to connect and exchange information about their machines. This can reinforce a sense of isolation and disconnect from the physical world.

11. The End of the High: The Dot-Com Crash and Its Aftermath

The approach we’re using now to fix Y2K is virtually guaranteed to create failure.

The Irrational Exuberance. The dot-com boom was characterized by irrational exuberance, with investors pouring money into companies that had no clear path to profitability. This was fueled by a belief that technology was different and that traditional rules of economics did not apply.

The Transfer of Wealth. The dot-com crash resulted in a massive transfer of wealth from the general public to venture capitalists and insiders who sold their stock at inflated prices. The public rushed right back in.

SOMA Goes Dark. The aftermath of the crash left SOMA deserted, with startups failing and the energy of the neighborhood extinguished. The area was left to the few who remained, a reminder of the boom and bust cycles of the technology industry.

12. The Quest for Artificial Life: A Search for What It Means to Be Human

I really wonder whether there will be human beings.

The Post-Human Vision. Computer science, in its quest to create artificial life, is grappling with the question of what it means to be human. Some researchers envision a future where "spiritual robots" replace human beings, surpassing our capabilities and perhaps even controlling us.

The Three Answers. Cybernetics has come up with three answers to the question "What are humans?": We are computers, we are ants, and we are accidents. These answers reflect a shift in perspective from seeing humans as unique beings to viewing us as engineered systems.

The Body and the Soul. The quest for artificial life often involves a disdain for the body, a desire to separate intelligence from the messy realities of flesh and emotion. This reflects a belief in the separability of mind and matter, a concept that has been debated for centuries.

Last updated:

Review Summary

3.97 out of 5
Average of 1k+ ratings from Goodreads and Amazon.

Life in Code is a collection of essays spanning 20 years, offering insights into technology, programming, and cultural shifts. Readers appreciate Ullman's unique perspective as a female programmer and her eloquent writing style. The book covers topics like Y2K, AI, and Silicon Valley culture. While some essays feel dated, many remain relevant and thought-provoking. Ullman's personal stories and criticisms of tech culture resonate with readers, though some find certain sections less engaging. Overall, the book is praised for its intelligent commentary on the evolving tech landscape.

Your rating:

About the Author

Ellen Ullman is an author and former software engineer who began her career in the early days of personal computing. She has written several books, including the memoir Close to the Machine and the novels The Bug and By Blood. Ullman's work often explores the intersection of technology and society, drawing from her experiences as a rare female programmer in a male-dominated field. Her writing has garnered critical acclaim, with The Bug being named a New York Times Notable Book. Based in San Francisco, Ullman continues to provide insightful commentary on the tech industry and its cultural impact.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Get personalized suggestions
Ratings: Rate books & see your ratings
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Apr 26,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Appearance
Loading...
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →