Grace Hopper — "There are two things that are hard in computer science: cache invalidation, nami…"
There are two things that are hard in computer science: cache invalidation, naming things, and off-by-one errors.
There are two things that are hard in computer science: cache invalidation, naming things, and off-by-one errors.
Click any product to generate a realistic preview. Up to 3 at a time.
* Initial load can take up to 90 seconds — revising the preview in another color is nearly instant.
"The computer is a tool, not a master."
"The most important thing I've accomplished, other than building the compiler, is training young people."
"You manage things, you lead people. We went overboard on management and forgot about leadership. It might help if we ran the MBAs out of Washington."
"I will not take what you need to give me. I will take what you want to give me."
"One accurate measurement is worth a thousand expert opinions."
A well-known joke in computer science, sometimes attributed to her or similar figures.
Date: Unknown
GeneralFound in 1 providers: grok
1 source checked
The quote jokes that listing 'two hard things' actually names three, making it a self-demonstrating off-by-one error. It captures real programming pain: cache invalidation means keeping stored data consistent with its source when underlying data changes, and naming things means choosing clear, accurate identifiers for variables and functions. The humor lands because the enumeration itself commits the exact mistake it describes, a moment every programmer immediately recognizes.
Hopper invented the first compiler and co-developed COBOL, spending decades wrestling with precisely these problems. Designing readable business-language syntax meant agonizing over naming conventions, while compiler construction demanded flawless precision where off-by-one errors crashed systems. She famously carried a foot of wire to illustrate a nanosecond, showing her obsession with exactness. Her career was defined by making computing legible and dependable, the daily battle these 'hard things' represent.
Mid-20th century computing lacked debuggers, version control, and established conventions. Hopper's era saw COBOL and FORTRAN competing partly over naming readability, while memory scarcity made caching critical but treacherous. Programmers were inventing disciplines from scratch with no textbooks. An off-by-one error could corrupt a military payroll run or crash a census tabulation with no stack trace to aid recovery. These weren't abstract frustrations but career-defining crises solved through painstaking manual inspection.
AI-generated insights based on extensive research and information for context. Factual errors? Email [email protected].
Your cart is empty