Are you always on time for the airport? Perhaps even early?
When you have family come and stay, are you the one who organizes activities to make sure fun stuff happens and no one misses out?
When you set New Year's goals, do you go a step further than just saying your goal? Instead, you write it down and then even map out the steps to get there?
Or when you did a group project at school, were you the one who made sure it got done?
Not everyone has these skills or thinks in systems like this, and that’s ok. But if you were nodding your head to any of these, then a career in DevOps might be just perfect for you!
It’s a combination of tech, communication, and organization, that pays well, is in high demand, and has a bright future.
Do you need a degree to get started or get hired? Nope
Are there job opportunities? Yep... currently 435,520 in the US alone
How much does it pay? A lot!... $122,000+ is the average of those available jobs
In this guide, I’ll pull back the curtains and show you exactly what it takes to become a DevOps Engineer.
I’ll also cover what a DevOps Engineer does, the skills required in the role, and how to get that all-important experience you need to land a job.
Hi, my name is Andrei Dumitrescu, I’m an instructor here at Zero To Mastery and I’ve been working in DevOps as a Network and Software Engineer for over 15 years now.
I’ve either worked directly in DevOps or provided consulting services on DevOps and SysAdmin best practices for a wide variety of companies.
This has allowed me to gain advanced knowledge of the Linux Operating System, the TCP/IP Protocol Stack, Terraform, Routing and Switching Protocols, Information Security best practices, and much more. So if you want to know anything about DevOps, ask.
All this this is to say that:
I like to think I have decent amount of experience in the industry and have helped many people go from complete beginners to hired as DevOps Engineers
This guide is my own personal recommendations (based on this experience) of what you should learn, in what order, and why - so that you can get hired ASAP 💪
So grab a coffee and a notepad and let’s get started!
A DevOps Engineer is the person responsible for helping to bridge the gap between software development and IT operations, so that projects get completed on time, and more efficiently.
They work to streamline and automate the deployment, integration, and management of software applications and infrastructure. All with the goal of improving collaboration, efficiency, and reliability across the entire software development lifecycle.
Basically, they make sure that stuff gets done!
Obviously, there’s more to it than just being organized or good with a calendar, so here's a mile-high breakdown of the major tasks inside the DevOps Engineer role:
First and foremost, DevOps Engineers help to create a culture of collaboration and communication between development, operations, and other cross-functional teams.
So much money is lost from teams not sharing information or simply not working on the right things.
For example
Airbus lost billions of dollars back in 2005 when confusion between teams in different countries led to multiple different small design changes, and electronics being wired differently across multiple different designs. This led to their wires being 40mm too short and a huge delay in production.
Now of course this is more of a manufacturing and design issue, but the same thing can happen in software and IT. Cumulative small issues all add up to larger errors.
This means that DevOps Engineers are not only good communicators, but they also help to facilitate agile practices, continuous improvement, and knowledge sharing to align teams toward common goals and objectives.
Everyone needs to be on the same page!
As for tools, DevOps Engineers use infrastructure-as-code (IaC) tools such as Terraform, Ansible, or Chef to automate the provisioning and configuration of infrastructure components, including servers, networks, and storage resources.
This automation ensures consistency, reliability, and scalability in the deployment and management of infrastructure.
DevOps Engineers will also implement CI/CD pipelines to automate the build, testing, and deployment of software applications.
To achieve this, they use tools like Jenkins, GitLab CI/CD, or CircleCI to orchestrate the automated delivery of code changes from development through testing and into production environments, enabling faster and more frequent releases.
DevOps Engineers leverage containerization technologies such as Docker and container orchestration platforms like Kubernetes to package, deploy, and manage applications in a consistent and scalable manner.
They design and implement containerized architectures that enable portability, scalability, and resilience in modern cloud-native environments.
You can’t just build it and hope nothing bad happens right? And so DevOps Engineers will also set up monitoring and logging solutions solutions to track the performance, availability, and security of software applications and infrastructure.
They use tools like Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana), or Datadog to collect, analyze, and visualize metrics and logs, enabling proactive detection and resolution of issues.
And finally, DevOps Engineers will also collaborate with security teams to integrate ongoing security practices and controls into the CI/CD pipeline.
They implement security scanning tools, vulnerability assessments, and compliance checks to ensure that software deployments meet security standards and regulatory requirements, and don't fall victim to code injections, malware, man-in-the-middle attacks or other threats.
DevOps Engineers help manage and communicate between teams, and then build systems to ensure everything works as it should, now and in the future.
In simple terms, imagine you have a big LEGO project to build, like a massive castle with lots of moving parts.
Then, you have two teams:
The builders who create new LEGO pieces
And the organizers who connect all the pieces together
A DevOps Engineer helps both teams work together smoothly. They make sure everyone has the right LEGO pieces and tools they need and that everything fits together perfectly.
Getting LEGO Pieces Ready: They make sure all the LEGO pieces are ready for building, like making sure they're the right color and shape. This is like preparing the software code for building
Putting LEGO Pieces Together: They help connect all the LEGO pieces together to build the castle. This is like setting up the software and making sure it works correctly
Checking Everything Works: Just like checking if the castle's drawbridge goes up and down smoothly, DevOps Engineers make sure the software works well and doesn't have any problems
Making Sure Everyone's Happy: They talk to both teams, the builders, and the organizers, to ensure everyone is happy and knows what they're doing. This helps everything run smoothly, just like in a LEGO project
And just like that, you now have a 6,000+ piece Hogwarts built and ready to go on display 😉.
The DevOps market size is expected to expand at a CAGR of 24.61%, reaching $26.9 Billion by 2028.
Not as large as some industries in tech, but still fantastic growth.
As for job opportunities? There are currently 435,520 open DevOps Engineering jobs on ZipRecruiter at the time of writing.
So an expanding industry and a lot of roles to get hired in. What's not to love!?
The average salary for a DevOps Engineer across those same listed jobs above is around $122,950 a year.
You can build and live a great life on that salary. Plus there are lots of opportunities to make more money as you advance your skills and career!
Nope! We say this all the time, but tech is pretty special this way. The vast majority of tech employers don’t care if you have a degree, as long as you can do the work, and have proof via a portfolio.
For example
Check out this job post for JP Morgan + Chase:
It's for a Senior DevOps position at a financial institution, they don’t care about a degree, and the job salary range is up to $180,000!
That being said, having a degree in something like Computer Science I'm sure will help you stand out but there are plenty of other better ways to stand out that won't cost you $100,000+ and 4 years of your life.
You can also get the core knowledge and skills taught in a CS degree from online courses (I'll link to some resources in the step-by-step guide below).
To become a DevOps Engineer, you need a combination of technical skills, soft skills, and domain knowledge.
Here's a mile-high breakdown (with more details later in the step-by-step section):
Programming and Scripting: You need to be proficient in programming languages such as Python, Ruby, or Shell scripting. These are essential for automating tasks and building infrastructure-as-code solutions
Operating Systems: You also need a strong understanding of Linux and Windows operating systems, including system administration, shell scripting, and command-line tools
Infrastructure as Code (IaC): Like I mentioned earlier, you also need experience with IaC tools like Terraform, Ansible, or Chef for automating the provisioning and configuration of infrastructure resources (but don’t feel like you need to learn all of them)
Continuous Integration/Continuous Deployment (CI/CD): Likewise, you need experience with CI/CD pipelines and tools like Jenkins, GitLab CI/CD, or CircleCI for automating software build and deployment processes, as well as implementing continuous integration testing to ensure early detection of integration issues
Containerization and Orchestration: Be familiar with common containerization technologies such as Docker, as well as container orchestration platforms like Kubernetes for managing and scaling your containerized applications
Cloud Computing Platforms: Cloud is booming right now and is often used with DevOps, so an understanding of cloud computing concepts and experience with public cloud platforms such as AWS, Azure, or Google Cloud Platform (GCP) for deploying and managing cloud-based infrastructure and services is vital
Infrastructure and Networking: You need knowledge of networking concepts, virtualization technologies, and infrastructure components such as servers, networks, and storage
Monitoring and Logging: You need knowledge of monitoring and logging tools like Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana), or Datadog for tracking the performance, availability, and security of systems and applications. Again though, don’t feel like you need to learn all of them. Get proficient with one and then learn the others if required on the job
Version Control Systems: In theory, everyone who works with code should be proficient with using version control systems such as Git. However, as a DevOps Engineer, you definitely need to make sure you’re on top of this so you can manage code repositories and collaborate with team members
Security and Compliance: You also need an understanding of security best practices and compliance standards, including implementing security controls, vulnerability assessments, and regulatory requirements in the CI/CD pipeline
Soft Skills: Obviously you need strong communication, collaboration, and problem-solving skills so that you can work effectively with cross-functional teams, and keep them organized
Agile Methodologies: It also doesn’t hurt to be familiar with agile methodologies like Scrum or Kanban for iterative and incremental development, and continuous improvement practices
By developing and honing these skills, you can position yourself for success as a DevOps Engineer and contribute effectively to the implementation and adoption of DevOps practices within organizations.
If you just read that list and started to think "omg, that’s so much to learn", don't worry, it’s actually not as bad as you think 🙂.
We cover all of these skills and more as part of our ZTM DevOps Engineer Roadmap.
Go from beginner to hired as a DevOps Engineer in 5 months. This DevOps Career Path combines traditional software development and infrastructure management processes to turn you into a top 10% DevOps Engineer.
The average time for students to complete it is around 5-8 months. Not bad for an entirely new career, in a high demand industry with a $122,000+ a year salary right?
Speaking of the DevOps Engineer roadmap, let me give you a brief outline of it below, so you can see the exact steps I recommend you take to become a DevOps Engineer ASAP.
Alright let's break this all down:
This first step is completely optional but highly recommended, because here’s the thing: Most people don’t know how to learn effectively.
It’s not their fault. Schools teach basic rote methods of learning which are pretty inefficient. They say the thing, and you try to remember the thing, and it's not great - especially if you require certain learning styles to learn best.
This means that topics you might do well with are harder to remember or apply, so it takes longer to learn.
The thing is, there are multiple different learning techniques that you can learn and use that make all of your future learning efforts far more effective. This means you can understand faster and more efficiently, so less back and forth.
You can learn a lot of the key techniques for free right now in this guide, or better still, watch every important technique inside of Andrei’s learning how to learn course.
Estimated Time Required For This Step: 5 days.
I know it might feel like a step backward or even a detour, but think about it like this:
You can learn the core principles in a few days and then immediately start putting them into practice
You're going to learn everything else from now on 2x faster and retain way more as well
This is a skill that you can keep developing over time and will serve you for your entire career, guaranteed
Bear in mind that there are multiple skills that you need to pick up to become a DevOps Engineer, and each of them can take weeks or even months of work to complete.
So why not learn how to cut down on that learning time, improve your comprehension, and pick up skills faster and easier first? The time and energy savings will seriously compound as you go through the rest of the content you need to learn.
Then, once you’ve gone through the course and figured out how to learn faster, you can jump into learning DevOps at an accelerated pace.
This first step is where you’ll spend the bulk of your time, as you’ll learn DevOps principles, practices, and methodologies, as well as automation skills, IaC tools, cloud, and more.
So let’s get into them.
Start off by learning Linux, as it's the dominant operating system in DevOps, and allows you to learn command-line interface skills, scripting and automation.
Estimated Time Required For This Step: 30 days.
Even better? A lot of Docker and Kubernetes tools run on Linux, and it’s also the preferred operating system for most cloud platforms.
As you go through the course, make sure to complete all the projects inside. It’s the best way to apply what you learn, and you can use them as examples of your skills later on when you are applying for work.
Next, you need to learn AWS cloud.
Estimated Time Required For This Step: 2-4 weeks.
AWS is one of the leading cloud providers and has a comprehensive suite of infrastructure and platform services that allow you to build, deploy, and manage applications and services at scale.
And that’s the key thing - scalability!
AWS also integrates with a lot of DevOps tools and even has its own automation and orchestration tools built in.
You don't have to become a full on cloud engineer but you should learn the basics, use it, and complete some projects so that you're comfortable using and can prove to prospective employers that you know it!
Next, learn Terraform so you can start learning how to use IaC tools.
Estimated Time Required For This Step: 20 days.
Terraform is a powerful infrastructure as code (IaC) tool that allows you to define and provision infrastructure resources using declarative configuration files.
It also allows you to orchestrate complex infrastructure setups and dependencies by defining relationships between resources, dependencies, and configurations using Terraform's configuration language (HCL).
Again, make sure to complete the projects in the course (or ones you find elsewhere or best case... your own projects) to give you some hands-on experience and have something to add to your portfolio.
The next step is to learn Bash (Bourne Again Shell), so that you can dive deeper into scripting.
Estimated Time Required For This Step: 20 days.
Mastering Bash scripting allows you to navigate file systems, manage processes, manipulate files, and execute system commands efficiently from the command line.
This means you can then automate repetitive tasks, streamline operations, and write custom scripts for system administration, configuration management, and deployment automation.
You can even create Bash scripts to automate tasks such as server provisioning, software installation, log processing, backup and recovery, and more, saving time and reducing manual effort!
Again, don't just watch some tutorials out there, make sure you're working on some real projects [like the ones included in my Bash course](/courses/learn-bash-scripting/).
I know we’ve already covered AWS but that was at more of an entry-level qualification, while the AWS Certified Solutions Architect takes it a step further.
Estimated Time Required For This Step: 28 days.
While the Solutions Architect certification primarily focuses on designing and implementing AWS cloud solutions, it also covers many topics that are relevant to DevOps practices and responsibilities, such as IaC, CI/CD, security and compliance, and scalability.
Not only that but if you can show you have this more senior certificate, it’ll stand out in job applications and further boost your credibility.
Finally, learn System Design and Architecture so that you can understand the bigger picture and have a more holistic view of how software systems are created.
Estimated Time Required For This Step: 40 days.
Don’t skip this step! Learning system design and architecture as a DevOps Engineer is incredibly valuable.
Not only will you understand the big picture, but you’ll also have a better idea of what dev teams need, helping you to comprehend what they want and have to do. A skill that might just come in handy when you want to help manage and organize with these teams…
You’ll also be able to further optimize the infrastructure for scale and performance, thanks to a deeper knowledge of scaling patterns, so it’s a win-win all around.
The good news is that this section is much shorter! It's now time to add in some programming skills, specifically Python and SQL.
Start off by learning Python.
Estimated Time Required For This Step: 2 months.
Python is one of the easier programming languages to learn, has a vast ecosystem of tools, and works directly with or integrates with a lot of DevOps tools and APIs.
Not only that, it’s also great for scripting and automation, as well as data analysis and processing.
Also, a lot of DevOps Engineering jobs will look for applicants with skills in Python, so it's a no brainer to learn it and be comfortable building even some simple projects and apps with it.
I highly recommend taking Andrei's Full Python Bootcamp but you can also watch this free python crash course he put out below as well!
Now that you know Python, it’s time to learn SQL.
Estimated Time Required For This Step: 1-2 months.
Why learn SQL?
DevOps Engineers often work with databases as part of their responsibilities, such as managing infrastructure configurations, monitoring database performance, and troubleshooting issues.
SQL (Structured Query Language) is the standard language for interacting with relational databases, allowing you to query, manipulate, and manage data stored in databases efficiently.
SQL is also great for data analysis and reporting, allows for database scripting, integrates with other DevOps tools, and is one of the leading tools used by data teams. (If they’re going to use it then you should also know it).
Likewise, this is another skill that's often listed in DevOps job posts, because of how valuable it is to the role.
Now you have all the core skills you need but you still need to present everything you’ve learned so far to prospective employers and show them that you actually have these skills!
Alright, it's almost time to apply for jobs. However, before we apply, we want to make the best first impression that we can, and it involves 3 things:
Make sure that your LinkedIn profile is looking professional and up to date. Even if you don't use the platform to apply for jobs, potential employers may look on there to check you out. Not to mention, you can even get approached by headhunters and get job offers with you even applying!
Create a one-page resume for applications. Some will ask you to submit it when you apply online, so get one made
Create a portfolio of your project work. Companies are going to want proof that you can do the work required, so it’s important to have a portfolio of projects you’ve completed
Bonus: Some sites will allow you to attach a cover letter of why you want to work there. It's not all the time, but just be aware that if they give the option, you should write a custom one each time
The good news?
Fellow ZTM instructor Dan Schifano goes through each of these tasks in detail in his course on personal branding, so that you can get hired, as well as some other great tips to help you stand out even further.
Estimated Time Required For This Step: Actually building your portfolio site, resume, etc (i.e. the stuff Dan Schifano covers in his branding course) should only take you 1-2 weeks to set up and prepare.
Check out that course and either complete it fully, or at least complete these 4 'job ready' tasks, so that you're ready to start filling out applications.
Alright, now it's time to apply for jobs and get hired!
If you're a ZTM member, then I HIGHLY recommend you check our Andrei's new course on getting hired at your dream job:
Estimated Time Required For This Step: 12 days.
He covers all this in far more detail, including his technique to get a 90% interview success rate!
If you're not a ZTM member, then check out this guide, as well as these extra tips:
In addition to the technical know-how that you’ve built up through courses and certifications, interviewers will be evaluating your soft skills and how well you can communicate, so:
Be prepared with examples showing how you’ve collaborated with co-workers or led teams or projects in the past
Be able to explain the decisions you made for the projects in your portfolio and discuss various trade-offs that you made
Make sure to demonstrate strong communication skills in writing and during the interviews (whether virtual or in-person)... Even very basic things like using proper grammar and having no spelling mistakes, sending a thank you email within 24 hours of your interview, etc
A DevOps Engineer does a lot of troubleshooting and problem-solving during their normal work, but be prepared to talk through a situation or two where you saved the day by solving a complex or business-critical problem.
If you don’t have work-related examples, share stories from school or community projects.
Like any other kind of interview, it’s always good to:
Research the company. Learn what you can about their DevOps needs and why they’re hiring for your role * **Learn what you can about the people you’ll be interviewing with**, and what their potential areas of focus will be. ([Bash](/blog/bash-scripting-interview-questions/), [Linux](/blog/linux-interview-questions/), [Terraform](/blog/terraform-interview-questions/) etc or perhaps just broad tech questions). You can always ask when they offer the interview, and they will happily let you know
Practice, practice, practice. Do a mock interview with friends or family, or even just interview yourself, speaking your answers out loud. It’s amazing the difference this makes, and how much more polished you’ll be on the big day
Be on time (or even a little bit early) for the interview
Dress the part. Figure out the norm for the company’s culture (jeans and T-shirt or more professional?) and dress to fit in. If you’re unsure, err on the side of dressing up
Do all this, and you’ll smash the interview and get the job.
Estimated Time Required For This Step: Usually somewhere between 1-6 months given all the potential factors, multiple applications, time to hear back, etc.
Just because you’re now hired (or still searching for jobs), it doesn’t mean you should stop learning! In fact, adding more relevant skills can help increase your chances of moving into more senior positions.
There are just 3 more skills I recommend (but feel free to add others that you find interesting or that you think could help your career).
Node is an incredibly popular framework that allows developers to create large-scale apps using JavaScript on the backend.
Estimated Time Required For This Step: 50 days.
Learning Node.js as a DevOps engineer can be advantageous for several reasons.
Even more scripting and automation options: You can leverage Node.js to automate tasks such as deployment, configuration management, monitoring, and testing within your DevOps workflows
Tool Development: DevOps engineers can use Node.js to build custom tools and utilities tailored to their specific requirements, such as deployment scripts, monitoring dashboards, or integration plugins for DevOps platforms
Access to the whole JavaScript Ecosystem: Node.js provides access to a vast ecosystem of npm (Node Package Manager) modules and libraries, offering pre-built modules for various DevOps tasks, such as interacting with cloud APIs, managing infrastructure, parsing log files, and more
Nodes Event-Driven Architecture: Node.js is built on an event-driven, non-blocking I/O model, making it well-suited for handling asynchronous operations and event-driven architectures. DevOps engineers can leverage this architecture to build scalable, responsive, and efficient systems for handling concurrent tasks, processing events, and orchestrating workflows
Cross-Platform Compatibility: Node.js applications are cross-platform by nature, allowing them to run on different operating systems without modification
Integration with DevOps Tools: Node.js integrates seamlessly with other DevOps tools and platforms, enabling interoperability and extensibility. You can use Node.js to develop integrations, plugins, and extensions for popular DevOps tools such as Jenkins, GitLab, Docker, Kubernetes, and more, enhancing automation and collaboration capabilities
Understanding of Full-Stack Development: Learning Node.js opens up opportunities for full-stack development, allowing DevOps engineers to gain proficiency in both backend and frontend development using JavaScript. This versatility enables you to contribute to a wide range of projects, collaborate with development teams, and understand the entire software delivery lifecycle (front and back)
Sure it's a fairly large topic to learn, but it can be worth it - if only for a better understanding of full-stack development and JavaScript.
Although you’ll be working with cybersecurity experts during your DevOps projects, it's also worth learning the core elements of cybersecurity for yourself.
Estimated Time Required For This Step: 2 months.
You’ll learn how to better:
Protect your infrastructure
Secure CI/CD pipelines (which are a core aspect of DevOps and a high target cybersecurity threat)
Secure containerized environments
Be able to assess and diagnose security incidents
And of course, be better able to communicate with cybersecurity teams!
Although you don't have to do this, I highly recommend that you learn to use AI tools to supplement what you do already.
You don't need to work solely with A.I. to see the benefit either. By learning to use these tools, you can increase your output and perform repeatable tasks in minutes vs hours or days.
And sure - the tools are not perfect. You still need to have the core knowledge that you're learned above, but by then applying that experience you have now, with that automation, you'll not only make your life easier - but even grow in-demand.
A.I. won't steal your job. But people who can do their job faster and more effectively because they can use the tools, are going to be in high demand.
So add it to you skills, make work easier, and be the one that employers fight over!
We have a few courses on this that you can check out:
How the ChatGPT code interpreter works and how to use it
Also, depending on the time that you read this, there may be new specific A.I. tools for your role, so have a quick Google search and see if there anything that can help, and play around with it.
So there you have it - the entire roadmap to becoming a DevOps Engineer within the next 6-12 months, or sooner.
DevOps Engineering is a great career to get into right now, with high demand (almost a half million jobs in the US alone!), a great salary, and interesting topics to learn.
It’s not that difficult to learn, and like I said up top - if you enjoy being organized, then you’ll love this role. You just need to get started so head back up to step 1 and make it happen!
All of the courses I’ve mentioned above are all part of the Zero To Mastery Academy.
This means that if you become a member, then you have access to all of these courses right away and will have everything you need in one place.
Plus, as part of your membership, you'll get to join me and 1,000s of other people (some who are alumni mentors and others who are taking the same courses that you will be) in the ZTM Discord.
Ask questions, help others, or just network with other DevOps Engineers and tech professionals.
Make today the day you take a chance on YOU. There's no reason why you couldn't be applying for DevOps Engineering jobs just 6 months from now if you just follow the steps I outlined and put in the hard work.
So what are you waiting for 😀? Come join me and get started on becoming a DevOps Engineer today!
If you enjoyed Andrei's post and want to get more like it in the future, subscribe below. By joining over 300,000 ZTM email subscribers, you'll receive exclusive ZTM posts, opportunities, and offers.
No spam ever, unsubscribe anytime