The 2024 DevOps Engineer RoadMap [UPDATED]
Tags: programming, devops, webdev, beginners
Published: 2019-04-04 14:05:36

---
title: The 2024 DevOps Engineer RoadMap [UPDATED]
published: true
description: An illustrated guide to becoming a DevOps Engineer with links to relevant books,courses, and resources.
tags: programming,devops,webdev,beginners
cover_image: https://thepracticaldev.s3.amazonaws.com/i/l78okl0wj6bgdk3is9yd.png
---
*Disclosure: This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article.*

DevOps is really hot at the moment and most of my friends, colleagues, and senior developers I know are working hard to become DevOps engineers and project themselves as DevOps champions in their organization.

While I truly acknowledge the benefits of [DevOps](https://javarevisited.blogspot.com/2018/09/10-devops-courses-for-experienced-java-developers.html), which is directly linked to improved software development and deployment, from my limited experience I can say that **it's not an easy job**. It's very difficult to choose the right path in the middle of so many tools and practices.

Being a [Java blogger](https://javarevisited.blogspot.com/), many of my readers often ask me questions like how to become a DevOps engineer, which tools should I learn? and which practices should I follow. does learning Maven and Jenkins must for a DevOps guy? How about Docker and Kubernetes? Is the infrastructure automation part of DevOps? should I learn [Chef](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fchef-fundamentals-a-recipe-for-automating-infrastructure%2F), [Puppet](http://bit.ly/2yc6O4D), or [Ansible](http://bit.ly/2ygZXa3) are just some of those questions which keep coming to me.

I have tried hard to answer those with my minimal experience but I couldn't jot them down in a manner that is simply awesome and reusable, but, not to worry.

Today I am going to share with you an awesome resource that will help you to become the DevOps Engineer you always wanted to be, the **2024 DevOps Engineer RoadMap**.

I was casually surfing through the internet yesterday when I came across [this](https://github.com/kamranahmedse/developer-roadmap)excellent GitHub page by [Kamranahmedse](https://github.com/kamranahmedse), which shows a couple of useful roadmaps to become a front-end developer, back-end developer, a full-stack web developer, and last but not the least, **the DevOps Engineer**.

This RoadMap is awesome in any sense as it does not only highlight what is the role of a [DevOps engineer](https://javarevisited.blogspot.com/2018/09/10-devops-courses-for-experienced-java-developers.html) but also tells which tools and technologies you need to learn to cover that area.

On top of that, it's visually appealing with nice colors(don't you like yellow and cream with blue lines?), so you can just take a printout and stick in your desk for easier reference.

Though the roadmap is good in the sense that it tells you what to learn but it doesn't tell you how to learn and where to learn. In order to complete the roadmap, I have shared some useful online courses, both free and paid, so that you can learn and improve the tools or areas you want. Btw, I may receive compensation if you buy a course or books I suggest on my post, depending upon if it's free or paid.



 

## **The 2024 DevOps Engineer RoadMap**

Anyway, here is the *2024 DevOps RoadMap* I am talking about:

![How to become a DevOps Engineer in 2024](https://cdn-images-1.medium.com/max/2000/0*2jC5-BIaLSHDlFHo.png)

Image by kamranahmedse (<https://github.com/kamranahmedse/developer-roadmap>)

Now, let's go through the RoadMap step by step and find out how you can learn the essential skills required to become a DevOps guru in 2024:

### **1. Learn a Programming Language**
Obviously and I assume you guys know one of the three main programming language i.e. [Java](https://javarevisited.blogspot.sg/2017/11/top-5-free-java-courses-for-beginners.html#axzz4zuIICRs9), [Python](http://javarevisited.blogspot.sg/2018/03/top-5-courses-to-learn-python-in-2018.html), or [JavaScript](https://javarevisited.blogspot.com/2018/06/top-10-courses-to-learn-javascript-in.html).

If you didn't, don't worry you can take a look at the below courses to learn your choice of language, though I strongly suggest you learn at least one of these three major general-purpose programming languages.


#### 1.1 Java

If you want to learn Java then [The Complete Java MasterClass](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fjava-the-complete-java-developer-course%2F) is a great course, which is also recently updated for Java 17.

[![best Udemy courses to learn Java](https://cdn-images-1.medium.com/max/1000/0*HIHVaYrQQqfmqt3Z.jpg)
](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fjava-the-complete-java-developer-course%2F)

-----


#### 1.2 Python
If you want to learn Python, then [The Complete Python BootCamp](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fcomplete-python-bootcamp%2F) is my favorite resource, which will teach you Python 3, the most popular version of Python.

[![best Udemy courses to learn Python](https://cdn-images-1.medium.com/max/1000/0*5MTuNij-F069x75V.jpg)](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fcomplete-python-bootcamp%2F)

-----


#### 1.3 JavaScript
And, if you want to learn JavaScript then you should not look beyond Mosh Hamdani's [JavaScript Basics for Beginners](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fjavascript-basics-for-beginners%2F) course on Udemy.

[![best Udemy courses to learn JavaScript](https://cdn-images-1.medium.com/max/1000/0*v9HcQ62mMY2WFzaY.png)](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fjavascript-basics-for-beginners%2F)

If you need more choices and don't mind learning from free resources then you can always take a look at my list of free [Java](https://javarevisited.blogspot.com/2018/08/top-5-free-java-8-and-9-courses-for-programmers.html), [Python](http://www.java67.com/2018/02/5-free-python-online-courses-for-beginners.html), and [JavaScript](http://www.java67.com/2018/04/top-5-free-javascript-courses-to-learn.html)courses.

-----


### **2. Understand different OS concepts**
This is where the Ops part comes in, earlier it was solely supported by guys and sysadmin people who were responsible for knowing about OS and hardware, but with DevOps, now developer also needs to know them.

You at least need to know about Process Management, Threads and Concurrency, Sockets, I/O Management, Virtualization, Memory storage and File systems as suggested in the roadmap.

Since most of us work in Linux, I suggest you go through the[ Linux Administration BootCamp](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Flinux-administration-bootcamp%2F) course on Udemy to learn and understand Linux OS better.

[![best Udemy courses to learn Linux](https://cdn-images-1.medium.com/max/1000/0*apT3vQiJOSvIenf5.jpg)](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Flinux-administration-bootcamp%2F)

If you need more choices and you don't mind learning from freely available resources then you can also take a look at this list of [free Linux courses](http://www.java67.com/2018/02/5-free-linux-unix-courses-for-programmers-learn-online.html).

------


### **3. Learn to Live in terminal**

For a DevOps guy, it's important to have a good command in command line, particularly if he is working in Linux. Knowing some Linux shell like Bash, or Ksh and tools like [find](http://javarevisited.blogspot.sg/2011/03/10-find-command-in-unix-examples-basic.html#axzz5E2uHdG3w), [grep](http://www.java67.com/2017/07/grep-command-example-list-only-file-names-matching-string.html), awk, [sed](http://javarevisited.blogspot.sg/2013/05/sed-command-examples-in-unix-and-linux.html#axzz56KhwFZ4z), [lsof](http://javarevisited.blogspot.sg/2016/06/10-example-of-lsof-command-in-unix-linux.html#axzz5CkWP96Nb), and networking commands like[nslookup](http://javarevisited.blogspot.sg/2017/04/how-hostname-to-ip-address-conversion-or-name-resolution-works-in-Linux.html) and netstat is mandatory.

If you feel you need to refresh these commands and tools then you should join the [Linux Command Line Interface (CLI) Fundamentals](https://pluralsight.pxf.io/c/1193463/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fcourses%2Flinux-cli-fundamentals) course on Pluralsight.

[![Best Linux courses for DevOps Engineer](https://cdn-images-1.medium.com/max/1000/0*ZcWQyifRt_NXZMGy.jpg)](https://pluralsight.pxf.io/c/1193463/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fcourses%2Flinux-cli-fundamentals)

It's a good refresher for both beginner and experienced Linux users. You will need a [Pluralsight membership](http://pluralsight.pxf.io/c/1193463/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Flearn) to access the course which cost around $29 per month or **$299 per year** but it's totally worth it.

Pluralsight is like developer's Netflix, it has more than 6000 high-quality courses on latest technology which means you can learn anything and anywhere. I mostly learn while traveling and commuting.

Btw, If you need more choices and want to become master on shell scripting, you can also take a look at my list of [best courses to learn shell scripting](https://javarevisited.blogspot.com/2018/02/5-courses-to-learn-shell-scripting-in-linux.html).

-------


### **4. Networking and Security**
Gone are the days of isolation, in today's world, everything is connected to everything which makes networking and security very important.

In order to become a good DevOps engineer, you must know about basicnetworking and security concepts like DNS, OSI Model, [HTTP](https://javarevisited.blogspot.com/2013/07/how-ssl-https-and-certificates-works-in-java-web-application.html), HTTPS, FTP, SSL, TLS etc.

In order to refresh this concept, you can take a look at [TCP/IP and Networking Fundamentals for IT Pros](https://pluralsight.pxf.io/c/1193463/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fcourses%2Ftcpip-networking-it-pros) By Ed Liberman course on Pluralsight.


If you need more choices, you can also check out these Udemy courses like for Networking, [The Complete Networking Fundamentals](http://bit.ly/2QcTtAW) is a nice course and for Security, you can also check [The Complete Cyber Security Course: Network Security!](http://bit.ly/2QcTtAW).

[![best DevOps Networking courses](https://cdn-images-1.medium.com/max/1000/1*OeWKg_6NRVQa4Gq-3OesbQ.jpeg)](http://bit.ly/2QcTtAW)

--------


### **5. What is and how to setup**
As a DevOps champion, you should know what is set up in your machine and how you can set that up, only that you can think about automating it.

In general, a DevOps engineer should know how to set up a Web Server like IIS, [Apache](https://javarevisited.blogspot.com/2017/01/12-essential-apache-web-server-interview-questions-answers-java-linux.html), and [Tomcat](https://javarevisited.blogspot.com/2018/07/how-to-setup-jndi-database-connection-pool-tomcat-spring-example-tutorial.html).

He should also know about Caching Server, Load balancer, Reverse Proxy, and Firewall etc. If you are new into web development space, I suggest you to also check out [The Web Developer Bootcamp](http://bit.ly/2AGj5m2) by Colt Steele

[![What is DevOps ](https://cdn-images-1.medium.com/max/1000/1*c7z6N5xH8t1i6msXzIuWHw.gif)](http://bit.ly/2AGj5m2)

-----


### **6. Learn Infrastructure as code**
This is probably the most important thing for a DevOps engineer and this is a very vast area as well. As a DevOps engineer, you should know about containers like [Docker](https://javarevisited.blogspot.com/2018/02/10-free-docker-container-courses-for-Java-Developers.html) and [Kubernetes](https://javarevisited.blogspot.com/2018/09/10-devops-courses-for-experienced-java-developers.html), Configuration management tools like[Ansible](http://bit.ly/2ygZXa3), [Chef](http://bit.ly/2CRTh2x), [Salt](http://bit.ly/2xZiAjM), and [Puppe](http://bit.ly/2yc6O4D)[t](http://bit.ly/2yc6O4D), Infrastructure Provisioning like Terraform and Cloud formation. Here are some of my recommended courses to learn these tools.

If you want to learn Docker then the [Docker Mastery: The Complete Toolset](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fdocker-mastery%2F)From a Docker Captain course on Udemy is the best course to start with. It provides comprehensive coverage of all the tools a DevOps engineer will need.

[![best Udemy courses to learn Docker for DevOps Engineer](https://cdn-images-1.medium.com/max/1000/0*JHLKDBLXZy9MzSFm.png)](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fdocker-mastery%2F)

If you want to learn Kubernetes then I suggest you join the [Learn DevOps: The Complete Kubernetes course](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Flearn-devops-the-complete-kubernetes-course%2F). This will teach you how to build, deploy, and manage Kubernetes.

[![best Kubernetes courses for DevOps](https://cdn-images-1.medium.com/max/1000/0*tCO6kfeZjL0lc7LG.jpg)](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Flearn-devops-the-complete-kubernetes-course%2F)

And, if you want to learn Chef then there is no better course then [Chef Fundamentals: A Recipe for Automating Infrastructure](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fchef-fundamentals-a-recipe-for-automating-infrastructure%2F) on Udemy. Probably the best course to learn Chef at this moment.

[![best Chef Courses for DevOps Engineer](https://cdn-images-1.medium.com/max/1000/0*61xE0cV_IyWoOz7N.jpg)](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fchef-fundamentals-a-recipe-for-automating-infrastructure%2F)

If you need more choices on Docker, you can explore this list of [10 essential courses for DevOps Engineer](https://javarevisited.blogspot.com/2018/09/10-devops-courses-for-experienced-java-developers.html).

-----


### **7. Learn some Continuous Integration and Delivery (CI/CD) tools**

This is another very important thing for DevOps gurus and champion, i.e. to set up a pipeline for continuous integration and delivery. There are a lot of tools in the CI/CD area e.g. [Jenkins](http://www.java67.com/2018/02/6-free-maven-and-jenkins-online-courses-for-java-developers.html), TeamCity, Drone etc.

But, I strongly recommend learning at least Jenkins, as it's most widely used and probably the most mature CI/CD tool in the market. If you don't know Jenkins then this course is best to start with.

If you want to learn Jenkins, then there is no better course than the classic [Learn DevOps: CI/CD with Jenkins using Pipelines and Docker](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=634352.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Flearn-devops-ci-cd-with-jenkins-using-pipelines-and-docker%2F) on Udemy. It's simply the best course and I have also learned most of my Jenkins skill from this course.

[![best courses to learn CI and CD in Udemy](https://cdn-images-1.medium.com/max/1000/0*LoM9l1Yp26hS4Xoc.jpg)](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=634352.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Flearn-devops-ci-cd-with-jenkins-using-pipelines-and-docker%2F)

Btw, if you need more choices and don't mind learning from free resources then you can also check my list of [6 free Jenkins and Maven courses](http://www.java67.com/2018/02/6-free-maven-and-jenkins-online-courses-for-java-developers.html) for Java developers.

-----


### **8. Learn to monitor software and infrastructure**
Apart from setup and deployment, monitoring is another important aspect of DevOps and that's why it's important for a DevOps engineer to learn about Infrastructure and application monitoring.

There are a lot of tools in this space e.g. Nagios, Icing, [Datadog](https://www.datadoghq.com/), Zabbix, Monit, AppDynanic, New Relic etc.

You can choose some of them depending on which one is used in your company like AppDynamic and Nagios.

-----


### **9. Learn about Cloud Provides (AWS, Azure, or GCP)**
Cloud is the next big thing and sooner or later you have to move your application to the cloud, hence it's important for a DevOps engineer to at least know about some of the popular Cloud Providers and their basics.

While [AWS ](http://www.java67.com/2018/05/top-5-amazon-web-services-or-aws-courses-to-learn-online.html)is clearly the leader in the cloud it's not alone, Google Cloud and Azure are slowly catching up and then we have some other players like Heroku, Cloud Foundry, and Digital Ocean.

To start with I strongly suggest to join the classic[ AWS Server less APIs & Apps --- A Complete Introduction](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Faws-serverless-a-complete-introduction%2F) course in Udemy, which is simply the best.

[![best Udemy courses for Server less learning](https://cdn-images-1.medium.com/max/1000/0*jtejuz6-JruNtAwz.jpg)](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Faws-serverless-a-complete-introduction%2F)

Btw, if you need more choices and don't mind learning from free resources then you can also check my list of [free AWS courses](http://www.java67.com/2018/05/top-5-amazon-web-services-or-aws-courses-to-learn-online.html) for developers and DevOps guys.

Other **Programming Articles** you may like
 [10 Reasons to Learn Python in 2024](https://javarevisited.blogspot.com/2018/05/10-reasons-to-learn-python-programming.html)
[10 Programming Languages You Can Learn in 2024](http://www.java67.com/2017/12/10-programming-languages-to-learn-in.html)
[10 Tools Every Java Developer Should Know](http://www.java67.com/2018/04/10-tools-java-developers-should-learn.html)
[The 2024 Python Developer RoadMap](https://medium.com/javarevisited/the-2022-python-programmer-roadmap-bafb365071a3)
[10 Reasons to Learn Java Programming languages](http://javarevisited.blogspot.sg/2013/04/10-reasons-to-learn-java-programming.html)
[The 2024 iOS Developer RoadMap](https://javarevisited.blogspot.com/2022/05/ios-developer-roadmap.html)
[10 Frameworks Java and Web Developer should learn in 2024](http://javarevisited.blogspot.sg/2018/01/10-frameworks-java-and-web-developers-should-learn.html)
[10 Tips to Become a Better Java Developer in 2024](http://javarevisited.blogspot.sg/2018/05/10-tips-to-become-better-java-developer.html)
[Top 5 Java Frameworks to Learn in 2024](http://javarevisited.blogspot.sg/2018/04/top-5-java-frameworks-to-learn-in-2018_27.html)
[10 Testing Libraries Every Java Developer Should Know](https://javarevisited.blogspot.sg/2018/01/10-unit-testing-and-integration-tools-for-java-programmers.html)

--


### **Closing Notes**
Thanks for reading this article so far. You might be thinking that there is so much stuff to learn, and so many courses to join, but you don't need to worry.

There is a good chance that you may already know most of the stuff, and there are also a lot of useful [free resources for DevOps Engineers](https://javarevisited.blogspot.com/2020/07/5-free-courses-to-learn-devops-in-2020.html) which you can use, I have also linked them here and there along with best resources, which are certainly not free, but worth of money.

I am a particular fan of [Udemy courses](http://www.java67.com/2019/03/5-free-devops-courses-to-learn-jenkins.html) as they are very affordable and provide a lot of value in a very small amount, but you are free to choose the course you want.

At the end of the day, you should have enough knowledge and experience about the things mentioned here.

Good luck with your [DevOps journey!](https://javarevisited.blogspot.com/2018/09/10-devops-courses-for-experienced-java-developers.html). It's certainly **not going to be easy**, but following this roadmap and guide, you are one step closer to becoming the DevOps engineer, you always wanted to be

If you like this article then please consider following me. if you'd like to be notified of every new post don't forget to follow[**javarevisited**](https://twitter.com/javarevisited) on Twitter!

All the best for your DevOps Journey and a Big thanks to [Kamran Ahmed](https://medium.com/@kamranahmedse) for producing such awesome content.

* * * * *

#### P.S. -If you just want to start with one course to learn DevOps, I think the [Learn DevOps: CI/CD with Jenkins using Pipelines and Docker](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=634352.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Flearn-devops-ci-cd-with-jenkins-using-pipelines-and-docker%2F) is the best one to start with.