I'd start with these books/videos. There are huge lists online, but reading 25K pages won't be as helpful as a few things you can chew through in a summer.
http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
Bob Martian also has a book and a blog by the same title. I think the videos are starting to cover all of the
http://www.amazon.com/The-Effective-Engineer-Engineering-Disproportionate/dp/0996128107
Lots of general good information. Slightly more advanced and meta compared to the rest.
http://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530
It's the canonnical introduction to TDD