Last week I spent five full days under the tutelage of Jean-Paul Boodhoo. He was offering a course he’s calling Nothin’ But .NET and I was lucky enough to weasel my way into it as one of the 11 attendees.
The first thing that needs to be said about this course is definitely for well seasoned developers. You can not expect to go into this course and learn .NET. There is no way that a developer at that skill level can expect to keep up to the concepts and pace that they will be faced with.
We covered a lot of ground in five days. We started with a brief refresher on IEnumerable, IEnumerator and the use of the yield statement. Like many of the concepts that we covered, they appeared in an order that allowed us to apply them at many points as we moved forward.
After the quick refresher, we dove into some serious software development and OO concepts. Us students were hit with everything from the Single Responsibility Principle (SRP) to the Monostate Pattern. Although keeping up with these teachings was a stretch at one point or another for pretty much everyone in the room, we got to apply them in a group code project. Because we had some weaker students in the class I did find that the application of the lessons onto our class project left some people sitting around with nothing to work on while they waited for others to complete their tasks.
One of the most difficult concepts that we covered was Domain Driven Design. The domain that we were working in wasn’t that difficult, but the change to a completely different way of analyzing problems required us to unlearn a lot of what we normally do. In the end JP worked really hard at getting us through this mental barrier and I think it hit home for almost everyone in the room.
Of all the things that that were good about the course, there was one thing that really didn’t seem to fit for me. We spent an afternoon working on setting up nAnt scripts and configuring Cruise Control .NET servers. Even though these are important project and development basics in my mind, I think that they didn’t work with the rest of the course topics. Many times I heard JP saying that he’d take care of some code for us because he considered it to be “infrastructure” and that we shouldn’t waste time on it when we could be working on the concepts of the day. With hindsight, I think that the nAnt and CCNet work could have been approached from this standpoint and it would have freed up a half a day for more OO goodness.
Overall this was a fantastic course. You will be very hard pressed to find another that can offer the topics that JP did all in one week. The value for dollar is significant. If you’re lucky enough to get into JPs course make sure you do two thing…cancel all plans and send the family on holidays. You will not have an ounce of energy when the days are over. Top that with the fact that JP will give you all that he can, even if it means running the course from 830am to 1030pm.