http://blogs.msdn.com/b/ericlippert/archive/tags/graph+colouring/
It's a set of posts on designing a simple graph coloring solver, and while it's sort of a toy problem, one thing I loved about it was how detailed Eric was in describing why he designed things this way and not that. I've been coding for years, but never really had any formal training in software "engineering" so my work has a haphazard, hacky nature.
Anyone have an recommendations on books, blogs, or articles with a similar style?
Basically a walkthrough of a non-trivial problem, discussing pros and cons of design decisions, possible alternatives, etc.? I know I can browse open source projects, but I usually don't get the "why I did this" element from that, and reading e.g. design patterns stuff usually doesn't make the connection with a real-world problem.
An alternative phrasing of the question: assuming you don't have access to experienced software engineers as mentors, how could you teach yourself how to write great code?