· 7 years ago · Nov 28, 2018, 08:10 PM
1"Formal education will make you a living. Self-education will make you a
2fortune."
3 ~ Jim Rohn
4%
5"Programming is not easy like Sunday morning, it is silent poetry."
6 ~ Waseem Latif
7%
8"The best way to get the right answer on the internet is not to ask a question;
9it's to post the wrong answer."
10 ~ Cunningham's Law
11%
12"A good API is not just easy to use but also hard to misuse."
13 ~ JBD
14%
15"In carpentry you measure twice and cut once. In software development you never
16measure and make cuts until you run out of time."
17 ~ Adam Morse
18%
19"These days, the problem isn't how to innovate; it's how to get society to adopt
20the good ideas that already exist."
21 ~ Douglas Engelbart
22%
23"If you say "I told you so", you are the one who has failed. Because you knew,
24but did not manage to stop the train wreck."
25 ~ Robert C. Martin
26%
27"What one programmer can do in one month, two programmers can do in two months."
28 ~ Frederick P. Brooks
29%
30"Programmers have to fight against the two most destructive forces in the
31universe: entropy and stupidity."
32 ~ Damian Conway
33%
34"Promoting a good developer to management is often a twofold bad move: you'll
35lose a good developer and get a poor manager."
36 ~ Mario Fusco
37%
38"Software being "Done" is like lawn being "Mowed"."
39 ~ Jim Benson
40%
41"90% of the functionality delivered now is better than 100% delivered never."
42 ~ Brian W. Kernighan & P. J. Plaugher
43%
44"Bad programmers worry about the code. Good programmers worry about data
45structures and their relationships."
46 ~ Linus Torvalds
47%
48"The competent programmer is fully aware of the strictly limited size of his own
49skull; therefore he approaches the programming task in full humility, and among
50other things he avoids clever tricks like the plague."
51 ~ E. W. Dijkstra
52%
53"Almost every attempt at making something better will be regarded by someone
54else as a personal attack."
55 ~ Chris Sacca
56%
57"An evolving system increases its complexity unless work is done to reduce it."
58 ~ Meir Lehman
59%
60"UNIX is simple. It just takes a genius to understand its simplicity."
61 ~ Dennis M. Ritchie
62%
63"Go is the language JavaScript programmers retire to when they get old. Like the
64Florida of programming languages."
65 ~ Jed Schmidt
66%
67"I know testers who make good devs. I know devs who make good testers. I know
68Scrum Masters who make good coffee."
69 ~ David Evans
70%
71"We crave for new sensations but soon become indifferent to them. Wonders of
72yesterday are today common occurrences."
73 ~ Nikola Tesla
74%
75"Hardware eventually fails. Software eventually works."
76 ~ Michael Hartung
77%
78"That which optimizes one part of the system necessarily undermines the system
79as a whole."
80 ~ Eric Ries
81%
82"Every great developer you know got there by solving problems they were
83unqualified to solve until they actually did it."
84 ~ Patrick McKenzie
85%
86"Teams are immutable. Every time someone leaves, or joins, you have a new team,
87not a changed team."
88 ~ Richard Dalton
89%
90"Start out with finding the right problem to solve. This is a combination of
91"what customers are asking for", "what customers don't even know they want yet"
92and "what can be solved with something simple to understand and manage""
93 ~ Radia Perlman
94%
95"There's nothing more permanent than a temporary hack."
96 ~ Kyle Simpson
97%
98"It can be better to copy a little code than to pull in a big library for one
99function. Dependency hygiene trumps code reuse."
100 ~ Rob Pike
101%
102"A programmer does not primarily write code; rather, he primarily writes to
103another programmer about his problem solution. The understanding of this fact is
104the final step in his maturation as technician."
105 ~ anonymous
106%
107"Telling a programmer there's already a library to do X is like telling a
108songwriter there's already a song about love."
109 ~ Pete Cordell
110%
111"The best error message is the one that never shows up."
112 ~ Thomas Fuchs
113%
114"Almost without exception, the best products are developed by teams with desire
115to solve a problem; not a company's need to fulfil a strategy."
116 ~ Jeff Weiner
117%
118"A Fallacy of Software: If it works, and we don't change anything, it will keep
119working."
120 ~ Jessica Kerr
121%
122"(...) Thinking this way will teach you two things about computers: One, there's
123no magic, no matter how much it looks like there is. There's just work to make
124things look like magic. And two, it's crazy in there."
125 ~ Paul Ford
126%
127"Programmers are often angry because they're often scared."
128 ~ Paul Ford
129%
130"Well-designed components are easy to replace. Eventually, they will be replaced
131by ones that are not so easy to replace."
132 ~ Sustrik's Law
133%
134"Things that are impossible just take longer."
135 ~ Ian Hickson
136%
137"Always bet on JavaScript."
138 ~ Brendan Eich
139%
140"Organizations which design systems are constrained to produce designs which are
141copies of the communication structures of these organizations."
142 ~ Conway's law
143%
144"Good engineers make solutions obsolete. Great engineers make themselves
145obsolete."
146 ~ Jordan W
147%
148"Big data is like teenage sex: everyone talks about it, nobody really knows how
149to do it, everyone thinks everyone else is doing it, so everyone claims they are
150doing it..."
151 ~ Dan Ariely
152%
153"And the reason these things take a generation is because ultimately we do not
154change people's minds. We have to wait for the previous generation to retire or
155die before we can get critical mass on the next idea. So it's like we look
156around: "Are they gone?""
157 ~ Douglas Crockford
158%
159"There is no single development, in either technology or management technique,
160which by itself promises even one order-of-magnitude improvement within a decade
161in productivity, in reliability, in simplicity."
162 ~ Frederick P. Brooks
163%
164"Treat your code like poetry and take it to the edge of the bare minimum."
165 ~ Ilyo
166%
167"The best reaction to "this is confusing, where are the docs" is to rewrite the
168feature to make it less confusing, not write more docs."
169 ~ Jeff Atwood
170%
171"Data dominates. If you've chosen the right data structures and organized things
172well, the algorithms will almost always be self-evident. Data structures, not
173algorithms, are central to programming."
174 ~ Rob Pike
175%
176"No code is faster than no code."
177 ~ merb motto
178%
179"When in doubt, leave it out."
180 ~ Joshua Bloch
181%
182"Languages that try to disallow idiocy become themselves idiotic."
183 ~ Rob Pike
184%
185"Security is a state of mind."
186 ~ NSA Security Manual
187%
188"A program is like a poem: you cannot write a poem without writing it."
189 ~ E. W. Dijkstra
190%
191"The key is to acknowledge from the start that you have no idea how this will
192grow. When you accept that you don't know everything, you begin to design the
193system defensively... You should spend most of your time thinking about
194interfaces rather than implementations."
195 ~ Nicholas Zakas
196%
197"It's important to remember that when you start from scratch there is absolutely
198no reason to believe that you are going to do a better job than you did the
199first time. First of all, you probably don't even have the same programming team
200that worked on version one, so you don't actually have "more experience". You're
201just going to make most of the old mistakes again, and introduce some new
202problems that weren't in the original version."
203 ~ Joel Spolsky
204%
205"I hate code, and I want as little of it as possible in our product."
206 ~ Jack Diederich
207%
208"The craft of programming begins with empathy, not formatting or languages or
209tools or algorithms or data structures."
210 ~ Kent Beck
211%
212"Writing software as if we are the only person that ever has to comprehend it is
213one of the biggest mistakes and false assumptions that can be made."
214 ~ Karolina Szczur
215%
216"Scrum is like the rules of soccer. Following them does not make you a good
217player."
218 ~ Jeff Sutherland
219%
220"The art of programming is the art of organizing complexity, of mastering
221multitude and avoiding its bastard chaos as effectively as possible."
222 ~ E. W. Dijkstra
223%
224"What matters for simplicity is that there's not interleaving."
225 ~ Rich Hickey
226%
227"Blame the implementation, not the technique."
228 ~ Tim Kadlec
229%
230"Programmers are as emotional and irrational as normal people."
231 ~ Douglas Crockford
232%
233"Simplicity is about subtracting the obvious and adding the meaningful."
234 ~ John Maeda
235%
236"If you're actually doing TDD, you're throwing away tests all the time, as your
237understanding of what the code is changes."
238 ~ Kerri Miller
239%
240"Programs, like people, get old. We can't prevent ageing, but we can understand
241its causes, limit its effects and reverse some of the damage."
242 ~ Mario Fusco
243%
244"A person without data is just another person with an opinion."
245 ~ anonymous
246%
247"Get out of the way of your developers or lose them to someone who will."
248 ~ Adrian Cockcroft
249%
250"As a Lead JavaScript Engineer, I try to get my team to write as little
251JavaScript as possible."
252 ~ anonymous
253%
254"Most of the biggest problems in software are problems of misconception."
255 ~ Rich Hickey
256%
257"Easy is not to be underestimated. Easy taps the pool of talent and ideas out
258there that were turned off by hard."
259 ~ Chris Anderson
260%
261"What exactly makes a great platform? It's about what your business puts into
262its platform and what your consumers and/or business partners get out of it. And
263that's the point. A platform either fits into an overall corporate strategy or
264it doesn't."
265 ~ Phil Simon
266%
267"If you are choosing a JavaScript library purely based on popularity, I think
268you deserve what you get."
269 ~ Tom Dale
270%
271"It's a lot easier to talk about code than it is to write code."
272 ~ John O'Nolan
273%
274"Not all eyes that notice bugs in Open Source code belong to saints who will
275report or repair them in the interest of the public good."
276 ~ Martin Fowler
277%
278"The amount of energy necessary to refute bullshit is an order of magnitude
279bigger than to produce it."
280 ~ Alberto Brandolini
281%
282"A human being should be able to change a diaper, plan an invasion, butcher a
283hog, conn a ship, design a building, write a sonnet, balance accounts, build a
284wall, set a bone, comfort the dying, take orders, give orders, cooperate, act
285alone, solve equations, analyze a new problem, pitch manure, program a computer,
286cook a tasty meal, fight efficiently, die gallantly. Specialization is for
287insects."
288 ~ Robert A. Heinlein
289%
290"A generalist is a jack-of-all-trades but a master of none, whereas a
291generalizing specialist is a jack-of-all-trades and master of a few. Big
292difference."
293 ~ Scott Ambler
294%
295"A generalist is a jack-of-all-trades but a master of none, whereas a
296generalizing specialist is a jack-of-all-trades and master of a few. Big
297difference."
298 ~ Scott Ambler
299%
300"Do not use humans for jobs computers can do better - this is a waste of human
301energy and creativity, the only real resource on this planet, and demeans the
302human spirit."
303 ~ J. Paul Morrison
304%
305"Feature-based releases expand to fill all available time until someone feels
306guilty for not finishing the feature on a magical, wish-fulfillment schedule,
307and hey, has it been a couple of years already?"
308 ~ chromatic
309%
310"Users who want critical bug fixes and new features without actually upgrading
311their software also want magic flying candy-dropping ponies."
312 ~ chromatic
313%
314"The best way to prepare [to be a programmer] is to write programs, and to study
315great programs that other people have written. In my case, I went to the garbage
316cans at the Computer Science Center and fished out listings of their operating
317system."
318 ~ Bill Gates
319%
320"First do it, then do it right, then do it better."
321 ~ Addy Osmani
322%
323"Beauty is more important in computing than anywhere else in technology because
324software is so complicated. Beauty is the ultimate defence against complexity."
325 ~ David Gelernter
326%
327"When in doubt, use brute force."
328 ~ Ken Thompson
329%
330"If McDonald's were run like a software company, one out of every hundred Big
331Macs would give you food poisoning, and the response would be, "We're sorry,
332here is a coupon for two more.""
333 ~ Mark Minasi
334%
335"Rails has done more for startups than a whole boatload of Venture Capitalists."
336 ~ Eric Ries
337%
338"No matter how slick the demo is in rehearsal, when you do it in front of a live
339audience the probability of a flawless presentation is inversely proportional to
340the number of people watching, raised to the power of the amount of money
341involved."
342 ~ Mark Gibbs
343%
344"Tests are the Programmer's stone, transmuting fear into boredom."
345 ~ Kent Beck
346%
347"Simple doesn't mean stupid. Thinking that it does, does."
348 ~ Paul Krugman
349%
350"You do not really understand something unless you can explain it to your
351grandmother."
352 ~ Albert Einstein
353%
354"Just because something is easy to measure doesn't mean it's important."
355 ~ David Heinemeier Hansson
356%
357"In many ways, the prism of computer science is harmful for the development of
358information systems."
359 ~ David Heinemeier Hansson
360%
361"Talk is cheap. Show me the code."
362 ~ Linus Torvalds
363%
364"[Most managers] may defend the schedule and requirements with passion; but
365that's their job. It's your job to defend the code with equal passion."
366 ~ Robert C. Martin
367%
368"Perl: The only language that looks the same before and after RSA encryption."
369 ~ Keith Bostic
370%
371"If Java had true garbage collection, most programs would delete themselves upon
372execution."
373 ~ Robert Sewell
374%
375"If builders built buildings the way programmers wrote programs, then the first
376woodpecker that came along would destroy civilization."
377 ~ Gerald Weinberg
378%
379"One of my most productive days was throwing away 1000 lines of code."
380 ~ Ken Thompson
381%
382"When debugging, novices insert corrective code; experts remove defective code."
383 ~ Richard Pattis
384%
385"Debugging is twice as hard as writing the code in the first place. Therefore,
386if you write the code as cleverly as possible, you are, by definition, not smart
387enough to debug it."
388 ~ Brian W. Kernighan
389%
390"Nine people can't make a baby in a month."
391 ~ Frederick P. Brooks
392%
393"The most important property of a program is whether it accomplishes the
394intention of its user."
395 ~ C. A. R. Hoare
396%
397"Object-oriented design is the roman numerals of computing."
398 ~ Rob Pike
399%
400"The problem with object-oriented languages is they've got all this implicit
401environment that they carry around with them. You wanted a banana but what you
402got was a gorilla holding the banana and the entire jungle."
403 ~ Jason Gorman & Joe Armstrong
404%
405"Node.js is a tumor on the programming community, in that not only is it
406completely braindead, but the people who use it go on to infect other people who
407can't think for themselves."
408 ~ Ted Dziuba
409%
410"The first step of any project is to grossly underestimate its complexity and
411difficulty."
412 ~ Nicoll Hunt
413%
414"Sure I could program in PHP, but I could also use a sundial to tell time."
415 ~ anonymous
416%
417"Write code every day."
418 ~ John Resig
419%
420"The strength of JavaScript is that you can do anything. The weakness is that
421you will."
422 ~ Reg Braithwaite
423%
424"Sometimes, the elegant implementation is just a function. Not a method. Not a
425class. Not a framework. Just a function."
426 ~ John Carmack
427%
428"The most secure code in the world is code which is never written."
429 ~ Colin Percival
430%
431"If we have data, let's look at data. If all we have are opinions, let's go with
432mine."
433 ~ Jim Barksdale
434%
435"The proper use of comments is to compensate for our failure to express ourself
436in code."
437 ~ Robert C. Martin
438%
439"Linux is only free if your time has no value."
440 ~ Jamie Zawinski
441%
442"One of the best programming skills you can have is knowing when to walk away
443for awhile."
444 ~ Oscar Godson
445%
446"If there is a feature of a language that is sometimes problematic, and if it
447can be replaced with another feature that is more reliable, then always use the
448more reliable feature."
449 ~ Douglas Crockford
450%
451""That hardly ever happens" is another way of saying "it happens"."
452 ~ Douglas Crockford
453%
454"Programming uses head and gut."
455 ~ Douglas Crockford
456%
457"At some point software design becomes less about what and more about when."
458 ~ Kent Beck
459%
460"Hope is not a plan."
461 ~ Jonathan Rosenberg
462%
463"All programming languages are shit. But the good ones fertilize your mind."
464 ~ Reg Braithwaite
465%
466"Hiring bad developers is like drinking seawater. It seems to satisfy a need
467while actually increasing it."
468 ~ Michael Nygard
469%
470"Good programmers don't just write programs. They build a working vocabulary."
471 ~ Guy Steele
472%
473"Any app that can be written in JavaScript, will eventually be written in
474JavaScript."
475 ~ Jeff Atwood
476%
477"You won't get anything done by planning."
478 ~ Karl Pilkington
479%
480"It would be nice if products and programming languages were designed to have
481only good parts."
482 ~ Douglas Crockford
483%
484"It would be nice if products and programming languages were designed to have
485only good parts."
486 ~ Douglas Crockford
487%
488"The older I get, the more I believe that the only way to become a better
489programmer is by not programming."
490 ~ Jeff Atwood
491%
492"Later equals never."
493 ~ Le Blanc's law
494%
495"This is essentially what a program was, a love letter from the programmer to
496the hardware, full of the intimate details known only to partners in an affair."
497 ~ Michael Marcotty
498%
499"The secret to building large apps is never build large apps. Break your
500applications into small pieces. Then, assemble those testable, bite-sized pieces
501into your big application."
502 ~ Justin Meyer
503%
504"JavaScript is the only language that I'm aware of that people feel they don't
505need to learn before they start using it."
506 ~ Douglas Crockford
507%
508"In the end, regardless of where you are on the development hierarchy, keep
509coding. It's where you're most valuable."
510 ~ The Developer's Code
511%
512"We build systems like the Wright brothers built airplanes - build the whole
513thing, push it off the cliff, let it crash, and start over again."
514 ~ Nato Software Engineering Conference '68
515%
516"Optimism is an occupational hazard of programming; feedback is the treatment."
517 ~ Kent Beck
518%
519"There are only two industries that refer to their customers as "users"."
520 ~ Edward Tufte
521%
522"Any fool can use a computer. Many do."
523 ~ Ted Nelson
524%
525"Hardware: the parts of a computer system that can be kicked."
526 ~ Jeff Pesis
527%
528"That's what's cool about working with computers. They don't argue, they
529remember everything, and they don't drink all your beer."
530 ~ Paul Leary
531%
532"Computers are like bikinis. They save people a lot of guesswork."
533 ~ Sam Ewing
534%
535"Most software today is very much like an Egyptian pyramid with millions of
536bricks piled on top of each other, with no structural integrity, but just done
537by brute force and thousands of slaves."
538 ~ Alan Kay
539%
540"Features, quality, time: pick two."
541 ~ anonymous
542%
543"XML is like violence - if it doesn't solve your problems, you are not using
544enough of it."
545 ~ anonymous
546%
547"Saying that Java is good because it works on all platforms is like saying anal
548sex is good because it works on all genders."
549 ~ anonymous
550%
551"I love deadlines. I like the whooshing sound they make as they fly by."
552 ~ Douglas Adams
553%
554"A computer lets you make more mistakes faster than any other invention in human
555history, with the possible exceptions of handguns and tequila."
556 ~ Mitch Ratcliffe
557%
558"XML documents are much like humans - they are cute and fun to deal with when
559they're small but can get really annoying as they grow bigger."
560 ~ Andy Hunt
561%
562"The most obvious common 'personality' characteristics of hackers are high
563intelligence, consuming curiosity, and facility with intellectual abstractions.
564Also, most hackers are 'neophiles', stimulated by and appreciative of novelty
565(especially intellectual novelty). Most are also relatively individualistic and
566anti-conformist."
567 ~ Eric Raymond
568%
569"If you give someone a program, you will frustrate them for a day; if you teach
570them how to program, you will frustrate them for a lifetime."
571 ~ anonymous
572%
573"The code you write makes you a programmer. The code you delete makes you a good
574one. The code you don't have to write makes you a great one."
575 ~ Mario Fusco
576%
577"The cardinal rule of writing unmaintainable code is to specify each fact in as
578many places as possible and in as many ways as possible."
579 ~ Roedy Green
580%
581"The longer it takes for a bug to surface, the harder it is to find."
582 ~ Roedy Green
583%
584"Incorrect documentation is often worse than no documentation."
585 ~ Bertrand Meyer
586%
587"The sooner you start to code, the longer the program will take."
588 ~ Roy Carlson
589%
590"Don't have good ideas if you aren't willing to be responsible for them."
591 ~ Alan J. Perlis
592%
593"A language that doesn't affect the way you think about programming is not worth
594knowing."
595 ~ Alan J. Perlis
596%
597"Law 1: Every program can be optimised to be smaller. Law 2: There's always one
598more bug. Corollary: Every program can be reduced to a one-line bug."
599 ~ anonymous
600%
601"Good programming is 99% sweat and 1% coffee."
602 ~ anonymous
603%
604"Estimate always goes wrong. That too in one way."
605 ~ Sumit Agrawal
606%
607"Ready, fire, aim: the fast approach to software development. Ready, aim, aim,
608aim, aim: the slow approach to software development."
609 ~ anonymous
610%
611"Without requirements or design, programming is the art of adding bugs to an
612empty text file."
613 ~ Louis Srygley
614%
615"In order to understand recursion, one must first understand recursion."
616 ~ anonymous
617%
618"And the users exclaimed with a laugh and a taunt: It's just what we asked for
619but not what we want."
620 ~ anonymous
621%
622"Better train people and risk they leave - than do nothing and risk they stay."
623 ~ anonymous
624%
625"Why do we never have time to do it right, but always have time to do it over?"
626 ~ anonymous
627%
628"One of the big lessons of a big project is you don't want people that aren't
629really programmers programming, you'll suffer for it!"
630 ~ John Carmack
631%
632"A complex system that works is invariably found to have evolved from a simple
633system that worked. The inverse proposition also appears to be true: A complex
634system designed from scratch never works and cannot be made to work."
635 ~ John Gall
636%
637"The standard rule is, when you're in a hole, stop digging; that seems not to
638apply [to] software nowadays."
639 ~ Ron Minnich
640%
641"Such is modern computing: everything simple is made too complicated because
642it's easy to fiddle with; everything complicated stays complicated because it's
643hard to fix."
644 ~ Rob Pike
645%
646"So-called "smart" software usually is the worst you can imagine."
647 ~ Christian Neukirchen
648%
649"The trick is to fix the problem you have, rather than the problem you want."
650 ~ Bram Cohen
651%
652"The adjustment period from solo programming to collaborative programming was
653like eating a hot pepper. The first time you try it, you may not like it because
654you are not used to it. However the more you eat it, the more you like it."
655 ~ anonymous
656%
657"The key to making programs fast is to make them do practically nothing."
658 ~ Mike Haertel
659%
660"We're programmers. Programmers are, in their hearts, architects, and the first
661thing they want to do when they get to a site is to bulldoze the place flat and
662build something grand. We're not excited by incremental renovation: tinkering,
663improving, planting flower beds."
664 ~ Joel Spolsky
665%
666"Machines should work. People should think."
667 ~ IBM Pollyanna Principle
668%
669"Good software, like wine, takes time."
670 ~ Joel Spolsky
671%
672"At the source of every error which is blamed on the computer you will find at
673least two human errors, including the error of blaming it on the computer."
674 ~ anonymous
675%
676"Any non-trivial program contains at least one bug."
677 ~ anonymous
678%
679"After you finish the first 90% of a project, you have to finish the other 90%."
680 ~ Michael Abrash
681%
682"The best way to predict the future is to implement it."
683 ~ Alan Kay
684%
685"A lack of planning on your part does not constitute an emergency on my part."
686 ~ anonymous
687%
688"In software, we rarely have meaningful requirements. Even if we do, the only
689measure of success that matters is whether our solution solves the customer's
690shifting idea of what their problem is."
691 ~ Jeff Atwood
692%
693"I've finally learned what "upward compatible" means. It means we get to keep
694all our old mistakes."
695 ~ Dennie van Tassel
696%
697"Real programmers can write assembly code in any language."
698 ~ Larry Wall
699%
700"Software and cathedrals are much the same - first we build them, then we pray."
701 ~ anonymous
702%
703"There are two ways to write error-free programs; only the third works."
704 ~ Alan J. Perlis
705%
706"Before software can be reusable, it first has to be usable."
707 ~ Ralph Johnson
708%
709"Sometimes the problem is to discover what the problem is."
710 ~ Gordon Glegg
711%
712"Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses
713remove it."
714 ~ Alan J. Perlis
715%
716"Every program has two purposes: The one for which it was written and another
717for which it wasn't."
718 ~ Alan J. Perlis
719%
720"Ugly programs are like ugly suspension bridges: they're much more liable to
721collapse than pretty ones, because the way humans (especially engineer-humans)
722perceive beauty is intimately related to our ability to process and understand
723complexity. A language that makes it hard to write elegant code makes it hard to
724write good code."
725 ~ Eric Raymond
726%
727"The value of a prototype is in the education it gives you, not in the code
728itself."
729 ~ Alan Cooper
730%
731"First, solve the problem. Then, write the code."
732 ~ John Johnson
733%
734"Measuring programming progress by lines of code is like measuring aircraft
735building progress by weight."
736 ~ Bill Gates
737%
738"The question of whether Machines Can Think... is about as relevant as the
739question of whether Submarines Can Swim."
740 ~ E. W. Dijkstra
741%
742"One of the things I've been trying to do is look for simpler or rules
743underpinning good or bad design. I think one of the most valuable rules is avoid
744duplication. 'Once and only once' is the Extreme Programming phrase."
745 ~ Martin Fowler
746%
747"Constraints are advantages in disguise. Limited resources force you to make do
748with what you've got. There's no room for waste. And that forces you to be
749creative."
750 ~ 37Signals
751%
752"You broke the build!"
753 ~ Agnes
754%
755"The function of good software is to make the complex appear to be simple."
756 ~ Grady Booch
757%
758"In corporate environments the product don't have to be good. Sometimes they
759don't even have to exist... if you are a thoughtful developer, you are in the
760wrong place!"
761 ~ Jeff Atwood
762%
763"A language that doesn't have everything is actually easier to program in than
764some that do."
765 ~ Dennis M. Ritchie
766%
767"When you feel the need to write a comment, first try to refactor the code so
768that any comment becomes superflous."
769 ~ Martin Fowler
770%
771"It comes from saying no to 1,000 things to make sure we don't get on the wrong
772track or try to do too much."
773 ~ Steve Jobs
774%
775"Programs must be written for people to read, and only incidentally for machines
776to execute."
777 ~ Gerald Jay & Harold Abelson
778%
779"A most important, but also most elusive, aspect of any tool is its influence on
780the habits of those who train themselves in its use. If the tool is a
781programming language this influence is, whether we like it or not, an influence
782on our thinking habits."
783 ~ E. W. Dijkstra
784%
785"A programming language is low level when its programs require attention to the
786irrelevant."
787 ~ Alan J. Perlis
788%
789"To me programming is more than an important practical art. It is also a
790gigantic undertaking in the foundations of knowledge."
791 ~ Grace Hopper
792%
793"Programming today is a race between software engineers striving to build bigger
794and better idiot-proof programs, and the universe trying to build bigger and
795better idiots. So far, the universe is winning."
796 ~ Rick Cook
797%
798"Adding manpower to a late software project makes it later."
799 ~ Frederick P. Brooks
800%
801"The cleaner and nicer the program, the faster it's going to run. And if it
802doesn't, it'll be easy to make it fast."
803 ~ Joshua Bloch
804%
805"It's not a bug - it's an undocumented feature."
806 ~ anonymous
807%
808"Playfully doing something difficult, whether useful or not, that is hacking."
809 ~ Richard M. Stallman
810%
811"Learn the principle, abide by the principle, and dissolve the principle."
812 ~ Bruce Lee
813%
814"The object-oriented model makes it easy to build up programs by accretion. What
815this often means, in practice, is that it provides a structured way to write
816spaghetti code."
817 ~ Paul Graham
818%
819"Reusing pieces of code is liked picking off sentences from other people's
820stories and trying to make a magazine article."
821 ~ Bob Frankston
822%
823"Make everything as simple as possible, but not simpler."
824 ~ Albert Einstein
825%
826"It's better to wait for a productive programmer to become available than it is
827to wait for the first available programmer to become productive."
828 ~ Steve McConnell
829%
830"Managing senior programmers is like herding cats."
831 ~ Dave Platt
832%
833"The programmer, like the poet, works only slightly removed from pure
834thought-stuff. He builds his castles in the air, from air, creating by exertion
835of the imagination. Few media of creation are so flexible, so easy to polish and
836rework, so readily capable of realizing grand conceptual structures."
837 ~ Frederick P. Brooks
838%
839"I am rarely happier than when spending entire day programming my computer to
840perform automatically a task that it would otherwise take me a good ten seconds
841to do by hand."
842 ~ Douglas Adams
843%
844"In programming, the hard part isn't solving problems, but deciding what
845problems to solve."
846 ~ Paul Graham
847%
848"Good programming is good writing."
849 ~ John Shore
850%
851"Programming is similar to a game of golf. The point is not getting the ball in
852the hole but how many strokes it takes."
853 ~ Harlan Mills
854%
855"It's okay to figure out murder mysteries, but you shouldn't need to figure out
856code. You should be able to read it."
857 ~ Steve McConnell
858%
859"One man's crappy software is another man's full time job."
860 ~ Jessica Gaston
861%
862"Great software, likewise, requires a fanatical devotion to beauty. If you look
863inside good software, you find that parts no one is ever supposed to see are
864beautiful too. I'm not claiming I write great software, but I know that when it
865comes to code I behave in a way that would make me eligible for prescription
866drugs if I approached everyday life the same way. It drives me crazy to see code
867that's badly indented, or that uses ugly variable names."
868 ~ Paul Graham
869%
870"Good code is its own best documentation. As you're about to add a comment, ask
871yourself, "How can I improve the code so that this comment isn't needed?""
872 ~ Steve McConnell
873%
874"Beta. Software undergoes beta testing shortly before it's released. Beta is
875Latin for "still doesn't work.""
876 ~ anonymous
877%
878"A good programmer is someone who always looks both ways before crossing a
879one-way street."
880 ~ Doug Linder
881%
882"Another effective technique is to explain your code to someone else. This will
883often cause you to explain the bug to yourself. Sometimes it takes no more than
884a few sentences, followed by an embarrassed "Never mind, I see what's wrong.
885Sorry to bother you." This works remarkably well; you can even use
886non-programmers as listeners. One university computer center kept a teddy bear
887near the help desk. Students with mysterious bugs were required to explain them
888to the bear before they could speak to a human counselor."
889 ~ Brian W. Kernighan & Rob Pike
890%
891"All programmers are playwrights and all computers are lousy actors."
892 ~ anonymous
893%
894"Programmer - an organism that turns coffee into software."
895 ~ anonymous
896%
897"Theory and practice sometimes clash. And when that happens, theory loses. Every
898single time."
899 ~ Linus Torvalds
900%
901"Your task is not to foresee the future, but to enable it."
902 ~ Antoine de Saint Exupéry
903%
904"Sometimes it pays to stay in bed on Monday, rather than spending the rest of
905the week debugging Monday's code."
906 ~ Christopher Thompson
907%
908"Anything that can possibly go wrong, will go wrong."
909 ~ Murphy's Law
910%
911"There is not now, nor has there ever been, nor will there ever be, any
912programming language in which it is the least bit difficult to write bad code."
913 ~ Flon's Law
914%
915"Software sucks because users demand it to."
916 ~ Nathan Myhrvold
917%
918"We are just as proud of what our products don't do as we are as what they do."
919 ~ 37Signals
920%
921"Any fool can write code that a computer can understand. Good programmers write
922code that humans can understand."
923 ~ Martin Fowler
924%
925"Most good programmers do programming not because they expect to get paid or get
926adulation by the public, but because it is fun to program."
927 ~ Linus Torvalds
928%
929"First learn computer science and all the theory. Next develop a programming
930style. Then forget all that and just hack."
931 ~ George Carrette
932%
933"Learning to program has no more to do with designing interactive software than
934learning to touch type has to do with writing poetry."
935 ~ Ted Nelson
936%
937"In the one and only true way. The object-oriented version of 'Spaghetti code'
938is, of course, 'Lasagna code'. (Too many layers)."
939 ~ Roberto Waltman
940%
941"A sentence should be enough to get the idea across."
942 ~ 37Signals
943%
944"Computer science education cannot make anybody an expert programmer any more
945than studying brushes and pigment can make somebody an expert painter."
946 ~ Eric Raymond
947%
948"Eagleson's Law: Any code of your own that you haven't looked at for six or more
949months might as well have been written by someone else."
950 ~ Alan Eagleson
951%
952"Programming is like sex: one mistake and you're providing support for a
953lifetime."
954 ~ Michael Sinz
955%
956"Always code as if the guy who ends up maintaining your code will be a violent
957psychopath who knows where you live."
958 ~ Martin Golding
959%
960"Don't waste your time typing up that long visionary tome; no one's going to
961read it. Take consolation in the fact that if you give your product enough room
962to grow itself, in the end it won't resemble anything you wrote about anyway."
963 ~ Gina Trapani
964%
965"When you come across a stumbling block because the code doesn't quite fit
966anymore, or you notice two things that should really be merged, or anything else
967at all strikes you as being "wrong", <em>don't hesitate to change it</em>.
968There's no time like the present."
969 ~ Andy Hunt & Dave Thomas
970%
971"Encoded names are seldom pronounceable and are easy to miss-type."
972 ~ Robert C. Martin
973%
974"Programmers must avoid leaving false clues that obscure the meaning of code."
975 ~ Robert C. Martin
976%
977"Write shy code - modules that don't reveal anything unnecessary to other
978modules and that don't rely on other modules' implementations."
979 ~ Andy Hunt & Dave Thomas
980%
981"A design is "simple" if it follows these rules: Runs all the tests; Contains no
982duplication; Expresses the intent of the programmer; Minimizes the number of
983classes and methods."
984 ~ Kent Beck
985%
986"Workaholics aren't heroes. They don't save the day, they just use it up. The
987real hero is already because she figured out a faster way to get things done."
988 ~ 37Signals
989%
990"Whenever there is a sticking point, ask, "are we staying true to the vision?"."
991 ~ 37Signals
992%
993"Each new user of a new system uncovers a new class of bugs."
994 ~ Brian W. Kernighan
995%
996"I don't care if it works on your machine! We are not shipping your machine!"
997 ~ Vidiu Platon
998%
999"Profanity is the one language all programmers know best."
1000 ~ anonymous
1001%
1002"Code never lies, comments sometimes do."
1003 ~ Ron Jeffries
1004%
1005"A computer is a stupid machine with the ability to do incredibly smart things,
1006while computer programmers are smart people with the ability to do incredibly
1007stupid things. They are, in short, a perfect match."
1008 ~ anonymous
1009%
1010"Testing can show the presence of errors, but not their absence."
1011 ~ E. W. Dijkstra
1012%
1013"Premature optimization is the root of all evil in programming."
1014 ~ anonymous
1015%
1016"Theory is when you know something, but it doesn't work. Practice is when
1017something works, but you don't know why. Programmers combine theory and
1018practice: Nothing works and they don't know why."
1019 ~ anonymous
1020%
1021"Compatibility means deliberately repeating other people's mistakes."
1022 ~ David Wheeler
1023%
1024"Correctness is clearly the prime quality. If a system does not do what it is
1025supposed to do, then everything else about it matters little."
1026 ~ Bertrand Meyer
1027%
1028"Just because the standard provides a cliff in front of you, you are not
1029necessarily required to jump off it."
1030 ~ Norman Diamond
1031%
1032"A program is portable to the extent that it can be easily moved to a new
1033computing environment with much less effort than would be required to write it
1034afresh."
1035 ~ W. Stan Brown
1036%
1037"Simplicity is prerequisite for reliability."
1038 ~ E. W. Dijkstra
1039%
1040"The central enemy of reliability is complexity."
1041 ~ Daniel Geer
1042%
1043"If you're willing to restrict the flexibility of your approach, you can almost
1044always do something better."
1045 ~ John Carmack
1046%
1047"Deleted code is debugged code."
1048 ~ Jeff Sickel
1049%
1050"True innovation often comes from the small startup who is lean enough to launch
1051a market but lacks the heft to own it."
1052 ~ Timm Martin
1053%
1054"You don't have a scaling problem yet."
1055 ~ 37Signals
1056%
1057"A happy programmer is a productive programmer. That's why we optimize for
1058happiness and you should too. Don't just pick tools and practices based on
1059industry standards or performance metrics. Look at the intangibles: Is there
1060passion, pride, and craftmanship here? Would you truly be happy working in this
1061environment eight hours a day?"
1062 ~ 37Signals
1063%
1064"It's not at all important to get it right the first time. It's vitally
1065important to get it right the last time."
1066 ~ Andy Hunt & Dave Thomas
1067%
1068"Rules of Optimization: Rule 1: Don't do it. Rule 2 (for experts only): Don't do
1069it yet."
1070 ~ Michael A. Jackson
1071%
1072"The trouble with programmers is that you can never tell what a programmer is
1073doing until it's too late."
1074 ~ Seymour Cray
1075%
1076"Never trust a programmer in a suit."
1077 ~ anonymous
1078%
1079"The difference between theory and practice is smaller in theory than in
1080practice."
1081 ~ anonymous
1082%
1083"The most exciting phrase to hear in science, the one that heralds new
1084discoveries, is not 'Eureka!' but 'That's funny...'"
1085 ~ Isaac Asimov
1086%
1087"Perfection is achieved, not when there is nothing more to add, but when there
1088is nothing left to take away."
1089 ~ Antoine de Saint Exupéry
1090%
1091"Computer Science is no more about computers than astronomy is about
1092telescopes."
1093 ~ E. W. Dijkstra
1094%
1095"PHP is a minor evil perpetrated and created by incompetent amateurs, whereas
1096Perl is a great and insidious evil perpetrated by skilled but perverted
1097professionals."
1098 ~ Jon Ribbens
1099%
1100"Don't comment bad code - rewrite it."
1101 ~ Brian W. Kernighan & P. J. Plaugher
1102%
1103"Be careful to preserve the orthogonality of your system as you introduce
1104third-party toolkits and libraries. Choose your technologies wisely."
1105 ~ Andy Hunt & Dave Thomas
1106%
1107"DRY - Don't Repeat Yourself - Every piece of knowledge must have a single,
1108unambiguous, athoritative representation within a system."
1109 ~ Andy Hunt & Dave Thomas
1110%
1111"The ideal numbers of arguments for a function is zero (niladic). Next comes one
1112(monadic), followed closely by two (dyadic). Three arguments (triadic) should be
1113avoided where possible. More than three (polyadic) requires very special
1114justification - and then shouldn't be used anyway."
1115 ~ Robert C. Martin
1116%
1117"The first rule of functions is that they should be small. The second rule of
1118functions is that <em>they should be smaller than that</em>."
1119 ~ Robert C. Martin
1120%
1121"Code smells."
1122 ~ Martin Fowler
1123%
1124"Functions should do one thing. They should do it well. They should do it only."
1125 ~ Robert C. Martin
1126%
1127"Don't live with broken windows."
1128 ~ Andy Hunt & Dave Thomas
1129%
1130"It should be noted that no ethically-trained software engineer would ever
1131consent to write a DestroyBaghdad procedure. Basic professional ethics would
1132instead require him to write a DestroyCity procedure, to which Baghdad could be
1133given as a parameter."
1134 ~ Nathaniel Borenstein
1135%
1136"Refuctoring - the process of taking a well-designed piece of code and, through
1137a series of small, reversible changes, making it completely unmaintainable by
1138anyone except yourself."
1139 ~ Jason Gorman
1140%
1141"If debugging is the process of removing software bugs, then programming must be
1142the process of putting them in."
1143 ~ E. W. Dijkstra
1144%
1145"It works on my machine."
1146 ~ anonymous
1147%
1148"There are only two kinds of languages: the ones people complain about and the
1149ones nobody uses."
1150 ~ Bjarne Stroustrup
1151%
1152"Some people, when confronted with a problem, think "I know, I'll use regular
1153expressions." Now they have two problems."
1154 ~ Jamie Zawinski
1155%
1156"If you want to set off and go develop some grand new thing, you don't need
1157millions of dollars of capitalization. You need enough pizza and Diet Coke to
1158stick in your refrigerator, a cheap PC to work on and the dedication to go
1159through with it."
1160 ~ John Carmack
1161%
1162"The first 90% of the code accounts for the first 90% of the development time.
1163The remaining 10% of the code accounts for the other 90% of the development
1164time."
1165 ~ Tom Cargill
1166%
1167"Walking on water and developing software from a specification are easy if both
1168are frozen."
1169 ~ Edward V. Berard
1170%
1171"To iterate is human, to recurse divine."
1172 ~ L. Peter Deutsch
1173%
1174"That's the thing about people who think they hate computers. What they really
1175hate is lousy programmers."
1176 ~ Larry Niven
1177%
1178"Most of you are familiar with the virtues of a programmer. There are three, of
1179course: laziness, impatience, and hubris."
1180 ~ Larry Wall
1181%
1182"There's an old story about the person who wished his computer were as easy to
1183use as his telephone. That wish has come true, since I no longer know how to use
1184my telephone."
1185 ~ Bjarne Stroustrup
1186%
1187"There are two ways of constructing a software design. One way is to make it so
1188simple that there are obviously no deficiencies. And the other way is to make it
1189so complicated that there are no obvious deficiencies."
1190 ~ C. A. R. Hoare
1191%
1192"Controlling complexity is the essence of computer programming."
1193 ~ Brian W. Kernighan
1194%
1195"Objects are abstractions of processing. Threads are abstractions of schedule."
1196 ~ James O. Coplien
1197%
1198"The Three Laws of TDD: 1) You may not write production code until you have
1199written a failing unit test. 2) You may not write more of a unit test than is
1200sufficient to fail, and not compiling is failing. 3) You may not write more
1201production code than is sufficient to pass the currently failing test."
1202 ~ Robert C. Martin
1203%
1204"Complexity kills. It sucks the life out of developers, it makes products
1205difficult to plan, build, and test."
1206 ~ Ray Ozzie