DevOps is one of the hottest job titles in tech right now, but it’s also one of the most broad, and intimidating (that is, if you exclude mainframe engineers!) So if you’re thinking about switching to a career in DevOps, how do you get started, without getting completely overwhelmed?
On this page, we’ll dive into everything you need to know to make a career switch into DevOps.
So without further ado, let’s dive in!
Should I move into DevOps?
If you’re looking for a new challenge, a job in DevOps could be the thing for you.
Getting a career in DevOps can be tricky, but you’ll thrive if:
You enjoy learning. ABL. Always Be Learning. It seems that there’s a new DevOps tool released every week. In DevOps you’ll constantly be learning… I mean constantly.
You enjoy problem solving and troubleshooting. You’ll need to troubleshoot systems which you don’t know very well. For better or worse, you’ll often be called on as the person to fix a problem, and save the day.
You’ve got existing knowledge you can bring to the table. Companies are crying out for experienced sysadmins and developers who know their stuff and like a challenge, to help run their production apps. You’d be ahead of the huge number of people who are trying to get into DevOps with no experience.
And, err…. you could earn a lot more money. 💰 If you’re coming from a traditional IT ops or junior developer role, you could earn a lot more money in a skilled DevOps role.
BUT DevOps might not be the job for you:
You need to enjoy collaboration. In DevOps you’ll be working with developers, product managers, and many many other people. You need to keep a cool head, and enjoy sharing and collaboration.
You have to enjoy being outside of your comfort zone. In traditional IT ops, you might be an absolute expert in just a few core systems. In DevOps, the landscape is much bigger, and you’re more likely to need a working knowledge of many more systems, and then be learning new systems all the time.
It can be high stress. If you’d prefer to have an easy job, regular 9-5 hours, doing mostly the same work every day, then don’t get into DevOps. Just don’t. You may even need to be on-call, which might make you frustrated.
Now you know that, let’s get on to the next rather important question.
What roles should I look out for?
If you’re thinking of getting a job in DevOps, you probably want to know the job titles you should be looking out for.
DevOps comes down to three technical practices: Infrastructure Automation, Continuous Delivery and Site Reliability Engineering. (Check this great article by The Agile Admins.)
And it may come as a surprise to you that these practices can be performed by people with lots of different job titles.
Here are some examples of roles where you might be doing some DevOps. These roles all have a lot of overlap, and there’s no regulated definition, so all of these roles can vary:
Build and Release Engineer - this person might work on CI/CD pipelines to build and deploy code into multiple environments, create releases, configure applications, and make sure the automation scripts are in tip-top shape.
Cloud or Platform Engineer - this person might create resources in the cloud or platform-as-a-service (PaaS), and also deploy applications to it.
Site Reliability Engineer (SRE) - this person might specialise in running applications in production, monitoring, and improving their reliability.
DevOps Engineer - this person might do a bit of everything, including bits from all of the other positions above.
Notice anything about these job descriptions? They’re all… kinda… similar.
Here at Tutorial Works, we’re really into cutting out the bullshit. So let’s be frank:
These job titles are mostly interchangeable, almost to the point of being meaningless.
So if you want to get into DevOps, start by searching for any of these roles, and see whether the work is something that interests you.
How much can I get paid?
The short answer is: rather well.
The post-pandemic job market is on fire, and DevOps-related jobs are paying a pretty penny in 2021:
🇺🇸 In the U.S.: Indeed.com gives average U.S. salaries for a DevOps Engineer at $119,000, and a Site Reliability Engineer at $133,500 per year.
🇬🇧 In the U.K.: You can find DevOps positions in London paying up to £90,000. Obviously London is a high-cost-of-living (HCOL) city, so you should bear this in mind.
These figures exclude the hidden job market, where positions are advertised and recruited directly, without salaries being published anywhere, so the real figures could be much higher!
Does DevOps require coding skills?
If by ‘coding’ you mean ‘scripting’, then yes, definitely.
One of the fundamental principles of DevOps is automation. ✨
The days of clicking buttons to install software, create user accounts, deploy apps and configure virtual machines are over.
Instead, these manual actions are being replaced by shell scripts, API calls, automated provisioning tools (like Terraform) and configuration management tools (like Ansible).
But that’s not all.
In addition to automation, you’ll also need to understand how software is built and deployed.
This means understanding what the development team do, and how they work - e.g. the software development lifecycle.
You probably won’t need to develop a full application from scratch, but you will often need to have a high level understanding of how to compile code, read application logs, run tests, and so on.
So, in summary, you should be comfortable writing code to do your job.
How do I transition into DevOps?
Once you’ve decided you want to get into DevOps, how do you do it? How do you transition into DevOps?
It’s pointless just running through a list of DevOps technologies here, because they will vary from job to job.
So start by searching the DevOps jobs in your local area (or the area you want to live in!) and figure out what their technical requirements are.
And then, use these suggestions to help focus your learning:
A) You’re coming from Ops/Sysadmin
You’ve got knowledge of enterprise systems. You know your way around a network, and how to install and manage software. So:
- Learn Linux
- Automate everything
- Understand the SDLC (development, testing, operations, different environments). And preferably dig into Agile
- Understand what the developers do. Learn how to help them, or make it easier to get their apps into production (automation).
- Understand software architecture (web servers, databases, load balancers, etc.)
B) From Development
This is pretty much the path that I followed.
You know about software development, writing code, running tests, and delivering quality apps. So, next:
- Understand modern software architecture (like load balancers, networking, and so on.)
- Learn more about how your application is built, released and run in production.
- Take control of your own CI/CD pipelines, deploying and configuring your app.
- Learn cloud basics (or whatever platform your company uses.)
- Get comfortable with the command line, especially Linux.
What qualifications do I need for DevOps?
A lot of people ask whether you need a degree for DevOps.
And the answer is “it depends”.
The problem with DevOps is that it’s so fast-moving, that it’s unlikely it will look similar in 3 years (by the time you finish a degree).
So recent experience and knowledge is essential.
If you’re already in a tech job without a degree, then your career history might help you to get DevOps interviews, without needing to head to university for 3 years.
But if you’re really looking to prove your knowledge, then you might want to consider a certification:
Cloud provider certifications like Amazon’s Certified Solutions Architect let you prove your knowledge of public cloud providers, and all their quirks.
Kubernetes certification is highly valued where companies are using Kubernetes. This is the Certified Kubernetes Administrator (CKA) course and exam, which is offered by the Linux Foundation.
Bootcamps and online courses are an option for training, if they can include a lot of practical work. If you pick a bootcamp, you should choose one which is provided by a recognised authority. The Linux Foundation runs bootcamps and certifications, other tech companies might offer similar courses too.
Is DevOps difficult to learn?
DevOps is difficult to learn if you try to tackle everything at once. It seems like it’s just a vague cloud (pun intended!) of skills you need to master.
It’s like saying “I’m going to learn software engineering”. It’s just too broad.
The secret is to niche down.
Focus on the specific set of skills that are needed for the jobs that you want.
So start by looking at job ads near you, to find out what you need to know. This will help you to build your own personal roadmap (see below for more on this.)
At this point, you might decide whether you want to specialise in release engineering, or SRE, or cloud, and so on.
Once you get a good grasp of some of these basic skills, you can now turn to other, more advanced skills.
5 ways to learn DevOps right now
If you can’t develop yourself at work, you can always develop your skills in your own time.
Here are some tips to get started:
1. Build your personal roadmap and set your goals.
Start at the end, and figure out where you want to be. The best way to do this is with a roadmap (ours is pretty good!) and looking at local job listings.
From this, you can figure out what you don’t know, and what skills you still need to learn.
Use that “gap” to build your own personal learning roadmap.
Several years ago, when I first moved to London, I realised that there was a gap between my skills, and the jobs that I was looking for.
So I spent my free time learning software (it was Oracle at the time – don’t judge me!) so that I felt more confident about applying for new jobs.
Do this. It works.
2. Find a project to work on at home.
This tip requires the biggest commitment, but it will give you the biggest results. More than any course or book.
Some people choose to run a homelab. You don’t need to do this, but it’s good to have a little sandbox where you can experiment freely (far away from messing up your tax returns and your kids’ Minecraft setup)
This usually means running an application, and automating it, either at home or in the cloud. Use your project to:
- Learn the tools
- Make mistakes
- Publish what you’ve learned – as a blog post, or perhaps on your GitHub profile.
We’ve got a bunch of DevOps Projects Ideas which will help your creative juices to start flowing.
3. Follow a curriculum (or even better, a course)
There are plenty of courses online, and many of the good ones are free.
You can also get a good overview of a topic by studying a curriculum for an “official” course.
For example, the Red Hat Certified System Administrator (RHCSA) publishes its curriculum. You can use this to dive in and research Linux topics which you’re not quite familiar with yet.
4. Learn a programming language (if you don’t know one already)
If you don’t know anything else, just learn Python.
It will teach you about basic programming, data structures, creating APIs and basic dependency management.
Check out Automate The Boring Stuff with Python. It’s a free book, and there’s a Udemy course if you prefer to learn with video.
5. Join conferences or meetups and check out videos
We’re living in the golden age of access to information.
There is so much free content on YouTube.
Take conferences, for example: A lot of the tech conferences used to be completely closed off, the content available only to high-paying attendees.
Now, many conferences publish their content online, for free! And it’s good quality content, not some random person reading Powerpoint slides in their bedroom.
Seek out videos and content from real DevOps engineers and SREs. These are the folks who are speaking at real conferences and events, talking about real world challenges.
Note down the technical terms that you don’t know or understand. Look them up. Try and create a little project for yourself, to learn these technologies.
If you’re super-keen, you might also join a local meetup. There, you will find your fellow citizens giving talks about what they’ve been learning or doing.
(And if you’re worried you might have to make small-talk with someone, then you can sit at the back of the room and put your bag on the chair next to you.)
Just like any new skill, it takes time to see progress.
Don’t bite off more than you can chew, just focus on getting 1% better, every day.
Focus on continuous improvement and you will get there!
If you want a visual guide to help you build out your roadmap then…. we’ve got a PDF for that.
Pop your details in the box below to join our newsletter, get the Visual Guide to DevOps, and lots more fun stuff to help you build your career in DevOps and beyond!
Got any thoughts on what you've just read? Anything wrong, or no longer correct? Sign in with your GitHub account to leave a comment.
(All comments get added as Issues in our GitHub repo here, using the open source comments tool Utterances)