There are only two downsides to this way of crafting your resume (assuming you actively enjoy learning); you will "waste" some percentage of your time on bad guesses, and in the long run you will get more calls from recruiters than you know what to do with (really).
So it is that time again for me to figure out the next set of things to focus on. There is a lot of cool stuff happening in tech right now so I am going to list everything that is catching my eye right now and then will narrow it down to a doable list in a future post.
- Azure: I have done some work in Azure already but Azure is a huge topic and I am committed to becoming masterful here. Some areas of specific interest are:
- Scheduled Jobs/WebJobs
- ASP.NET "vNext" and C# 6: The ASP.NET framework is being rewritten from scratch with huge changes to their deployment and coding models. Perhaps not so earth shaking C# 6 has some nice new features, chief among them a more open compilation model that enables easier code analysis and using C# as a a scripting language (check out http://scriptcs.net/).
- Along with the new versions of ASP.NET and C# is , unsurprisingly, a new version of Visual Studio.NET and now the equivalent of VS.NET Professional is free for small teams! http://www.visualstudio.com/en-us/products/visual-studio-community-vs
- SignalR: I have used SignalR a fair bit but the matured quite a bit in the last 2 years so I need a refresher.
- NoSQL: I have used MongoDB a lot and I will continue to do so, but I think it would be a good idea to get some exposure to at least one other NoSQL database. The candidates that I am considering are CouchDB/CouchBase, RavenDB and DocumentDB (Microsoft's Azure NoSQL db, which I mentioned above)
- Knockout: I have been using Knockout for years and I love it. Why Knockout as opposed to something like AngularJS? Knockout is focused on just a very few things, mainly two way data binding. It is designed to be combined with other tools like RequireJs, SammyJs and jQuery to create a complete solution. Personally I like this method of composing an app from small focused tools, so Knockout suits me very well. It is mature, under active development, and the documentation is excellent. Why is it on my "what's next" list? The latest release has added support for creating self-contained Web Components and I am excited about that. And you can't know a tool too well. http://knockoutjs.com/
- AngularJS: All that talk about what I like about Knockout as opposed to something like AngularJS you would think that Angular would not be on my list. The thing is that there is a huge amount of momentum around Angular and philosophical attitudes aside it is silly to ignore that. I make a lot of my living from contract work where the tools are specified by others so it would be dumb for me to not learn AngularJS. And by all accounts it is a very nice tool to work with so I am sure I will enjoy it (most things to do with computers are easy for me to enjoy).
- Xamarin and mobile development: Xamarin is a tool for developing native mobile applications using C# and programming paradigms familiar to any .NET developer. The model allows a very large amount of code reuse across iOS and Android while still respecting the distinct aesthetics of each platform. Everyone I have spoken to that has used it loves the results. It also allows the creation of hybrid apps mixing native code and HTML/JS. http://xamarin.com
- XAML/WPF: Xamarin uses XAML for some of its programming so I will be learning it there, but should I dig into XAML for desktop development as well? I have mostly been a Full-Stack WebDev for a long time. Is it worth the investment of time? I am pondering.
- Client-side tools: There is a whole new generation of tools for developing HTML/JS apps like Grunt, Gulp and Bower. Plus lots of uses for Node.js even if you have no interest in Node per se.
- Python: I keep saying that I am going to learn Python…we will see if it makes the cut this year.
- PostgreSQL JSON datatype: PostgreSQL is a great database engine with a lot of interesting features…and now it has JSON and JSONB datatypes with indexing. This would seem to open up some really interesting applications where you can use a hybrid relational/non-relational strategy in the same database. Very intriguing and needs investigation.