I get a series of questions all the time.
- How do I switch careers to be a developer?
- How do I become a data scientist?
- How do I add intelligence to my code?
- How do I get a job in distributed computing?
- How do I code more analytically?
The answer to these questions are pretty much all the same. Step 1, learn about it and build one piece of software focused on that goal. Step 2, go for it, just do it. So that said, Microsoft has a fantastic resource, Microsoft Virtual Academy, which provides free training around various topics from entry level to advanced. This article focuses on a learning plan with MVA to attain the goal of becoming an Analytics Developer.
What is an Analytics Developer?
An analytics developer is a developer who focuses on answering deeper questions with software. In traditional development shops, I often see basic CRUD operations, or the extent of the analytics is “Who are the top 5 paying customers”. That’s fine, but that is not adding real analytics to a software product.
An analytics developer aims to take a product from its basic components into “We know what drives our top paying customers, lets deliver the experience to all customers based on criteria focused on them”. Or perhaps it is predicting what the new hot commodity is for your website so you can market it first. Perhaps it is realizing that based on statistics a particular customer has a 90% chance of having poor eyesight and we default an experience with larger font.
An analytics developer is a traditional full stack developer who takes their development skills to the next level to produce meaningful value specific to each and every user, be that user an admin, a customer, or even another developer. Beyond the mindset change for an Analytics Developer, you will need a variety of skills.
So what is the learning plan?
As an analytics developer, you will spend 99% of your time working on backend systems. Therefor there are 2 key programming languages you need.
You need C#. The two below courses should be a good beginner as well as intermediary exposure to the core language you will use when interacting with most api’s. C# will be used primarily to define data types, interact with architectural components and most data access.
You will need F#. F# will be used for data crunching, analysis and distributed computing. It will be your language for writing the core libraries used for the actual intelligence.
You will definitely need to understand SQL and Entity Framework for data storage and Access. These are the core technologies I use. SQL can support upwards of low TB, and Entity Framework is a great way to get access to that data quickly.
You will need to understand a few important Azure Concepts. Azure is my hosting platform of choice, it also has various PaaS capabilities that are crucial to Analytics Developers.
You will need data exploration tools as well. These tools are invaluable in that they help you prove your concepts prior to coding them into production systems.
Taking it to the next level
These are what I consider the advanced or specialist topics. They are in this section as they will be needed for specific examples, or can be used to really differentiate yourself as an Analytics Developer. These primarily focus around scaling your solutions or increasing performance.
When your data is too big to handle.
When you need to worry about on premise resources. These may be more IT Pro, but an understanding of where your data works and lives is crucial to high performance analytics.
Everybody needs to know a little about performance
That is a TON of information. Likely that you already know a fair amount of it, but if you are looking to jump into software engineering, my favorite place is definitely as an Analytics Developer. There is something about answering questions that provide value that I just really like. If you are comfortable with the material in at minimum the baseline training section, you should be successful in your endeavors. Real Time analysis and Big data are my next favorite place in taking it to the next step. Good luck!