This part will take you approximately 30 minutes.
This video demonstrates the difference between two key techniques for building up implementations safely: Triangulation and Removing Duplication.
Kent Beck, Test-Driven Development: By Example. This remains the classic introductory text on test-driven development, although it predates the Mockist/London school approach to design, and so it shows only the Classicist/Detroit school approach. I don't consider this a deficiency, but rather an accident of history. It's where I learned things like "Fake It 'til You Make It", "Triangulation", and the "Log String", which eventually evolved into stubs.
J. B. Rainsberger, "Demystifying the Dependency Inversion Principle". This article includes a video in which Corey Haines and I discuss removing duplication between the production code and tests by moving the details from the production code into the tests.
Andrew Hunt and Dave Thomas, The Pragmatic Programmer. Still an absolute classic and one of the ten books that every programmer ought to have read at least three times.