TDD , or test driven development , is one of the better ways to develop software. It leads to better design.
TDR , or test driven reading , is one of the better ways to understand programming concepts. (specially Design Pattern topics)
The more blogs and tutorials I read, the more I realise that every article starts with the design code and then the execution ( main() ) code .
I then thought, if I read the main/execution code first and then try to go back and see the design code , then everything starts making sense.
Tests / main() code also leads to a better understanding of programming concepts