Table of Contents


Writing Code

“A procedure should fit on a page.”
—David Tribble

“When in doubt, use brute force.”
—Ken Thompson

“The only three numbers a programmer should ever care about are zero, one, and infinity.”
—Willem van der Poel

“The most important single aspect of software development is to be clear about what you are trying to build.”
—Bjarne Stroustrup

“The cardinal sin is to make a choice without knowing you are making one.”
—Jonathan Shewchuk

“The cost of adding a feature isn’t just the time it takes to code it. The cost also includes the addition of an obstacle to future expansion… the trick is to pick features that don’t fight each other.”
—John Carmack

“The road to programming hell is paved with global variables.”
—Steve McConnell

“The psychological profiling [of a programmer] is mostly the ability to shift levels of abstraction, from low level to high level. To see something in the small and to see something in the large.”
—Donald Knuth

“The whole point of getting things done is knowing what to leave undone.”
—Oswald Chambers

“Be careful that victories do not carry the seeds of future defeats.”
—Ralph Stockman


“If it’s your decision, it’s design; if not, it’s a requirement.”
—Alistair Cockburn

“Building a four-foot tower requires a steady hand, a level surface, and 10 undamaged beer cans. Building a 400 foot tower doesn’t merely require 100 times as many beer cans.”
—Steve McConnell

“If we’d asked the customers what they wanted, they would have said, ‘faster horses.‘”
—Henry Ford

“No one has ever found a bug in a piece of vaporware.”

“Amateurs talk strategy and professionals talk logistics.”
—General Omar Bradley

“A program is a poem: you cannot write a poem without writing it. Yet people talk about programming as if it were a production process and measure ‘programmer productivity’ in terms of ‘number of lines of code produced.’ In doing so they book that number on the wrong side of the ledger: We should always refer to ‘the number of lines of code spent.’”
—Edsger Dijkstra

“As a programmer, it’s your job to put yourself out-of-business. What you can do today can be automated tomorrow.”
—Douglas Mcilroy

“Measuring programming progress by lines of code is like measuring aircraft building progress by weight.”
—Bill Gates

“If you can’t write it down in English, you can’t code it.”
—Peter Halpern

“Without requirements or design, programming is the art of adding bugs to an empty text file.”
—Louis Srygley

“A specification, design, procedure, or test plan that will not fit on one page of 8.5-by-11 inch paper cannot be understood.”
—Mark Ardis

“The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.”
—Tom Cargill

“Any program is a model of a model within a theory of a model of an abstraction of some portion of the world or of some universe of discourse.”
—Meir M. Lehman

“Less than 10 percent of the code has to do with the ostensible purpose of the system; the rest deals with input-output, data validation, data structure maintenance, and other housekeeping.”
—May Shaw

“[Thompson’s rule for first-time telescope makers] It is faster to make a four-inch mirror then a six-inch mirror than to make a six-inch mirror.”
—Bill McKeeman

“Build one to throw away - you will anyway.”
—George Stocker

“People don’t want to buy a quarter-inch drill, they want a quarter-inch hole.”
—Theodore Levitt

“We build our computer [systems] the way we build our cities: over time, without a plan, on top of ruins.”
—Ellen Ullman

“Every great developer you know got there by solving problems they were unqualified to solve until they actually did it.”
—Patrick McKenzie

“With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.”
—Hyrum’s Law

“[Chesterton’s Fence] If you don’t see the use of it, I certainly won’t let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it.”
—G. K. Chesterton


“The first step in fixing a broken program is getting it to fail repeatably.”
—Tom Duff

“Finding your bug is a process of confirming the many things that you believe are true - until you find one which is not true.”
—Norm Matloff

“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”
—Brian Kernigham

“The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.”
—Brian Kernigham

“Never test [at runtime] for an error condition you don’t know how to handle.”

“Each new user of a new system uncovers a new class of bugs.”
—Brian Kernighan

“In our business, one in a million is next Tuesday.”
—Gordon Letwin


“Controlling complexity is the essence of computer programming.”
—Brian Kernigham

“If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is.”
—John von Neumann

“A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.”
—John Gall

“Simplicity is prerequisite for reliability.”
—Edsger Dijkstra

“The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.”
—Edsger Dijkstra

“[…] but there is one quality that cannot be purchased that way - and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay.”
—C.A.R. Hoare

“Inside every large program is a small program trying to get out.”
—Tony Hoare

“UNIX is simple. It just takes a genius to understand its simplicity.”
—Dennis Ritchie

“Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build, and test, it introduces security challenges and it causes end-users and administrators frustration.”
—Ray Ozzie

“There are two ways of constructing software. One way is to make it so simple that there are obviously no deficiencies. The other is to make it so complex that there are no obvious deficiencies.”
—C.A.R. Hoare

“The purpose of software engineering is to control complexity, not to create it.”
—Pamela Zave

“The key to understanding complicated things is to know what not to look at.”
—Harold Abelson

“The ability to simplify means to eliminate the unnecessary so that the necessary may speak.”
—Hans Hoffman

“Any intelligent fool can make things bigger, more complex, more violent. It takes a touch of genius - and a lot of courage - to move in the opposite direction.”
—Albert Einstein

“Such is modern computing: everything simple is made too complicated because it’s easy to fiddle with: everything complicated stays complicated because it is hard to fix.”
—Rob Pike

“Simplicity is hard to build, easy to use, and hard to charge for. Complexity is easy to build, hard to use, and easy to charge for.”
—Chris Sacca

“Knowledge is a process of piling up facts. Wisdom lies in simplification.”
—Martin Luther King, Jr.

“Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.”
—Edsger Dijkstra


“[The First Rule of Program Optimization] Don’t do it.” “[The Second Rule of Program Optimization-For experts only] Don’t do it yet.”
—Michael A. Jackson

“In non-I/O-bound programs, a few percent of the source code typically accounts for over half the run time.”
—Donald Knuth

“Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered.”
—Donald Knuth

“The fastest I/O is no I/O.”
—Nil’s-Peter Nelson

“The cheapest, fastest, and most reliable components of a computer system are those that aren’t there.”
—Gordon Bell

“You know that algorithm that all the papers make fun of in their intro? Implement that and forget the rest of the paper.”
—Ian Wong



“Knowledge itself is power.”
—Francis Bacon

“Models should be as simple as possible, but not more so.”
—Attributed to Einstein

“Measure what is measurable, and make measurable what is not so.”
—Galileo Galilei

“Science is simply common sense at its best, that is, rigidly accurate in observation, and merciless to fallacy in logic.”
—Thomas Henry Huxley

“The only relevant test of the validity of a hypothesis is comparison of its predictions with experience.”
—Milton Friedman

“We try things. Occasionally they even work.”
—Rob Balder

“Some people will never learn anything, for this reason, because they understand everything too soon.”
—Alexander Pope

“It is a capital mistake to theorize before one has data.”
—Sir Arthur Conan Doyle

“Those who have taken upon them to lay down the law of nature as a thing already searched out and understood, whether they have spoken in simple assurance or professional affectation, have therein done philosophy and the sciences great injury.”
—Francis Bacon

“Although this may seem a paradox, all exact science is dominated by the idea of approximation. When a man tells you that he knows the exact truth about anything, you are safe in inferring that he is an inexact man. Every careful measurement in science is always given with the probable error… every observer admits that he is likely wrong, and knows about how much wrong he is likely to be.”
—Bertrand Russell


“Statistics is the grammar of science.”
—Karl Pearson

“All knowledge degenerates into probability.”
—David Hume

“If a man will begin with certainties, he shall end in doubts; but if he will be content to begin with doubts he shall end in certainties.”
—Francis Bacon

“There are three types of lies – lies, damn lies, and statistics.”
—Benjamin Disraeli

“If your experiment needs statistics, you ought to have done a better experiment.”
—Ernest Rutherford

“To consult the statistician after an experiment is finished is often merely to ask him to conduct a post mortem examination. He can perhaps say what the experiment died of.”
—Ronald Fisher

“The actual and physical conduct of an experiment must govern the statistical procedure of its interpretation.”
—Ronald Fisher

“You can’t fix by analysis what you bungled by design.”
—Light, Singer and Willett

“He uses statistics as a drunken man uses lamp-posts–for support rather than illumination.”
—Andrew Lang

“It is largely because of lack of knowledge of what statistics is that the person untrained in it trusts himself with a tool quite as dangerous as any he may pick out from the whole armamentarium of scientific methodology.”
—Edwin B. Wilson


“What I cannot create, I do not understand.”
—Richard Feynman

“Study hard what interests you the most in the most undisciplined, irreverent and original manner possible.”
—Richard Feynman

“You think you know when you can learn, are more sure when you can write, even more when you can teach, but certain when you can program.”
—Alan J. Perlis

“If you find that you’re spending almost all your time on theory, start turning some attention to practical things; it will improve your theories. If you find that you’re spending almost all your time on practice, start turning some attention to theoretical things; it will improve your practice.”
—Donald Knuth

“It is unworthy of excellent men to lose hours like slaves in the labour of calculation which could safely be relegated to anyone else if machines were used.”
—Gottfried Wilhelm Leibniz, 1685

“Far better an approximate answer to the right question, which is often vague, than an exact answer to the wrong question which can always be made precise.”
—John Tukey

“Email is a wonderful thing for people whose role in life is to be on top of things. But not for me; my role is to be on the bottom of things. What I do takes long hours of studying and uninterruptible concentration.”
—Donald Knuth

Machine Learning

“People worry that computers will get too smart and take over the world, but the real problem is that they’re too stupid and they’ve already taken over the world.”
—Pedro Domingos

“Programming, like all engineering, is a lot of work: we have to build everything from scratch. [Machine] Learning is more like farming, which lets nature do most of the work. Farmers combine seeds with nutrients to grow crops; [Machine] Learners combine knowledge with data to grow programs.”
—Pedro Domingos

“As one Google Translate engineer put it, ‘when you go from 10,000 training examples to 10 billion training examples, it all starts to work. Data trumps everything.’”
—Garry Kasparov

“A single neuron in the brain is an incredibly complex machine that even today we don’t understand. A single ‘neuron’ in a neural network is an incredibly simple mathematical function that captures a minuscule fraction of the complexity of a biological neuron.”
—Andrew Ng

“Coming up with features is difficult, time-consuming, and requires expert knowledge. ‘Applied machine learning’ is basically feature engineering.”
—Andrew Ng

“I once ran a small neural net 100 times on simple three-dimensional data re-selecting the initial weights to be small and random on each run. I found 32 distinct minima, each of which gave a different picture, and having about equal test set error.”
—Leo Breiman

“The one nice thing about Random Forest is that is doesn’t overfit [as more trees are added]. You can’t have too many trees: it just stabilizes.”
—Trevor Hastie

“The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.”
—Edsger Dijkstra

“Artificial Intelligence is not ‘man versus machine.’ It is ‘man with machines’ versus ‘man without machines.’”
—Stephen Thaler



“If any man is able to convince me and show me that I do not think or act right, I will gladly change; for I seek the truth by which no man was ever injured. But he is injured who abides in his error and ignorance.”
—Marcus Aurelius

“One should respect public opinion insofar as is necessary to avoid starvation and keep out of prison, but anything that goes beyond this is voluntary submission to an unnecessary tyranny.”
—Bertrand Russell

“If it can be destroyed by the truth, it deserves to be destroyed by the truth.”
—Carl Sagan?

“One of the saddest lessons of history is this: If we’ve been bamboozled long enough, we tend to reject any evidence of the bamboozle. We’re no longer interested in finding out the truth. The bamboozle has captured us. It’s simply too painful to acknowledge, even to ourselves, that we’ve been taken. Once you give a charlatan power over you, you almost never get it back.”
—Carl Sagan

“Humankind cannot bear very much reality.”
—T. S. Eliot

“When people thought the Earth was flat, they were wrong. When people thought the Earth was spherical, they were wrong. But if you think that thinking the Earth is spherical is just as wrong as thinking the Earth is flat, then your view is wronger than both of them put together.”
—Isaac Asimov

“A wise man proportions his belief to the evidence.”
—David Hume

“Certain mystes aver that the real world has been constructed by the human mind, since our ways are governed by the artificial categories into which we place essentially undifferentiated things, things weaker than our words for them.”
—Gene Wolfe, Book of the New Sun

“Men must be taught as if you taught them not / And things unknown proposed as things forgot.”
—Alexander Pope

“Above all, don’t lie to yourself. The man who lies to himself and listens to his own lies comes to a point that he cannot distinguish the truth within him, or around him, and so loses all respect for himself and for others.”
—Fyodor Dostoyevsky

“Some of the greatest discoveries consist mainly in the clearing away of psychological roadblocks which obstruct the approach to reality; which is why, post factum, they appear so obvious.”
—Arthur Koestler


“The only good is knowledge and the only evil is ignorance.”

“Violence is the last refuge of the incompetent.”
—Isaac Asimov

“Trust, but verify.”
—Russian Proverb

“When I do good I feel good, when I do bad I feel bad, and that’s my religion.”
—Abraham Lincoln

“When you believe in things that you don’t understand, then you suffer: superstition ain’t the way.”
—Stevie Wonder

“There is a cult of ignorance in the United States, and there always has been. The strain of anti-intellectualism has been a constant thread winding its way through our political and cultural life, nurtured by the false notion that democracy means that ‘my ignorance is just as good as your knowledge.’”
—Isaac Asimov

“The world would be a much simpler place if one could bring about social change merely by making a logically consistent moral argument.”
—Peter Singer

“Any sufficiently crappy research is indistinguishable from fraud.”
—Andrew Gelman



“Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.”
—Stan Kelly-Bootle

“There are only two hard problems in computer science: cache invalidation, naming things, and off-by-one errors.”
—Leon Bambrick

“It ain’t what you don’t know that gets you in trouble. It’s what you know for sure that just ain’t so.”
—Josh Billings?

“A statistician is a person who draws a mathematically precise line from an unwarranted assumption to a foregone conclusion.”

“If it works, it’s obsolete.”
—Marshall Mcluhan

“A Bayesian is one who, vaguely expecting a horse, and catching a glimpse of a donkey, strongly believes he has seen a mule.”

“Beware of bugs in the above code; I have only proved it correct, not tried it.”
—Donald Knuth

“The essence of XML is this: the problem it solves is not hard, and it does not solve the problem well.”
—Phil Wadler

“Nothing is more permanent than a temporary solution.”
—Russian Proverb

“Eschew clever rules.”
—Joe Condon

“The term ‘exponential’ is used quadratically too often.”
—Geoffrey Hinton

“Statistics means never having to say you’re certain.”
—Rob Hyndman

“A mathematician is a device for turning coffee into theorems.”
—Paul Erdos

“Corollary: A co-mathematician is a device for turning ffee into co-theorems.”

“A statistician is someone who is good with numbers but lacks the personality to be an accountant.”

“Anyone who considers arithmetical methods of producing random numbers is, of course, in a state of sin.”
—John Von Neumann

“Learning to program teaches you how to think. Computer science is a liberal art.”
—Steve Jobs

“You either believe in the law of the excluded middle, or you don’t.”
—Lew Lefton

“Pointers are real. They’re what the hardware understands. Somebody has to deal with them. You can’t just place a LISP book on top of an x86 chip and hope that the hardware learns about lambda calculus by osmosis.”
—James Mickens

“Math is all about nuance. For example, there’s a fine line between a numerator and a denominator.”

“Every time I fire a linguist, the performance of the speech recognizer goes up.”
—Frederick Jelinek

“Some people, when confronted with a problem, think ‘I know, I’ll use multithreading.’ Nothhw tpe yawrve o oblems.”
—Eiríkr Åsheim

“The secret to success is an even number of sign errors.”
—John Carmack


A Dozen, A Gross, A Score
\[ \frac{12 + 144 + 20 + 3\sqrt{4}}{7 + 5 \times 11} = 9^2 \] A dozen, a gross, plus a score
Plus three times the square root of four
Divided by seven
Plus five times eleven
Is nine squared (and not a bit more.)
—John Saxon

Word Crunching

a poem
on a page
but then each line grew
to the word sum of the previous two
until I started to worry at all these words coming with such frequency
because, as you can see, it can be easy to run out of space when a poem gets all Fibonacci sequency.
—Brian Bilston

RSA Algorithm \[ p, q \in \mathbb{P} \] \[ n = pq \] \[ \phi = (p-1)(q-1) \] \[ \gcd(e, \phi) = 1 \land d \equiv e^{-1} (\mathrm{mod} \phi) \Rightarrow c = m^e (\mathrm{mod}\ n) \land m = c^d (\mathrm{mod}\ n) \] Take two large prime numbers, $q$ and $p$.
Find the product $n$, and the totient $\phi$.
If $e$ and $\phi$ have GCD one
and $d$ is $e$’s inverse, then you’re done!
For sending $m$ raised to the $e$
reduced $\mathrm{mod}\ n$ gives secre-$c$!
—Daniel G.

A Certain Definite Integral
\[ \int_1^{\sqrt[3]{3}} t^2dt \cos(3\pi/9) = \log(\sqrt[3]{e}) \] The Integral $t$-squared $dt$
From one to the cube root of three
Times the cosine
Of three $\pi$ over nine
Equals log of the cube root of $e$.

Mnemonic For Calculating Sixteen
\[ ln(e^4)\sqrt{1024} + 6 \times 12 - 8 \times 23 = 16 \] The log of $e$ to the four
Times the square root of one thousand twenty four
Adding six dozens please
Minus eight twenty-threes
Is sixteen, case closed, shut the door.

A Complete Circle
\[ e^{2 \pi i} = 1 \] We start with the constant called “pi”
And then multiply by two $i$
Apply exponential
(This step is essential)
And one’s the result - who knows why!
—Dan Shved

Mandelbrot Set (Lyrics)
Just take a point called $Z$ in the complex plane
Let $Z_1$ be $Z$ squared plus $C$
And $Z_2$ is $Z_1$ squared plus $C$
And $Z_3$ is $Z_2$ squared plus $C$
And so on
If the series of $Z$’s should always stay
Close to $Z$ and never trend away
That point is in the Mandelbrot Set
—Jonathan Coulton

Bertrand’s Postulate
Chebyshev said it, but I’ll say it again:
there’s always a prime between $n$ and $2n$.
—N. J. Fine