Explore
D

David Thomas

philosopher

29 quotes

Software developer and co-author of The Pragmatic Programmer, a foundational text in software engineering.

Keep knowledge in plain text. Plain text won't bec
Don't panic when debugging. Take a deep breath and
The greatest of all weaknesses is the fear of appe
Instead of excuses, provide options. Don't say it
Be a catalyst for change. You can't force change o
An investment in knowledge always pays the best in
DRY — Don't Repeat Yourself. Every piece of knowle
Design components that are self-contained, indepen
Prototyping is a learning experience. Its value li
Estimate before you start. You'll spot potential p
Fix the problem, not the blame.
Code generators increase your productivity and hel
Assertions validate your assumptions.
Where possible, the routine that allocates a resou
Don't live with broken windows. Fix bad designs, w
Don't spoil a perfectly good program by overembell
Learn at least one new language every year.
Read a technical book each quarter.
Critically analyze what you read and hear.
There's no point in having great ideas if you don'
The editor should be an extension of your hand.
Make it easy to reuse. If it's easy to reuse, peop
There are no final decisions. No decision is cast
Source code control is a time machine for your wor
Don't assume it — prove it. Prove your assumptions
You can't write perfect software. Protect your cod
Crash early. A dead program normally does a lot le
Don't program by coincidence. Rely only on reliabl
Program close to the problem domain. Design and co