Programmers have to fight against the two most destructive forces in the universe: entropy and stupidity.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
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.
Every great developer you know got there by solving problems they were unqualified to solve until they actually did it.
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.
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.
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.
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.
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
Hiring bad developers is like drinking seawater. It seems to satisfy a need while actually increasing it.
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.
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.
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.
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.
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!
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.