Sunday, August 28, 2011

The Clean Coder

I enjoyed this tiny book very much. Robert C. Martin lays down here many important issues that many programmers should be aware of.

I will not even try to write a review of the book - I just want to point out some things that influenced me. In general, I like soft-software books, I mean without the code, just mentoring. I like that Mr Martin is recalling the days of his early programming adventures, when he was a high school geek or 2* years old passionate hacker. That means to me that he has a distance to what he does even though he is a passionate and claims himself being a professional. Someone I want to learn from about programming.

Number one (and this an interpretation, not a quote) you don't have to be experienced to be a professional. I know it sounds silly. But there is, I guess, a space for unexperienced-professionals. What I mean is that everyone can behave professionally. Experienced-professionals for me are the ones who tried to behave professionally, they succeed, and they follow their path no matter what. The attitude is the power.

When I was 19 years old I remember working with so called "experienced" programmers. They were supposed to teach me, and I was supposed to learn. Thankfully there are many sources of knowledge and I could take a different path. I can easily see now the difference between an experienced and experienced-professional developer. Thanks to that book I can also define it.

Second thing is about prioritizing and learning. Never more ocasional priority inversion. If there is a task that is more important, don't do other one because it's easier. Don't even follow the internal dialog, about how right is it to work on another task while the most important one can wait a bit.

One sentence was really nice. It was about practicing after work. He recommends 3 hours a day (quite a lot I must admit). I will put it in bold: Practicing is what you do when you aren't getting paid. You do it so that you will be paid, and paid well.

And one more thing. If you don't follow TDD (or any other discipline that is as effective as TDD), you can stop calling yourself a professional. I like that he says that with no illusions, that there may be another way of being a good programmer who doesn't write automated tests for his/her code. No, there is not.

Anyway, I recommend that book a lot. I'm still on my way to be professional, but I guess that this book indicates one of the best ways to succeed.

And the cover is there for a reason, astronomy has a lot to do with programming.

No comments:

Post a Comment