I'm often asked by my fellow IT professionals for some career advice. These questions come through my contact page from IT pros around the world. They are each at different stages of their career. Most of the questions boil down to a few key areas:
- How do I become an expert in X?
- Do you think it's worth learning X?
- I already know X, what should I learn next?
Because of my background, most of the “X” in those questions relate to Exchange Server and Office 365. But, I'm asked more and more about other topics such as Azure as well.
I've worked in IT since 1999, and I received a lot of great advice from my peers and mentors over the years. But as much as I love to pay it forward, I get more of these questions than I have time to reply to. So, I thought it would be useful to collect my thoughts into a single article of my career advice for 2018.
Before I get into specifics, here's some guiding principals that you should always keep in mind when thinking about your career in IT.
- Change is a constant.
- Swimming against the current will only wear you out.
- Your job is to serve the customer, not play with your favourite toys.
- Don't get attached to tools, systems, or platforms. Nothing last forever.
- Comfort is the enemy of progress.
The reason I make those points is because I see a lot of IT professionals who struggle in their career when they:
- Can't adapt to change.
- Forget who they are here to serve.
In the Exchange Server space, a prime example is the changes in management tools since Exchange 2003. Having to learn new tools throws some people off their game. The need to learn PowerShell is a source of great anger for some of them too. PowerShell is a decade-old technology that is ubiquitous in the Microsoft ecosystem. It's everywhere now. As I said, swimming against the current will only wear you out.
Knowing Your Market
I can list off a bunch of technologies here that you should learn. But, that isn't going to be useful if nobody in your area is hiring people with those skills.
Before you commit to a learning path, do your research to see what job opportunities exist where you live.
Look at the advertised positions to see what they list as required and desired skills. Use those as a guide to determine where you should focus your progression. Don't take job ads too literally though. Many job ads ask for more skills and experience than they'll actually be able to get. If a company wants a Senior Systems Engineer with Exchange, SQL, XenDesktop, NetScaler, Barracuda, Azure, and Docker experience, that's a lot to expect. They might get lucky and find someone with all those skills. But, it's more likely they'll accept someone with fewer of those skills, if you can show other desirable qualities. Good examples are soft skills and side projects.
Aside from job ads, talk to your friends and colleagues as well. Find out what their company is using, what they are hiring for, and pursue those skills for yourself. If all your friends are talking about their VMware migrations to Azure IaaS, then that's a clue you should be starting to familiarise yourself with Azure as well.
Knowing Where You Stand in the Life Cycle
Technology moves through a predictable adoption curve. Where you stand on that curve influences your career opportunities.
- Innovators go first, and take on a lot of risk in the process. But they get the highest reward for that risk. Many pioneers and thought leaders are playing in this space. In return for their risk they gain access to opportunities for high priced consulting and product management roles.
- Early adopters go second. These tend to be community leaders who are able to translate the work of innovators into practical applications. Many trainers and authors operate in this space, because being the first to get a book or training course to market provides the best return. Early adopters can make a name for themselves by being first. This leads to a consistent stream of employment, speaking and consulting opportunities. It can also mean a disrupted lifestyle (e.g. a lot of travel), and high churn rate as they move from job to job chasing the newest technologies.
- The early majority show up when a technology has proven that it is viable for widespread adoption. They are able to learn from the teachings of early adopters, and apply those teachings to their own situations. A lot of standards and best practices are cemented during this phase. They tend to have stable job prospects and the ability to move on to new roles when they want to.
- The late majority adopt technologies that are mature and stabilised. The late majority is willing to forgo the latest features and benefits in return for the lower perception of risk. The reality may be that they miss out on the best performance, security, and value on offer. They are most at risk of losing jobs to outsourcing and offshoring, due to the lower perceived value of their skills.
- Laggards come last. Laggards come in many forms, and it's not always a bad thing to operate in this space. In my hometown, there was a time when the last few Novell Groupwise admins could command very high contract rates. There were only a few customers in town, and the supply/demand ratio favoured the experts. But these opportunities don't last forever. Laggards run the risk of their skills falling out of date and having no market value at all.
Throughout your career you can move through different parts of the technology lifecycle. It will depend on your geographic area, your personal circumstances (e.g. health, age, family), and your natural abilities. A person close to retirement age might be quite happy to run out their final years as a laggard. A younger person with decades of work ahead of them should be trying to move towards the front half of the cycle.
That doesn't mean everyone should strive to be an innovator. One person will enjoy staying up all night, testing and breaking things, to work out groundbreaking uses for technology. Another person will prefer to do their 9-5, read books in the evening, and go fishing on weekends. Neither is right or wrong. As long as you're happy and you understand how your personal lifestyle integrates with your work, you can have a successful career.
Also keep in mind that what you're seeing the most marketing noise about is products in the early adopter to early majority phase. This is where most marketing is happening, but it doesn't always reflect the most in demand jobs for your market. Focus on what makes you happy and employable, not the Next Big Thing(tm).
Specialist vs. Generalist
Opinions vary on whether it's better to specialise or generalise in your IT career. Again, this will depend on your place in the adoption curve, and your level of experience. Early adopters are often specialists. Whereas the early and late majority tend to have a higher expectation of a more broad skillset.
The jobs in your market are also a factor, of course. Some markets don't have demand for specialist roles.
Whether to specialise or generalise is also a matter of personal preference. Some people desire to know as much as they can about a broad range of topics. Others prefer a deep understanding of a few technologies.
I quite like the idea of “T-shaped people”. As I wrote here recently:
Specialists are revered when you need one, but often find themselves wedged into a corner and unable to move out of it. Despite their obvious ability to master one topic, many will assume they’re incapable of doing anything else.
Generalists are equally misunderstood, seen as the “Jack of all trades, master of none” who is “a mile wide and an inch deep”. As useful as generalists are to have around, many will assume they’re incapable of handling a deep or complex matter due to their broad skill set.
The solution is to aspire to become a T-shaped person. Start by moving across, learning multiple skills to a moderate level of proficiency, then dive deep when the right opportunity is presented.
To expand on that, reflect on your own skills and how they stack up in your market. Are you acquiring a deep understanding of one technology, but seeing jobs advertised for things you know nothing about? That is hint to start broadening your skills.
If you're feeling like you know nothing more than the very basics on a lot of stuff, then pick a single area that shows a promising future and start to go deeper.
One of the problems with specialisation is that it tends to lead to feeling comfortable. Some specialists become emotionally attached to the single area of their expertise. As I wrote earlier in the guiding principals, comfort is the enemy of progress. Change is a constant in the technology world. If you get too comfortable and attached to one thing, it can be a real blow to your happiness (and your employability) when that thing goes away.
Where to Get Training
When I first came into the IT industry, there were two choices for learning new skills:
- Attend a high-priced classroom training course.
- Read a book.
Today, we can choose from more training resources than ever before. Classroom training has declined, with online training courses now dominating. Companies such as Pluralsight (who I am involved with) and Lynda.com offer affordable access to huge libraries of video training courses. Other platforms such as EDX also offer free courses across a range of topics.
Vendors host their own online training as well, such as Microsoft's Virtual Academy, and also upload hours of free content to platforms such as YouTube.
Podcasts have emerged as a popular education resource as well. You can find a podcast on almost any topic. They're easy to consume during a commute, exercise, or while doing chores around the house.
Books are still going strong, despite predictions of their demise. Traditional publishers have struggled with the transition to eBooks, but self-publishers have emerged to fill the gap. There are many free and low-cost self-published books available today to learn from. And your money goes to the creator in full, instead of just a few dollars in royalties (if any).
You can get by with spending zero dollars on training, if that is important to you. There is enough free material out there to learn from. A subscription to an online training library, and a few book purchases throughout the year, is a good investment. You can then round out your learning with podcasts and blogs.
Skills for IT Professionals in 2018
Okay, let's get into some specifics. I'll preface this by saying that this advice applies to IT professionals working in the Microsoft ecosystem. That includes both on-premises infrastructure, and cloud services.
I've grouped the specific technologies down into categories. Where you see more than one suggestion, use your research of your local job market to decide which ones to focus on.
Finally, these are my opinions. Don't get offended if I mention something that you hate, or don't mention something that you love. If you disagree with my advice, by all means leave a comment below and explain why. It's likely that someone else will learn from your perspective.
The big three cloud services for IT professionals are Office 365, Azure, and Amazon AWS. Being comfortable and proficient in any three of those will be valuable.
- Office 365 – this is a suite of productivity apps and services. Working with Office 365 means understanding how to integrate it with your existing infrastructure, migrate your data, and help your users adopt the new applications into the business. There is a big focus on identity integration, security, and compliance. You will lose a lot of “control” that you previously had. Your role moves away from the under-the-hood backend stuff, and more towards the user-facing stuff. The more you can connect Office 365 capabilities to business needs, the more employable you will be.
- Azure – this is a huge set of services encompassing identity, security, compute (VMs), data/storage, management/automation, and a broad range of application and development services. I am not doing it much justice when that description, but it's enough to make my point. It's unreasonable to expect to learn everything about Azure. Choose the areas that make sense for what your job market needs, and what you want to do. Azure identity and security skills complement Office 365 skills very well. Azure IaaS skills are relevant if you're extending or moving your on-premises infrastructure to the cloud. Azure PaaS skills are more relevant if you work more with developers to deploy and host their apps.
- Amazon AWS – even though Amazon has some productivity services like WorkMail available, I am not seeing wide adoption. If they're valid for your market, by all means go ahead and learn about them. But most of AWS falls into the app/development, data/storage side of things. Similar to Azure, if you're working more on that side of things, then AWS is worth learning. Consultants who understand both Azure and AWS can do very well in the job market.
Exchange gets a special mention here because it is obviously a big part of my career. I get a lot of questions about the job prospects for people with Exchange skills. So here's my advice:
- Look at your current role or local job market to assess the need for Exchange skills.
- Migrating from “some old version” to “one of the current versions” is a consistent area of demand. Get familiar with it if you want to work in this space.
- Yes, there will be another version of Exchange in the future. Exchange Server 2019 is expected in late 2018.
- Exchange migrations to Exchange Online are the gateway drug for full Office 365 adoption in many companies.
- Exchange admin skills are also applicable to Exchange Online. It's not a wasted effort to learn about on-premises Exchange.
- Exchange is one of the earliest products to use PowerShell. The Exchange PowerShell skills you acquire are applicable other PowerShell-driven products as well.
- Exchange is tightly integrated with other areas of technology. Identity, mobility, security, storage, networks, and so on. Don't limit yourself to “Exchange”. Use the opportunity to gain skills in those related areas as well.
Server Operating System Platforms
Windows and Linux are your two main choices for server platforms. Yes, there's some hype around “serverless architecture”. It's a fun and exciting concept, currently in the early stages of the adoption curve. Traditional servers are still around, but are being supplanted by cloud services. For example, file servers can be replaced by SharePoint Online and OneDrive. Domain controllers can be replaced by Azure Active Directory services for some companies. But widespread replacement will be a long, slow process.
- Windows Server – my best advice here is to be comfortable in the N-1 version, and learning about the latest. Don't just learn the OS itself. Learn the roles it can perform. Active Directory, DNS, DHCP/IPAM, Certificate Services, IIS, file, print, storage, etc. Like Azure, there's a lot you can learn in Windows Server. So you need to make smart choices about where you focus. Take a T-shaped approach that ensures you can hold your own in many areas of the OS, and still show some specialisation.
- Linux – knowing “some Linux” has been useful for as long as I've been in IT. Linux is relevant in the server space, so don't ignore it. If your current employer uses some Linux, try to get involved. If you're not getting any current exposure to Linux at work, try to learn it in your spare time. There are plenty of beginner courses and beginner-level certs you can pursue. The hardest decision is finding something to use it for. A personal project such as a home proxy/firewall, or a web app that you're developing to learn how to code, is a good excuse to learn the basics of running Linux servers.
Scripting and Automation
It should be obvious to anyone in IT these days that we don't scale up IT operations teams as infrastructure grows any more. In the early years of my career there were “server to operator” ratio of 20:1 or 30:1 used as a guide for sizing teams. These days it's all about automation. Two or three admins can manage thousands of servers.
For the Microsoft IT pro, PowerShell is an essential skill. Whether you're managing servers, desktops, Active Directory, Exchange, or one of the many cloud services, PowerShell is the key to efficient, error-free, scalable administration.
The best way to learn PowerShell is to start using it to replace your repeatable, manual processes. User provisioning, reporting, inventory collection, archiving data, creating VMs, anything that you are following a set of prescribed steps for.
If you have multi-platform requirements (e.g. using both Windows and Linux) you should complement your PowerShell skills with an extra language such as Python.
If you're already comfortable with scripting and automation, expand your skills into the configuration management space. This is where PowerShell DSC, Chef, or Puppet skills are valuable. You can apply config management to on-premises environments if that is where most of your work is happening today. As more applications are redeveloped to fit into the cloud model, your scripting/automation and config management skills will become even more useful.
If you're stuck for ideas, start with this simple question. How can I free up one hour of my week by automating something?
Security and Compliance
In the old days, security was somebody's job. Today, security is everybody's job. As an IT professional, you can't leave security up to the “security team” to deal with.
Yes, they might provide you with some policies or standards to follow, and organise things like audits and pen tests. But security has to be a part of every system you design, install, and maintain. That responsibility falls on you.
Learning about security can be tricky. The temptation is to dive into specifics (e.g. how do I secure Office 365?) before understanding the fundamentals. It's better to understand the threats first, and then apply that understanding to different technologies as needed. For example, understand what phishing is and how phishing techniques work, then work out how to use Product X to mitigate that risk. Sometimes the answer is to use more than one product. If you only focus on what a single product does for security, then you'll miss the bigger picture.
If you're beginning your security journey, a great place to start is the Security+ certification from CompTIA. This certificate gives you a decent grounding in security concepts, and you can then get into product-specific security from there.
As you're learning about a new product, take some time to learn how to secure it as well, applying your fundamental security knowledge. And most importantly, learn how to secure it without burdening your end users.
Compliance is like security in many ways. Unfortunately, compliance has a reputation for being boring. It also has a lot of misconceptions. Customers often believe that compliance regulations prevent them from doing something. Regulations are regularly cited as an excuse for not using cloud services. Often the reality is that there is no regulation preventing them from using the cloud, or the regulations merely require certain controls be in place. That's where you come in. By understanding the compliance features of Office 365 (or Azure, or AWS), you can help customers benefit from new technologies while remaining compliant.
What About Learning to Code?
There's been a huge amount of noise lately about coding being an essential skill for the future. I agree with that to an extent. Some coding skill will be important for us all, eventually.
But it's not a case of throwing out your IT pro career and going full stack dev immediately.
If you're scripting already, then you're coding. PowerShell is coding. Once you go beyond one-liners and basic scripts, you'll be coding proper tools in PowerShell that have many of the same characteristics as programs written in any other language.
Learning to code will teach you a lot about how IT systems work. Even basic scenarios such as fetching data from an API to store in a database will set you on a path of learning that will be helpful in the job market.
Remember, you can interact with cloud services like Office 365, Azure, and AWS by using many different languages. For example, the Office 365 Graph API works with Ruby, Python, NodeJS, and more. Learning to code opens up scenarios like custom applications and tools that interact with cloud services to generate reports or orchestrate operations.
Some resources you might find helpful to start learning how to code:
- Free Course: What is Programming? – an excellent primer on programming concepts.
- The Odin Project – another free web development course that also teaches Ruby and Ruby on Rails.
Pluralsight also has learning paths for all the popular programming languages.
While we're on the topic of learning to code, if you feel yourself stuck on which language to learn, start with Python. Don't overthink it. It's more important that you start than it is to pick the perfect language.
Don't Forget Personal Development and Soft Skills
In all the focus on what technologies to learn, you still need to keep up with your personal development and soft skills. IT is a people business after all. You can't hide away from the world and only interact with computers. You need to be able to work with customers, deal with sales people, and handle conflict. You need to network with peers to improve your job prospects in future.
You also need to stay sharp with skills such as time management, productivity, written communication, and problem solving.
I try to ready at least 3-4 books per year for personal development, and some business books as well. Reading business books also helps you understand why business leaders act the way they do.
If you're looking for recommendations, here's some suggestions:
- The Four Tendencies – this book will help you understand a very important personality trait in yourself and those around you.
- Deep Work – this goes beyond the usual productivity systems, and explores how to achieve a truly productive work life through periods of deep focus.
- The Dip – I've read this book almost every year since it was released in 2007. I also loan my copy to any friends who find themselves in a slump and can't work out what to do about it. At 96 pages you can whip through this in a weekend and return to work the next week with a clearer mind.
- The Phoenix Project – even if you're not into “Devops”, there's a lot to learn from this book. Problem solving, team work, empathy, incremental improvement, prioritization, and much more.
- The Lean Startup – although the title suggests this is only about startups, there's a lot of lessons for teams and companies of any size. How to validate ideas, experiment, measure success, fail fast when necessary, and deliver products and services that customers actually want.
What Does Your Year Ahead Look Like?
I hope you've found some of what I shared above useful for your career planning this year. If you have any thoughts on what the year ahead will look like for you, please feel free to leave a comment below. And of course, if you have any insights of your own to share with everyone, please also leave a comment to help out your fellow IT professionals.