Last weekend was quite an interesting one for me, as I attended the Asynchronous Master Class from Cluj, with Richard Blewett and Andrew Clymer as trainers. The event was sponsored by iQuest* (that makes its 15th anniversary) and was open to any developer that wanted to get on board.
There is something amazing about C# as a language. Once you get it, code flows naturally, in a clean, readable way. I guess this is where Richard and Andy borrowed their natural flow with the presentations: the live coding session and the dynamic presentation style recommends this master class as one of the best technical presentation I have ever seen.
The content of the class was quite condensed, ranging from the basic .NET 1.0 multithreading support to newest things from .NET 4.5 and onwards, with a dash of post-mortem and program snapshot analysis using winDBG. And you know me, I don’t usually suffer too many hours in one place, just watching people talk. But the presentations were so good, so dynamic, so interesting there was little time to snooze. I bet Richard and Andy’s coming book on this topic will be interesting as well.
I won’t start the enumerate the things I learnt or understood better in the two-day master class; they are too many. Instead, I’ll note some things (partially non-technical) that I found interesting.
First of all, I was amazed by the inability of the audience to communicate with the presenters, not because of the presenters’ fault, but mostly because everyone felt strange to come out of the anonymity of the class room or fear of not saying something stupid. For most of the first day, my answers were always mute, or muted by my unwillingness to communicate. I thought it was a Romanian thing, but Richard and Andy assured me that it’s quite natural for that to happen. I think day too found me a bit more talkative.
Second, most of the things presented in the class can be applied successful with more or less effort in other languages as well, C++11, for example. I was always of the opinion that the programming language matters less, as it’s a language in which you express ideas. While C# has its own elegant style, I’m pretty sure the modus operandi and the concepts discussed there can easily be applied in a lot of high level languages.
Lambdas. I’m contemplating now for some time the idea of learning a functional language, it really feels like functional is the 201x’s template metaprogramming.
In the end, a wonderful experience, well worth a full weekend. 🙂