Essentially to get the best from people you need to give them * Autonomy * Mastery * Purpose
I suspect from your question that you are most interested in focusing on Mastery, specifically how to help them make progress towards it.
I found Pragmatic Programer to be a pretty good general resource. http://www.pragprog.com/the-pragmatic-programmer
Outside of that I'd second the other comment here taking about Design Patterns - I think that the Head First book http://oreilly.com/catalog/9780596007126 is a great introduction
Day to day, finding ways to give to really quick feedback is important, code review and general collaboration with the others will really help.
Each week during our 1-on-1 I would review various concepts from each of the books and suggest reading for the following week. It was the best way I found to 1) get them up to speed on best practices and my expectations 2) help them see that my suggestions were (generally) founded on data.
Most of my programming is web apps which are a major PITA to use TDD on since so much of it is UI based, but nevertheless I'm struggling through and have found it to be the most useful addition to my repertoire in the last couple of years.