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.
"If one ox could not do the job they did not try to grow a bigger ox, but used two oxen. When we need greater computer power, the answer is not to get a bigger computer, but... to build systems of comp…"
"It's a beautiful thing, a computer. It's a wonderful thing."
"I've always objected to doing anything over again if I had already done it once."
"I love to teach. I love to talk to young people."
"The difficulty lies, not in the new ideas, but in escaping from the old ones."
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