Skip to content

Instantly share code, notes, and snippets.

@Potherca
Last active July 20, 2024 07:09
Show Gist options
  • Save Potherca/5cd28e2a812e5c65c9f7320e0726da18 to your computer and use it in GitHub Desktop.
Save Potherca/5cd28e2a812e5c65c9f7320e0726da18 to your computer and use it in GitHub Desktop.
Programming Quotes (source: http://www.defprogramming.com)
📝️ This document is part of several gists with Programming Quotes:
5ffd57393a85553ab55b
5cd28e2a812e5c65c9f7320e0726da18
b6a6676a84b51c8200d0673a5b4a87c5

Programming Quotes

"Formal education will make you a living. Self-education will make you a fortune." ~ Jim Rohn

"Programming is not easy like Sunday morning, it is silent poetry." ~ Waseem Latif

"The best way to get the right answer on the internet is not to ask a question; it's to post the wrong answer." ~ Cunningham's Law

"A good API is not just easy to use but also hard to misuse." ~ JBD

"In carpentry you measure twice and cut once. In software development you never measure and make cuts until you run out of time." ~ Adam Morse

"These days, the problem isn't how to innovate; it's how to get society to adopt the good ideas that already exist." ~ Douglas Engelbart

"If you say "I told you so", you are the one who has failed. Because you knew, but did not manage to stop the train wreck." ~ Robert C. Martin

"What one programmer can do in one month, two programmers can do in two months." ~ Frederick P. Brooks

"Programmers have to fight against the two most destructive forces in the universe: entropy and stupidity." ~ Damian Conway

"Promoting a good developer to management is often a twofold bad move: you'll lose a good developer and get a poor manager." ~ Mario Fusco

"Software being "Done" is like lawn being "Mowed"." ~ Jim Benson

"90% of the functionality delivered now is better than 100% delivered never." ~ Brian W. Kernighan & P. J. Plaugher

"Bad programmers worry about the code. Good programmers worry about data structures and their relationships." ~ Linus Torvalds

"The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague." ~ E. W. Dijkstra

"Almost every attempt at making something better will be regarded by someone else as a personal attack." ~ Chris Sacca

"An evolving system increases its complexity unless work is done to reduce it." ~ Meir Lehman

"UNIX is simple. It just takes a genius to understand its simplicity." ~ Dennis M. Ritchie

"Go is the language JavaScript programmers retire to when they get old. Like the Florida of programming languages." ~ Jed Schmidt

"I know testers who make good devs. I know devs who make good testers. I know Scrum Masters who make good coffee." ~ David Evans

"We crave for new sensations but soon become indifferent to them. Wonders of yesterday are today common occurrences." ~ Nikola Tesla

"Hardware eventually fails. Software eventually works." ~ Michael Hartung

"That which optimizes one part of the system necessarily undermines the system as a whole." ~ Eric Ries

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

"Teams are immutable. Every time someone leaves, or joins, you have a new team, not a changed team." ~ Richard Dalton

"Start out with finding the right problem to solve. This is a combination of "what customers are asking for", "what customers don't even know they want yet" and "what can be solved with something simple to understand and manage"" ~ Radia Perlman

"There's nothing more permanent than a temporary hack." ~ Kyle Simpson

"It can be better to copy a little code than to pull in a big library for one function. Dependency hygiene trumps code reuse." ~ Rob Pike

"A programmer does not primarily write code; rather, he primarily writes to another programmer about his problem solution. The understanding of this fact is the final step in his maturation as technician." ~ anonymous

"Telling a programmer there's already a library to do X is like telling a songwriter there's already a song about love." ~ Pete Cordell

"The best error message is the one that never shows up." ~ Thomas Fuchs

"Almost without exception, the best products are developed by teams with desire to solve a problem; not a company's need to fulfil a strategy." ~ Jeff Weiner

"A Fallacy of Software: If it works, and we don't change anything, it will keep working." ~ Jessica Kerr

"(...) Thinking this way will teach you two things about computers: One, there's no magic, no matter how much it looks like there is. There's just work to make things look like magic. And two, it's crazy in there." ~ Paul Ford

"Programmers are often angry because they're often scared." ~ Paul Ford

"Well-designed components are easy to replace. Eventually, they will be replaced by ones that are not so easy to replace." ~ Sustrik's Law

"Things that are impossible just take longer." ~ Ian Hickson

"Always bet on JavaScript." ~ Brendan Eich

"Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations." ~ Conway's law

"Good engineers make solutions obsolete. Great engineers make themselves obsolete." ~ Jordan W

"Big data is like teenage sex: everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it..." ~ Dan Ariely

"And the reason these things take a generation is because ultimately we do not change people's minds. We have to wait for the previous generation to retire or die before we can get critical mass on the next idea. So it's like we look around: "Are they gone?"" ~ Douglas Crockford

"There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity." ~ Frederick P. Brooks

"Treat your code like poetry and take it to the edge of the bare minimum." ~ Ilyo

"The best reaction to "this is confusing, where are the docs" is to rewrite the feature to make it less confusing, not write more docs." ~ Jeff Atwood

"Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming." ~ Rob Pike

"No code is faster than no code." ~ merb motto

"When in doubt, leave it out." ~ Joshua Bloch

"Languages that try to disallow idiocy become themselves idiotic." ~ Rob Pike

"Security is a state of mind." ~ NSA Security Manual

"A program is like a poem: you cannot write a poem without writing it." ~ E. W. Dijkstra

"The key is to acknowledge from the start that you have no idea how this will grow. When you accept that you don't know everything, you begin to design the system defensively... You should spend most of your time thinking about interfaces rather than implementations." ~ Nicholas Zakas

"It's important to remember that when you start from scratch there is absolutely no reason to believe that you are going to do a better job than you did the first time. First of all, you probably don't even have the same programming team that worked on version one, so you don't actually have "more experience". You're just going to make most of the old mistakes again, and introduce some new problems that weren't in the original version." ~ Joel Spolsky

"I hate code, and I want as little of it as possible in our product." ~ Jack Diederich

"The craft of programming begins with empathy, not formatting or languages or tools or algorithms or data structures." ~ Kent Beck

"Writing software as if we are the only person that ever has to comprehend it is one of the biggest mistakes and false assumptions that can be made." ~ Karolina Szczur

"Scrum is like the rules of soccer. Following them does not make you a good player." ~ Jeff Sutherland

"The art of programming is the art of organizing complexity, of mastering multitude and avoiding its bastard chaos as effectively as possible." ~ E. W. Dijkstra

"What matters for simplicity is that there's not interleaving." ~ Rich Hickey

"Blame the implementation, not the technique." ~ Tim Kadlec

"Programmers are as emotional and irrational as normal people." ~ Douglas Crockford

"Simplicity is about subtracting the obvious and adding the meaningful." ~ John Maeda

"If you're actually doing TDD, you're throwing away tests all the time, as your understanding of what the code is changes." ~ Kerri Miller

"Programs, like people, get old. We can't prevent ageing, but we can understand its causes, limit its effects and reverse some of the damage." ~ Mario Fusco

"A person without data is just another person with an opinion." ~ anonymous

"Get out of the way of your developers or lose them to someone who will." ~ Adrian Cockcroft

"As a Lead JavaScript Engineer, I try to get my team to write as little JavaScript as possible." ~ anonymous

"Most of the biggest problems in software are problems of misconception." ~ Rich Hickey

"Easy is not to be underestimated. Easy taps the pool of talent and ideas out there that were turned off by hard." ~ Chris Anderson

"What exactly makes a great platform? It's about what your business puts into its platform and what your consumers and/or business partners get out of it. And that's the point. A platform either fits into an overall corporate strategy or it doesn't." ~ Phil Simon

"If you are choosing a JavaScript library purely based on popularity, I think you deserve what you get." ~ Tom Dale

"It's a lot easier to talk about code than it is to write code." ~ John O'Nolan

"Not all eyes that notice bugs in Open Source code belong to saints who will report or repair them in the interest of the public good." ~ Martin Fowler

"The amount of energy necessary to refute bullshit is an order of magnitude bigger than to produce it." ~ Alberto Brandolini

"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." ~ Robert A. Heinlein

"A generalist is a jack-of-all-trades but a master of none, whereas a generalizing specialist is a jack-of-all-trades and master of a few. Big difference." ~ Scott Ambler

"A generalist is a jack-of-all-trades but a master of none, whereas a generalizing specialist is a jack-of-all-trades and master of a few. Big difference." ~ Scott Ambler

"Do not use humans for jobs computers can do better - this is a waste of human energy and creativity, the only real resource on this planet, and demeans the human spirit." ~ J. Paul Morrison

"Feature-based releases expand to fill all available time until someone feels guilty for not finishing the feature on a magical, wish-fulfillment schedule, and hey, has it been a couple of years already?" ~ chromatic

"Users who want critical bug fixes and new features without actually upgrading their software also want magic flying candy-dropping ponies." ~ chromatic

"The best way to prepare [to be a programmer] is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and fished out listings of their operating system." ~ Bill Gates

"First do it, then do it right, then do it better." ~ Addy Osmani

"Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity." ~ David Gelernter

"When in doubt, use brute force." ~ Ken Thompson

"If McDonald's were run like a software company, one out of every hundred Big Macs would give you food poisoning, and the response would be, "We're sorry, here is a coupon for two more."" ~ Mark Minasi

"Rails has done more for startups than a whole boatload of Venture Capitalists." ~ Eric Ries

"No matter how slick the demo is in rehearsal, when you do it in front of a live audience the probability of a flawless presentation is inversely proportional to the number of people watching, raised to the power of the amount of money involved." ~ Mark Gibbs

"Tests are the Programmer's stone, transmuting fear into boredom." ~ Kent Beck

"Simple doesn't mean stupid. Thinking that it does, does." ~ Paul Krugman

"You do not really understand something unless you can explain it to your grandmother." ~ Albert Einstein

"Just because something is easy to measure doesn't mean it's important." ~ David Heinemeier Hansson

"In many ways, the prism of computer science is harmful for the development of information systems." ~ David Heinemeier Hansson

"Talk is cheap. Show me the code." ~ Linus Torvalds

"[Most managers] may defend the schedule and requirements with passion; but that's their job. It's your job to defend the code with equal passion." ~ Robert C. Martin

"Perl: The only language that looks the same before and after RSA encryption." ~ Keith Bostic

"If Java had true garbage collection, most programs would delete themselves upon execution." ~ Robert Sewell

"If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization." ~ Gerald Weinberg

"One of my most productive days was throwing away 1000 lines of code." ~ Ken Thompson

"When debugging, novices insert corrective code; experts remove defective code." ~ Richard Pattis

"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 W. Kernighan

"Nine people can't make a baby in a month." ~ Frederick P. Brooks

"The most important property of a program is whether it accomplishes the intention of its user." ~ C. A. R. Hoare

"Object-oriented design is the roman numerals of computing." ~ Rob Pike

"The problem with object-oriented languages is they've got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle." ~ Jason Gorman & Joe Armstrong

"Node.js is a tumor on the programming community, in that not only is it completely braindead, but the people who use it go on to infect other people who can't think for themselves." ~ Ted Dziuba

"The first step of any project is to grossly underestimate its complexity and difficulty." ~ Nicoll Hunt

"Sure I could program in PHP, but I could also use a sundial to tell time." ~ anonymous

"Write code every day." ~ John Resig

"The strength of JavaScript is that you can do anything. The weakness is that you will." ~ Reg Braithwaite

"Sometimes, the elegant implementation is just a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack

"The most secure code in the world is code which is never written." ~ Colin Percival

"If we have data, let's look at data. If all we have are opinions, let's go with mine." ~ Jim Barksdale

"The proper use of comments is to compensate for our failure to express ourself in code." ~ Robert C. Martin

"Linux is only free if your time has no value." ~ Jamie Zawinski

"One of the best programming skills you can have is knowing when to walk away for awhile." ~ Oscar Godson

"If there is a feature of a language that is sometimes problematic, and if it can be replaced with another feature that is more reliable, then always use the more reliable feature." ~ Douglas Crockford

""That hardly ever happens" is another way of saying "it happens"." ~ Douglas Crockford

"Programming uses head and gut." ~ Douglas Crockford

"At some point software design becomes less about what and more about when." ~ Kent Beck

"Hope is not a plan." ~ Jonathan Rosenberg

"All programming languages are shit. But the good ones fertilize your mind." ~ Reg Braithwaite

"Hiring bad developers is like drinking seawater. It seems to satisfy a need while actually increasing it." ~ Michael Nygard

"Good programmers don't just write programs. They build a working vocabulary." ~ Guy Steele

"Any app that can be written in JavaScript, will eventually be written in JavaScript." ~ Jeff Atwood

"You won't get anything done by planning." ~ Karl Pilkington

"It would be nice if products and programming languages were designed to have only good parts." ~ Douglas Crockford

"It would be nice if products and programming languages were designed to have only good parts." ~ Douglas Crockford

"The older I get, the more I believe that the only way to become a better programmer is by not programming." ~ Jeff Atwood

"Later equals never." ~ Le Blanc's law

"This is essentially what a program was, a love letter from the programmer to the hardware, full of the intimate details known only to partners in an affair." ~ Michael Marcotty

"The secret to building large apps is never build large apps. Break your applications into small pieces. Then, assemble those testable, bite-sized pieces into your big application." ~ Justin Meyer

"JavaScript is the only language that I'm aware of that people feel they don't need to learn before they start using it." ~ Douglas Crockford

"In the end, regardless of where you are on the development hierarchy, keep coding. It's where you're most valuable." ~ The Developer's Code

"We build systems like the Wright brothers built airplanes - build the whole thing, push it off the cliff, let it crash, and start over again." ~ Nato Software Engineering Conference '68

"Optimism is an occupational hazard of programming; feedback is the treatment." ~ Kent Beck

"There are only two industries that refer to their customers as "users"." ~ Edward Tufte

"Any fool can use a computer. Many do." ~ Ted Nelson

"Hardware: the parts of a computer system that can be kicked." ~ Jeff Pesis

"That's what's cool about working with computers. They don't argue, they remember everything, and they don't drink all your beer." ~ Paul Leary

"Computers are like bikinis. They save people a lot of guesswork." ~ Sam Ewing

"Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves." ~ Alan Kay

"Features, quality, time: pick two." ~ anonymous

"XML is like violence - if it doesn't solve your problems, you are not using enough of it." ~ anonymous

"Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders." ~ anonymous

"I love deadlines. I like the whooshing sound they make as they fly by." ~ Douglas Adams

"A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila." ~ Mitch Ratcliffe

"XML documents are much like humans - they are cute and fun to deal with when they're small but can get really annoying as they grow bigger." ~ Andy Hunt

"The most obvious common 'personality' characteristics of hackers are high intelligence, consuming curiosity, and facility with intellectual abstractions. Also, most hackers are 'neophiles', stimulated by and appreciative of novelty (especially intellectual novelty). Most are also relatively individualistic and anti-conformist." ~ Eric Raymond

"If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime." ~ anonymous

"The code you write makes you a programmer. The code you delete makes you a good one. The code you don't have to write makes you a great one." ~ Mario Fusco

"The cardinal rule of writing unmaintainable code is to specify each fact in as many places as possible and in as many ways as possible." ~ Roedy Green

"The longer it takes for a bug to surface, the harder it is to find." ~ Roedy Green

"Incorrect documentation is often worse than no documentation." ~ Bertrand Meyer

"The sooner you start to code, the longer the program will take." ~ Roy Carlson

"Don't have good ideas if you aren't willing to be responsible for them." ~ Alan J. Perlis

"A language that doesn't affect the way you think about programming is not worth knowing." ~ Alan J. Perlis

"Law 1: Every program can be optimised to be smaller. Law 2: There's always one more bug. Corollary: Every program can be reduced to a one-line bug." ~ anonymous

"Good programming is 99% sweat and 1% coffee." ~ anonymous

"Estimate always goes wrong. That too in one way." ~ Sumit Agrawal

"Ready, fire, aim: the fast approach to software development. Ready, aim, aim, aim, aim: the slow approach to software development." ~ anonymous

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

"In order to understand recursion, one must first understand recursion." ~ anonymous

"And the users exclaimed with a laugh and a taunt: It's just what we asked for but not what we want." ~ anonymous

"Better train people and risk they leave - than do nothing and risk they stay." ~ anonymous

"Why do we never have time to do it right, but always have time to do it over?" ~ anonymous

"One of the big lessons of a big project is you don't want people that aren't really programmers programming, you'll suffer for it!" ~ John Carmack

"A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work." ~ John Gall

"The standard rule is, when you're in a hole, stop digging; that seems not to apply [to] software nowadays." ~ Ron Minnich

"Such is modern computing: everything simple is made too complicated because it's easy to fiddle with; everything complicated stays complicated because it's hard to fix." ~ Rob Pike

"So-called "smart" software usually is the worst you can imagine." ~ Christian Neukirchen

"The trick is to fix the problem you have, rather than the problem you want." ~ Bram Cohen

"The adjustment period from solo programming to collaborative programming was like eating a hot pepper. The first time you try it, you may not like it because you are not used to it. However the more you eat it, the more you like it." ~ anonymous

"The key to making programs fast is to make them do practically nothing." ~ Mike Haertel

"We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by incremental renovation: tinkering, improving, planting flower beds." ~ Joel Spolsky

"Machines should work. People should think." ~ IBM Pollyanna Principle

"Good software, like wine, takes time." ~ Joel Spolsky

"At the source of every error which is blamed on the computer you will find at least two human errors, including the error of blaming it on the computer." ~ anonymous

"Any non-trivial program contains at least one bug." ~ anonymous

"After you finish the first 90% of a project, you have to finish the other 90%." ~ Michael Abrash

"The best way to predict the future is to implement it." ~ Alan Kay

"A lack of planning on your part does not constitute an emergency on my part." ~ anonymous

"In software, we rarely have meaningful requirements. Even if we do, the only measure of success that matters is whether our solution solves the customer's shifting idea of what their problem is." ~ Jeff Atwood

"I've finally learned what "upward compatible" means. It means we get to keep all our old mistakes." ~ Dennie van Tassel

"Real programmers can write assembly code in any language." ~ Larry Wall

"Software and cathedrals are much the same - first we build them, then we pray." ~ anonymous

"There are two ways to write error-free programs; only the third works." ~ Alan J. Perlis

"Before software can be reusable, it first has to be usable." ~ Ralph Johnson

"Sometimes the problem is to discover what the problem is." ~ Gordon Glegg

"Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it." ~ Alan J. Perlis

"Every program has two purposes: The one for which it was written and another for which it wasn't." ~ Alan J. Perlis

"Ugly programs are like ugly suspension bridges: they're much more liable to collapse than pretty ones, because the way humans (especially engineer-humans) perceive beauty is intimately related to our ability to process and understand complexity. A language that makes it hard to write elegant code makes it hard to write good code." ~ Eric Raymond

"The value of a prototype is in the education it gives you, not in the code itself." ~ Alan Cooper

"First, solve the problem. Then, write the code." ~ John Johnson

"Measuring programming progress by lines of code is like measuring aircraft building progress by weight." ~ Bill Gates

"The question of whether Machines Can Think... is about as relevant as the question of whether Submarines Can Swim." ~ E. W. Dijkstra

"One of the things I've been trying to do is look for simpler or rules underpinning good or bad design. I think one of the most valuable rules is avoid duplication. 'Once and only once' is the Extreme Programming phrase." ~ Martin Fowler

"Constraints are advantages in disguise. Limited resources force you to make do with what you've got. There's no room for waste. And that forces you to be creative." ~ 37Signals

"You broke the build!" ~ Agnes

"The function of good software is to make the complex appear to be simple." ~ Grady Booch

"In corporate environments the product don't have to be good. Sometimes they don't even have to exist... if you are a thoughtful developer, you are in the wrong place!" ~ Jeff Atwood

"A language that doesn't have everything is actually easier to program in than some that do." ~ Dennis M. Ritchie

"When you feel the need to write a comment, first try to refactor the code so that any comment becomes superflous." ~ Martin Fowler

"It comes from saying no to 1,000 things to make sure we don't get on the wrong track or try to do too much." ~ Steve Jobs

"Programs must be written for people to read, and only incidentally for machines to execute." ~ Gerald Jay & Harold Abelson "A most important, but also most elusive, aspect of any tool is its influence on the habits of those who train themselves in its use. If the tool is a programming language this influence is, whether we like it or not, an influence on our thinking habits." ~ E. W. Dijkstra

"A programming language is low level when its programs require attention to the irrelevant." ~ Alan J. Perlis

"To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge." ~ Grace Hopper

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning." ~ Rick Cook

"Adding manpower to a late software project makes it later." ~ Frederick P. Brooks

"The cleaner and nicer the program, the faster it's going to run. And if it doesn't, it'll be easy to make it fast." ~ Joshua Bloch

"It's not a bug - it's an undocumented feature." ~ anonymous

"Playfully doing something difficult, whether useful or not, that is hacking." ~ Richard M. Stallman

"Learn the principle, abide by the principle, and dissolve the principle." ~ Bruce Lee

"The object-oriented model makes it easy to build up programs by accretion. What this often means, in practice, is that it provides a structured way to write spaghetti code." ~ Paul Graham

"Reusing pieces of code is liked picking off sentences from other people's stories and trying to make a magazine article." ~ Bob Frankston

"Make everything as simple as possible, but not simpler." ~ Albert Einstein

"It's better to wait for a productive programmer to become available than it is to wait for the first available programmer to become productive." ~ Steve McConnell

"Managing senior programmers is like herding cats." ~ Dave Platt

"The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures." ~ Frederick P. Brooks

"I am rarely happier than when spending entire day programming my computer to perform automatically a task that it would otherwise take me a good ten seconds to do by hand." ~ Douglas Adams

"In programming, the hard part isn't solving problems, but deciding what problems to solve." ~ Paul Graham

"Good programming is good writing." ~ John Shore

"Programming is similar to a game of golf. The point is not getting the ball in the hole but how many strokes it takes." ~ Harlan Mills

"It's okay to figure out murder mysteries, but you shouldn't need to figure out code. You should be able to read it." ~ Steve McConnell

"One man's crappy software is another man's full time job." ~ Jessica Gaston

"Great software, likewise, requires a fanatical devotion to beauty. If you look inside good software, you find that parts no one is ever supposed to see are beautiful too. I'm not claiming I write great software, but I know that when it comes to code I behave in a way that would make me eligible for prescription drugs if I approached everyday life the same way. It drives me crazy to see code that's badly indented, or that uses ugly variable names." ~ Paul Graham

"Good code is its own best documentation. As you're about to add a comment, ask yourself, "How can I improve the code so that this comment isn't needed?"" ~ Steve McConnell

"Beta. Software undergoes beta testing shortly before it's released. Beta is Latin for "still doesn't work."" ~ anonymous

"A good programmer is someone who always looks both ways before crossing a one-way street." ~ Doug Linder

"Another effective technique is to explain your code to someone else. This will often cause you to explain the bug to yourself. Sometimes it takes no more than a few sentences, followed by an embarrassed "Never mind, I see what's wrong. Sorry to bother you." This works remarkably well; you can even use non-programmers as listeners. One university computer center kept a teddy bear near the help desk. Students with mysterious bugs were required to explain them to the bear before they could speak to a human counselor." ~ Brian W. Kernighan & Rob Pike

"All programmers are playwrights and all computers are lousy actors." ~ anonymous

"Programmer - an organism that turns coffee into software." ~ anonymous

"Theory and practice sometimes clash. And when that happens, theory loses. Every single time." ~ Linus Torvalds

"Your task is not to foresee the future, but to enable it." ~ Antoine de Saint Exupéry

"Sometimes it pays to stay in bed on Monday, rather than spending the rest of the week debugging Monday's code." ~ Christopher Thompson

"Anything that can possibly go wrong, will go wrong." ~ Murphy's Law

"There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code." ~ Flon's Law

"Software sucks because users demand it to." ~ Nathan Myhrvold

"We are just as proud of what our products don't do as we are as what they do." ~ 37Signals

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." ~ Martin Fowler

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program." ~ Linus Torvalds

"First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack." ~ George Carrette

"Learning to program has no more to do with designing interactive software than learning to touch type has to do with writing poetry." ~ Ted Nelson

"In the one and only true way. The object-oriented version of 'Spaghetti code' is, of course, 'Lasagna code'. (Too many layers)." ~ Roberto Waltman

"A sentence should be enough to get the idea across." ~ 37Signals

"Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter." ~ Eric Raymond

"Eagleson's Law: Any code of your own that you haven't looked at for six or more months might as well have been written by someone else." ~ Alan Eagleson

"Programming is like sex: one mistake and you're providing support for a lifetime." ~ Michael Sinz

"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." ~ Martin Golding

"Don't waste your time typing up that long visionary tome; no one's going to read it. Take consolation in the fact that if you give your product enough room to grow itself, in the end it won't resemble anything you wrote about anyway." ~ Gina Trapani

"When you come across a stumbling block because the code doesn't quite fit anymore, or you notice two things that should really be merged, or anything else at all strikes you as being "wrong", don't hesitate to change it. There's no time like the present." ~ Andy Hunt & Dave Thomas

"Encoded names are seldom pronounceable and are easy to miss-type." ~ Robert C. Martin

"Programmers must avoid leaving false clues that obscure the meaning of code." ~ Robert C. Martin

"Write shy code - modules that don't reveal anything unnecessary to other modules and that don't rely on other modules' implementations." ~ Andy Hunt & Dave Thomas "A design is "simple" if it follows these rules: Runs all the tests; Contains no duplication; Expresses the intent of the programmer; Minimizes the number of classes and methods." ~ Kent Beck

"Workaholics aren't heroes. They don't save the day, they just use it up. The real hero is already because she figured out a faster way to get things done." ~ 37Signals

"Whenever there is a sticking point, ask, "are we staying true to the vision?"." ~ 37Signals

"Each new user of a new system uncovers a new class of bugs." ~ Brian W. Kernighan

"I don't care if it works on your machine! We are not shipping your machine!" ~ Vidiu Platon

"Profanity is the one language all programmers know best." ~ anonymous

"Code never lies, comments sometimes do." ~ Ron Jeffries

"A computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match." ~ anonymous

"Testing can show the presence of errors, but not their absence." ~ E. W. Dijkstra

"Premature optimization is the root of all evil in programming." ~ anonymous

"Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why." ~ anonymous

"Compatibility means deliberately repeating other people's mistakes." ~ David Wheeler

"Correctness is clearly the prime quality. If a system does not do what it is supposed to do, then everything else about it matters little." ~ Bertrand Meyer

"Just because the standard provides a cliff in front of you, you are not necessarily required to jump off it." ~ Norman Diamond

"A program is portable to the extent that it can be easily moved to a new computing environment with much less effort than would be required to write it afresh." ~ W. Stan Brown

"Simplicity is prerequisite for reliability." ~ E. W. Dijkstra

"The central enemy of reliability is complexity." ~ Daniel Geer

"If you're willing to restrict the flexibility of your approach, you can almost always do something better." ~ John Carmack

"Deleted code is debugged code." ~ Jeff Sickel

"True innovation often comes from the small startup who is lean enough to launch a market but lacks the heft to own it." ~ Timm Martin

"You don't have a scaling problem yet." ~ 37Signals

"A happy programmer is a productive programmer. That's why we optimize for happiness and you should too. Don't just pick tools and practices based on industry standards or performance metrics. Look at the intangibles: Is there passion, pride, and craftmanship here? Would you truly be happy working in this environment eight hours a day?" ~ 37Signals

"It's not at all important to get it right the first time. It's vitally important to get it right the last time." ~ Andy Hunt & Dave Thomas

"Rules of Optimization: Rule 1: Don't do it. Rule 2 (for experts only): Don't do it yet." ~ Michael A. Jackson

"The trouble with programmers is that you can never tell what a programmer is doing until it's too late." ~ Seymour Cray

"Never trust a programmer in a suit." ~ anonymous

"The difference between theory and practice is smaller in theory than in practice." ~ anonymous

"The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'" ~ Isaac Asimov

"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." ~ Antoine de Saint Exupéry

"Computer Science is no more about computers than astronomy is about telescopes." ~ E. W. Dijkstra

"PHP is a minor evil perpetrated and created by incompetent amateurs, whereas Perl is a great and insidious evil perpetrated by skilled but perverted professionals." ~ Jon Ribbens

"Don't comment bad code - rewrite it." ~ Brian W. Kernighan & P. J. Plaugher

"Be careful to preserve the orthogonality of your system as you introduce third-party toolkits and libraries. Choose your technologies wisely." ~ Andy Hunt & Dave Thomas

"DRY - Don't Repeat Yourself - Every piece of knowledge must have a single, unambiguous, athoritative representation within a system." ~ Andy Hunt & Dave Thomas

"The ideal numbers of arguments for a function is zero (niladic). Next comes one (monadic), followed closely by two (dyadic). Three arguments (triadic) should be avoided where possible. More than three (polyadic) requires very special justification - and then shouldn't be used anyway." ~ Robert C. Martin

"The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that." ~ Robert C. Martin

"Code smells." ~ Martin Fowler

"Functions should do one thing. They should do it well. They should do it only." ~ Robert C. Martin

"Don't live with broken windows." ~ Andy Hunt & Dave Thomas

"It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter." ~ Nathaniel Borenstein

"Refuctoring - the process of taking a well-designed piece of code and, through a series of small, reversible changes, making it completely unmaintainable by anyone except yourself." ~ Jason Gorman

"If debugging is the process of removing software bugs, then programming must be the process of putting them in." ~ E. W. Dijkstra

"It works on my machine." ~ anonymous

"There are only two kinds of languages: the ones people complain about and the ones nobody uses." ~ Bjarne Stroustrup

"Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems." ~ Jamie Zawinski

"If you want to set off and go develop some grand new thing, you don't need millions of dollars of capitalization. You need enough pizza and Diet Coke to stick in your refrigerator, a cheap PC to work on and the dedication to go through with it." ~ John Carmack

"The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time." ~ Tom Cargill

"Walking on water and developing software from a specification are easy if both are frozen." ~ Edward V. Berard

"To iterate is human, to recurse divine." ~ L. Peter Deutsch

"That's the thing about people who think they hate computers. What they really hate is lousy programmers." ~ Larry Niven

"Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris." ~ Larry Wall

"There's an old story about the person who wished his computer were as easy to use as his telephone. That wish has come true, since I no longer know how to use my telephone." ~ Bjarne Stroustrup

"There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies." ~ C. A. R. Hoare

"Controlling complexity is the essence of computer programming." ~ Brian W. Kernighan

"Objects are abstractions of processing. Threads are abstractions of schedule." ~ James O. Coplien

"The Three Laws of TDD: 1) You may not write production code until you have written a failing unit test. 2) You may not write more of a unit test than is sufficient to fail, and not compiling is failing. 3) You may not write more production code than is sufficient to pass the currently failing test." ~ Robert C. Martin

"Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build, and test." ~ Ray Ozzie

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment