Which Microsoft Technology Should I Learn?
After looking over the Microsoft landscape over the years, there are a number of directions you can take in your career. Today, I go over "career tiers" of Microsoft technology paths in the IT industry.
For new candidates entering the IT Industry, there are a number of opportunities if you are interested in various development, data, or management paths.
I've been using Microsoft products for over 20 years with Classic ASP all the way up to the current version of ASP.NET MVC. Along the way, I have met and worked with a lot of talented people and have come to realize that there are a ton of Microsoft career paths out there.
I was approached by a couple of individuals over a period of two months and they asked what Microsoft technologies should I learn to future-proof myself?
While there isn't a right answer to that question, there are a lot of Microsoft solutions experts who specialize in a number of technologies and skill sets that set them apart from others in the IT market.
In the 90's, I remember an article in InfoWorld asking people in the IT industry if they were hedgehogs or foxes in their career? The thinking behind this question was that hedgehogs pick a particular topic and do a deep dive into the underpinnings of that technology. They study everything about that one technology and become "one with the tech" and become an expert where as the fox would be a jack-of-all-trades. They know a number of technologies, but provide a vast amount of knowledge in integration with other systems.
If you want more information on the hedgehog and fox comparison, check this post on Mind Tools about The Hedgehog Concept?
What I want to show in this post is the number of Microsoft technologies you can use to move towards a particular field to expand your career.
The areas I want to cover are broken into 4 parts: client-side, server-side, cloud operations, and data analysis/storage.
Client-Side
Fat client
These careers are considered to be where developers create executables that you download to your computer and can run without an Internet connection, but lately, most executables are requiring an Internet connection to confirm a license or subscription is valid to use the application.
These are the positions where one to any number of developers are tasked with building an executable or collection of executables to accomplish a particular task for a customer. Think of these positions developing products like MS Word, MS Excel, or Quickbooks.
Technologies used: .NET (either C#, F#, or VB.NET), WPF (Windows Presentation Foundation), XAML, WinForms.
Possible Career Paths: .NET Developer; Senior .NET Developer; .NET Architect
Web
If you've been hiding under a rock for the last 20 years, you know that the web is here to stay...and there are a number of web technologies you can use to build web sites. Most of the opportunities in this field are HOT!
However, along with the Microsoft web technologies, an absolute requirement for standing out from the competition is to be fluent in JavaScript, CSS, and how to consume Web Services.
Technologies used: ASP.NET (WebForms/MVC), C# or VB.NET, JSON, XML, JavaScript, JavaScript Frameworks (AngularJS, Knockout, etc.), CSS (Cascading Style Sheets)
Possible Career Paths: ASP.NET Web Developer/Designer; Senior ASP.NET Web Developer/Designer; ASP.NET Web Architect; Responsive Web Developer/Designer
Mobile
The last client side technology I want to cover is probably the biggest technology in the last 5 years. If you haven't heard, mobile devices have overtaken desktops as the primary way to access the Internet.
You. Need. To. Be. On. Mobile.
Whether it's a responsive design web site or a smart phone app you download from the Google Play Store or the Apple App Store, you need to focus on mobile more today than ever before.
Technologies used: Xamarin (uses C# for cross-browser development in Visual Studio)
Possible Career Paths: Mobile Developer; Senior Mobile Developer; Cross-Device Developer
QA (Quality Assurance)
Once a developer writes their code, they need to run their unit tests (which goes without saying) and then their code needs promoted into a user acceptance/staging/test area for QA to run their tests again the finished product.
The types of testing a QA professional would perform in the field would be:
- Unit Tests: Run individual unit tests to confirm that the developer coded the feature/enhancement/bug properly.
- Integration Tests: test the connection to databases, files, and external resources to make sure the code is as close to a production environment as possible using fakes data.
- Regression Tests: Run all of the past integration and unit tests to confirm that nothing was broken with new features that were added or enhanced.
Microsoft knew that this was such an important step in the development and the release of a product where they created a new version of Visual Studio called Visual Studio Test Professional to assist in this endeavor.
Technologies used: Visual Studio Test Professional
Possible Career Paths: Quality Assurance Specialist; Quality Assurance Web Developer; Release Manager; Configuration Management Specialist.
Server-side/Middle-tier
Web Services
Did you know that software is eating the world? This just means that your favorite web sites will have an API (Application Programming Interface) you can connect to and "consume" that data on that site to make up your own product.
Most internal applications have a middleware server or enterprise service bus (ESB) where all internal applications (and external) connect to retrieve data, whether it be on an intranet, extranet, or application.
Technologies used: WCF (Windows Communication Foundation), WebAPI (REST-based), XML, JSON, C#/VB.NET
Possible Career Paths: Integration Specialist; Web Services Specialist
DevOps
If you specialize in Team Foundation Server (TFS), you may be interested to know that a number of companies look for ways to accomplish Continuous Integration, or automated builds, with continuous deployment.
Believe me, once you have automated builds that check your unit tests and run regression tests all with the push of a button, you won't want to go back to the old way of doing it.
According to Wikipedia, the term is defined as:
DevOps is a software development method that stresses communication, collaboration, integration, automation, and measurement of cooperation between software developers and other information-technology (IT) professionals.
DevOps is more of an team effort as opposed to a title to give to someone, but some companies have the mentality of this group as a "special units" team.
Technologies used: TFS (or other build management tool like Jenkins or Hudson), deployment tools (MS WebDeploy), IIS (Internet Information Server)
Possible Career Paths: DevOps Specialist; Configuration Manager; Deployment Manager
Cloud
Azure Services
The only other hot trend besides mobile is the cloud and Microsoft's contribution to the Internet is Azure.
Companies are looking for specialists who work with setting up clients in the cloud and transition them to work completely from the cloud.
Yet, most companies still haven't moved to the cloud because of the amount of coupling between their data and systems. Everything is so entwined together that it would take close to 5-10 years to detach everything before they move it to the cloud.
I remember receiving an Azure poster from Microsoft, but after two months, the poster was useless because the Azure landscape changed so rapidly.
There is a reason why this is strictly a full-time job to keep up with all of the changes dealing with Azure.
Technologies used: Azure Services
Possible Career Paths: Azure Specialist; Cloud Integration Specialist
Data Analysis/Storage
Database Administrator (DBA)
This is definitely a constant in the world of Microsoft. There will always be DBA's in this world to let you know that your queries are slow, your stored procedure (sproc) needs an index, or letting you know that you don't need that field because it's taking up too much space. ;-)
Most SQL Server administrators I've met are very good at their job and SQL Server is all they do...every. single. day. These guys are definitely hedgehogs. ;-)
Technologies used: SQL Server; Azure SQL Database; SSIS (SQL Server Integration Services); Analysis Services; Reporting Services
Possible Career Paths: Database Administrator; Data Scientist/Miner
Conclusion
As you can see, there are a number of possible career paths in the Microsoft world with the web, mobile, and the cloud being the strongest contenders.
Also, this doesn't mean that you only need to specialize in one technology. You can combine any of these paths like being a Cloud DBA. Companies do need those as well.
You don't need to be just a hedgehog...be a fox! ;-)
Did I miss some positions? What other Microsoft career paths could someone take with these technologies? Post your comments below.