More on this book
Community
Kindle Notes & Highlights
Pragmatic Programmer takes charge of his or her own career, and isn't afraid to admit ignorance or error.
We can be proud of our abilities, but we must be honest about our shortcomings—our ignorance as well as our mistakes.
When you make a mistake (as we all do) or an error in judgment, admit it honestly and try to offer options.
If there was a risk that the vendor wouldn't come through for you, then you should have had a contingency plan.
Instead of excuses, provide options. Don't say it can't be done; explain what can be done to salvage the situation.
If you must, tell your cat first. After all, if little Tiddles is going to take the blame....
When disorder increases in software, programmers call it "software rot."
Don't leave "broken windows" (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered.
Take some action to prevent further damage and to show that you're on top of the situation.
but neglect accelerates the rot faster than any other factor.
One broken window—a badly designed piece of code, a poor management decision that the team must live with for the duration of the project—is all it takes to start the decline.
Constantly review what's happening around you, not just what you personally are doing.
you can discipline yourself to write software that's good enough—good enough for your users, for future maintainers, for your own peace of mind. You'll find that you are more productive
Great software today is often preferable to perfect software tomorrow. If you give your users something to play with early, their feedback will often lead you to a better eventual solution
Don't spoil a perfectly good program by overembellishment and over-refinement. Move on, and let your code stand in its own right for a while. It may not be perfect. Don't worry: it could never be perfect.
Consider the effect of modularization on the delivery of software. Will it take more or less time to get a monolithic block of software to the required quality compared with a system designed in modules?
Your knowledge and experience are your most important professional assets.
Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut.