
Written by Andrew Hunt and David Thomas
Here is the synopsis:
"Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process—taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to"
As a passionate professional, I always look for ways to improve my skills and work efficiency, therefore I could walk straight to this book just seeing its appealing title.
I must say that I already to follow most of the book guideline:
- DRY : don't repeat yourself
- Write flexible, dynamic, and adaptable code
=> That's pretty "Master of the obvious" if you ask me.
Some other advise are interesting:
- If it's broken, fix it : I often walk trough pieces of code that are not satisfying or even completely broken. I tend to postpone any improvement because of other pending task, but the author brings a rightful metaphor for this: when a public real estate, a glass is not replaced another glass gets broken, and people tends to be more and more careless to the point of the place being a complete dump, whereas when things are immediately fixed, people tends to keep the place clean.
- Use the right tool for the job:
master of text editor: text editor is the most used software, but I used so many different ones that I've mastered none. Mastering shortcut and macro is the key of higher productivity.
use code generator: I've never used code generator extensively but I must say that it's very useful for doing repetitive and uninteresting coding part while increasing code reliability
- Always learn bleeding edge technology: as most of people I think, when I get comfortable with a programming language/framework, reaching a high degree of productivity, I'm reluctant to get into new stuff, starting from scratch and advancing very slowly in my project. The time spent struggling with a new technology is never lost but account for a programmer's experience. Technologies that I should learn about: Boost framework is supposed to be state of the art C++, Ruby on Rails : this web-based Ruby framework enjoys a growing popularity.