Today during the daily commute I was thinking about what technologies I should focus on. After thinking for a while I couldn't keep count of all things, so here it is in writing. :)
These are the areas I want to learn...but prioritization is needed otherwise I would end up learning nothing:
- WPF: In my day job most of the apps I develop are Windows (WPF) applications. So it makes sense for me to dig deeper into WPF. Going deeper into various MVVM frameworks is something I want to pursue.
- ASP.NET: We do have one BIG web application here. It's written nicely and architecture is quite cool. But it is still using WebForms approach, so I need get upto speed with ASP.NET MVC applications (also jQuery).
- .NET 4.0: Specifically parallel and async features - parallel LINQ, parallel task library, async/await. Dynamic feature.
- Unit Testing: especially Mocking tools
- Entity Framework: Although I am comfortable working with LinqToSql, EF is getting better with each new release. Need to get deeper into this (version 5.0 beta released last week.)
- Silverlight: No one is sure about its future, but in my view it is still a formidable option to consider in local-intranet scenarios
- Performance / debugging: Go deeper into WinDbg, DebugDiag, performance issues (general and COM)
- iPhone/iPad dev using MonoTouch
- Windows 8 dev: Dip toes in the WinRT development using C# and build Metro applications (registered with a boot camp on May 10)
- Learn more about these concepts: Dependency inversion techniques, Test driven development, SOLID principle
- F#: In some scenarios F# fits very well. Need to at least have "intermediate" level of knowledge.
- Cloud computing, virtualization: This has gathered pace and it can longer be ignored as future of tech. This is in the 'now'. Plan to look into what other vendors offer. Application virtualization is also getting very interesting.
- Scripting: I like what I see in PowerShell, want to get started with it. Using it can be huge time saver in some scenarios.
- Kinect/XBox: Microsoft released Kinect for Windows SDK and the hardware will be launched in Singapore in June. Another exciting technology which can have a huge impact.
- Project management: This is something big, but necessary. The target is not just to become a better programmer but a manager as well sometime in future.
- Architecture: TOGAF certification