Recently, I feel that I've reached a wall I need to vault over to continue improving myself. I was reading the book Pro ASP.Net MVC2 written by Steve Sanderson and he holds your hand throughout the chapters, all the while introducing Dependancy Injection and abstract interfaces.
I realized this is completely new for me and very hard for my mind to grasp and apply. Sure, I followed the code, but as all developers know there is a point where something in your mind clicks and everything is clear.
I haven't reached that point yet.
The book explains in the introduction, a couple of developer stereotypes. SmartUI developers, those who program actions within control events; the Layered developers, those that use a three-layer architecture.
I fall into the latter, but I do know professional developers that are 100% SmartUI devs. Professional meaning they are paid for creating applications.
What can a developer do to vault over this hurdle? I'm sure everyone faces it at some point. Being a good 3-layer developer, what's the next step for me?
Should I read about Dependency Injection? Should I first learn and become adept with Unit Testing and be comfortable with Test-Driven Development?
What should my next move be?
Feel free to change the tags to something more descriptive.