Atualmente estou procurando entender mais sobre boas práticas de programação (codificar de forma profissional). Me deparei com TDD e princípios SOLID. A pergunta que eu faço é: estudando a fundo TDD, indiretamente estarei estudando princípios SOLID?
Dicas de livros e sites são bem vindos.
Bem, eles não estão ligados diretamente, dentre os objetivos de ambos, eles tem um objetivo em comum: desenvolvimento de código com qualidade.
O SOLID é um tanto mais abrangente que o TDD, por mais que você estude a fundo o TDD você pode não compreender todos os conceitos do SOLID. O TDD no entanto fala de duas das letras do SOLID, que é o caso do S e o D: Single responsibility e Dependency inversion, onde esses dois conceitos são praticamente a base do TDD.
Por mais que existem N tutoriais na internet sobre TDD e SOLID, existem alguns livros bons como por exemplo o da casa do código: http://www.casadocodigo.com.br/products/livro-tdd e também o mais famoso que é o TDD By Example: http://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530
Mas eu acho que vale a pena você dar uma olhada em artigos que você pode achar na própria internet: http://www.devmedia.com.br/introducao-ao-desenvolvimento-guiado-por-teste-tdd-com-junit/26559 http://zeroturnaround.com/rebellabs/object-oriented-design-principles-and-the-5-ways-of-creating-solid-applications/ http://ivarconr.wordpress.com/2012/01/26/tdd-by-example-factorial/
Não conheço nenhum livro que fala sobre SOLID, mas, tendo em vista que o SOLID são um conjunto de várias boas práticas, você acha cada uma separada em artigos, ou até esse que eu mandei, onde fala de praticamente tudo.
Abraços.