Dapeng Li

Hungry, foolish and passionate – yet another software developer.

Archive for April, 2013

My favorite quotes from the book “The Clean Coder”

leave a comment

Recently I read a book named The Clean Coder by Robert C. Martin (aka Uncle Bob). I have learned a lot from his previous books like Agile PPP and Clean Code, this one is no exception. If you would like to be a professional software developer, please read this book.

Below are my favorite quotes from every chapter in the book.

1. Professionalism

Professional is all about taking responsibility.

The fact that bugs will certainly occur in your code does not mean you aren’t responsible for them. The fact that the task to write perfect software is virtually impossible does not mean you aren’t responsible for the imperfection.

2. Saying No

Don’t you have to do what your manager says? No, your manager is counting on you to defend your objectives as aggressively as he defends his. That’s how the two of you are going to get the best possible outcome.

3. Saying Yes

The secret ingredient to recognizing real commitment is to look for sentences sound like this: I will…by… (example: I will finish this by Tuesday.)

4. Coding

The training of less experienced programmers is the responsibility of those who have more experience. Training courses don’t cut it. Books don’t cut it. Nothing can bring a young software developer to high performance quicker than his own drive, and effective mentoring by his seniors.

5. Test Driven Development

The tests you write after the fact are defense. The tests you write first are offense.

6. Practicing

Professional programmers practice on their own time… employers of programmers don’t have to pay you for your practice time.

7. Acceptance Testing

Unit tests and acceptance tests are documents first, and tests second… The fact that they automatically verify the design, structure, and behavior that they specify is wildly useful, but the specification is their true purpose.

8. Testing Strategies

To make good on the goal that “QA should find nothing,” development teams need to work hand in hand with QA to create a hierarchy of unit, component, integration, system, and exploratory tests.

9. Time Management

Remaining in a meeting that has become a waste of time for you, and to which you can no longer significantly contribute, is unprofessional.

10. Estimation

An estimate is not a number. An estimate is a distribution.

11. Pressure

When the going gets tough, trust your disciplines. The reason you have disciplines is to give you guidance through times of high pressure.

12. Collaboration

Perhaps we didn’t get into programming to work with people. Tough luck for us. Programming is all about working with people.

13. Teams and Projects

Professional development organizations allocate projects to existing gelled teams, they don’t form teams around projects.

14. Mentoring, Apprenticeship, and Craftsmanship

School can teach the theory of computer programming. But school does not, and cannot teach the discipline, practice, and skill of being a craftsman. Those things are acquired through years of personal tutelage and mentoring.

Written by Dapeng

April 16th, 2013 at 9:49 pm

Posted in Programming

Tagged with ,