> "The best way to learn good code design and architecture is to work
> with code someone already wrote (open source, libraries, frameworks,
> etc) that uses good design and architecture."
> Or having to debug code that someone else wrote that *wasn't* written
> well. It's one thing to learn the good practices, but it's quite
> another to understand WHY good code is good and bad code is bad.
Especially when you authored the garbage in question. The best way
appreciate and remember good methods is to totally screw yourself
over. Reading well written books is a good idea, but the lessons just
don't stick quite as well....