Its been one year since I started this blog, so I figured a reflective post might be appropriate.
What went right in 2008:
- I made a dramatic change to my free time habits. I did significantly more reading and programming, and spent much less time playing videogames.
- I read a bunch of software related books cover-to-cover. Probably more than in all previous years combined.
- I involved myself in an open source project.
What went wrong:
- I started many things, finished few. I played with lots of stuff but didn’t deliver a whole lot.
- I failed to deliver a worthwhile MVC based web application.
- I made very little progress in the area of algorithms and data structures.
Rereading my posts from a year ago, it is quite evident that my year did not proceed quite as I intended. However, I am not disappointed - I learned quite a bit about my own capabilities and study habits. My career goal changed – while Google is very alluring, I recognise that Microsoft would probably be an awesome place for me to work and a better fit. I have concluded that my focus on the Microsoft stack is not a bad thing. From my perspective, there are lots of exciting things in the works for the Microsoft stack:
- Microsoft will be, for the first time ever, providing and fully supporting a proper functional programming language: F#.
- The introduction of the DLR promises to foster a healthy ecosystem of dynamic programming languages, with IronPython and IronRuby at the forefront.
- Spec# has been transformed into a code contract library with compiler support and will be part of the .NET 4.0 release.
- Windows Azure, Microsoft’s cloud computing platform, could make a significant impact on the .NET development ecosystem over the next few years.
- Oslo, simply because it could help push domain specific languages into the mainstream. I am sceptical about much of what Oslo promises, but I think better tooling and raising awareness of what DSLs can offer is a good thing.
In the next few years I will be able to explore functional languages, dynamically typed languages, code contracts, cloud computing and domain specific languages all within the .NET platform. There is an immense amount for me to learn (this list, obviously, is nowhere near enumerating all of it), so why not go with the path of least resistance and learn what I can within the MS stack?
I hope to do a better job this year of actually finishing things. My study habits are still a long way off being optimal.