Instantly Become a Better Programmer (then worry about learning TDD)

Jimmy Bogard has written a great post on ten tips to maximize the return on your TDD investment. One of his tips was to invest in your design skills, which I consider to be the best tip in the article. If there is a single, important message that I have tried to convey it's this: focus on the principles, not the technology. Principles are timeless and more importantly, portable between technologies. Trust me, I wasted years of my life learning the intricacies of COM programming...what does that knowledge do for me now? Learning Microsoft's latest and greatest technology is not going to make you a better developer. It's just going to take up space in your brain...long after the technology is obsolete.

So, you wanna learn TDD? Well, there are some other things you need to learn first. Fortunately, you can learn them really quickly, and even more fortunately, you will be twice the programmer that you were before. Literally, the way you think about code will change overnight. So, without further ado...

You could read Agile Principles, Patterns, and Practices (and I highly suggest you do) but the meat of the book is here for free. Read these SOLID articles to start your journey towards higher quality code:

These articles should take you a week or so to read. Don't rush through them. Consider them carefully and start to think about how the code you are currently writing violates (or validates) these principles. Once you have digested these articles, there is still plenty more to learn but you should be able to attempt a foray into the TDD area. If you want some more reading, I have a list of recommended books that I maintain. You should start reading them (and books like them), because it will further your understanding of the principles behind what we do.  

I think Jeremy Miller says it best: "TDD adoption punishes coders that don’t understand the basics of coupling, cohesion, and separation of concerns". I could not agree more. Even if you have a good OOD background, I think you will still have a tough time learning TDD. If you don't know these principles, you will probably abandon your efforts to learn TDD. It will just be too painful and unproductive otherwise.

September 24, 2008 01:33 by JP
E-mail | Permalink | Comments (2) | Comment RSSRSS comment feed

Related posts

Comments

September 30. 2008 09:46

oscar chinellato

You're totally right!

The articles you linked are amazing! Thank you.

A book that really helped me out on this was "Head First Design Patterns". It obviously covers design patterns, but it also gives some good hints and explanations about basic OO principles.

oscar chinellato

September 30. 2008 10:07

Oren

great post.

Watch this video - lsrc2008.confreaks.com/...urg-tactical-design.html

Glenn mention that it's hard to grasp the 'classical' patterns since they are high-level and abstract and also deal only with Classes, and it's hard to think
of classes while working on lower level stuff.

Here are his alternative to those principles-

2 coding rules:
1. Short methods.
2. Few methods to class.

3 principles:
1. Do one thing (in a class or a method).
2. DRY (don't repeat yourself).
3. Uniform level of abstraction (keep all operations in a method at the same level of abstraction).

Oren

Comments are closed