A Developer's Approach to Learning Java: Read, Write, and Problem Solve Using Test-Driven Development: Labs Sequential