Last night I posed the question “what code should I be reading to become a better .NET developer”? Frans Bouma answered (to paraphrase) “probably none, you should be learning about algorithms instead”. I’ve thought about what Frans suggested all day, and I’m not convinced that working towards being a better programmer by studying algorithms is the best way (well, not for me right now). Algorithms are certainly important, and the TOC of the book Frans suggested seems to have quite a few interesting items, but there seem to be so many things that interest me, and which I think contribute to good quality code, that algorithms are not concerned with. Things like coupling, cohesion, API and library design, patterns, the use of interfaces and inheritance, type size, testability and code documentation. Techniques for managing complexity don’t seem to have a great deal of overlap with “big-O” notation. Maybe reading the source code for larger code-bases will not help here either, I’m not sure. I will add the book Frans suggested to the stack when I can track it down. I’ll post a follow up when I’ve read it and can be more objective.