I like a lot of Edmonton bloggers attended JP's great .NET bootcamp last week. JP made a good comment about how we learn like crazy -> plateau -> repeat (a lot of people never do the repeat part). JP has shown me the next level of learning which is really exciting.

I am not going to rant and rave about the course (Jonas captured my thoughts so eloquently). I am a little behind the curve right now being stuck in a 1.1 vb environment but this course has shown me the value of a lot of technologies and techniques that I am already starting to implement.

-Delegates, Generics, Anonymous methods, and all the great uses for them
-Nant & continuous integration
-Coding to interfaces
-The mass power behind dependency injection and dependency inversion
-mocking / testing in isolation
-structuring of an application
-domain driven design and having a task/service layer (such a great change from the MS DNA style which is crap in my opinion now)
-dependency mapping
-And so much more that I can not even think about

The course seemed slow in the middle to me but now that I think back we covered so much in a short period of time. Plus the last day we did 14 hours and got to dig into stuff like moving validation out of the ui layer and into something more testable/ reusable, the monostate pattern (really cool), passive views, proxies, and probably even more. I think my brain was fairly full by that point.

It was great to learn from and work with someone who was knowledgeable and using all these practices. JP had no pre-canned app we just started working and making direction changes as we went. Doing the process and pairing with JP and other students was a great experience and really showed me the power of paired programming.

I did not have many issues with the course. It was unfortunate that we had a fairly disparate knowledge base in the class. There were several people there that were not the most experienced developers so this course was quite an overload for them and that slowed us down a lot I felt. My only other issue was that while we did get a piece of functionality working from front to back (and with high code coverage), we did not get into unit of work. It is a big topic that we just did not have time to cover but I would really like to see an implementation of it. It has got me thinking though on how to do it in a good fashion (and not in the fowler way which seems a little chatty to me).

Now all I have to do is make the time to use this stuff and play more. I am thinking I will post again in a bit on this topic on how much this course has changed my development. Seeing is how after leaving I feel like I have not been programming but "throwing code at the problem". So now its time to climb this learning spike and then plateau again. I can't even imagine what the next climb will be like.