DevOps is really hot at the moment, and most of my friends, colleagues, and senior developers I know are working hard to become a DevOps engineers and project themselves as DevOps champions in their organization. While I truly understand the benefit of DevOps, 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 tough to choose the right path in mind of so many tools and practices. Many of my readers also ask me this question is how to become a DevOps engineer, which means should I learn? Which practices should I follow? Does learning Maven and Jenkins is a must for DevOps Engineers?
How about Docker and Kubernetes? Does the infrastructure automation part of DevOps? Should I learn Chef, Puppet, or Ansible are just some of those questions which keep coming to me.
I have tried hard to answer those with minimal experience. Still, I couldn't jot down in the manner which is simply excellent 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 complete DevOps RoadMap.
I was casually surfing through the internet yesterday when I come across this excellent GitHub page by 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 fantastic in any sense as it not only highly what is the role of a DevOps engineer but also tells which tool you need to learn to cover that area. On top of that, it's really visually appealing with beautiful colors, so you can just take a printout and stick it on your desk for easier reference.
In order to complete the roadmap, I have also shared some useful online courses so that you can learn and improve the tool or area you want.
Now, let's go through the RoadMap step by step and find out how can we learn the essential skills required to become a DevOps guru in 2024:
If you want to learn Java, then The Complete Java Masterclass is a great course, which is also recently updated for Java 10.
If you want to learn Python, then The Complete Python BootCamp is my favorite resource, which will teach you Python 3, the most popular version of Python.
And, if you want to learn JavaScript, then you should not look beyond Mosh Hamdani's JavaScript Basics for Beginners course on Udemy.
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, Python, and JavaScript courses.
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 course on Udemy to learn and understand Linux OS better.
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.
If you feel you need to refresh these commands and tools, then you should join the Linux Command Line Interface (CLI) Fundamentals course on Pluralsight.
It's a good refresher for both beginner and experienced Linux users. You will need a Pluralsight membership to access the course, which costs around $29 per month or $299 per year, but it's worth it.
Pluralsight is like a developer's Netflix; it has more than 6000 high-quality courses on the 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 a master of shell scripting, you can also take a look at my list of best courses to learn shell scripting.
If you want to learn Docker, then the Docker Mastery: The Complete Toolset 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.
If you want to learn Kubernetes, then I suggest you join the Learn DevOps: The Complete Kubernetes course. This will teach you how to build, deploy, and manage Kubernetes.
And, if you want to learn Chef, then there is no better course than Chef Fundamentals: A Recipe for Automating Infrastructure on Udemy. Probably the best course to learn Chef at this moment.
If you need more choices on Docker, you can explore this list of 10 essential courses for DevOps engineers.
But, I strongly recommend learning at least Jenkins, as it's the most widely used and probably the most sophisticated 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 Jenkins from Zero to Hero: The DevOps Jenkins Master on Udemy. It's only the best course, and I have also learned most of my Jenkins skills from this course.
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 for Java developers.
There are a lot of tools in this space, like Nagios, Icing, Datadog, Zabbix, Monit, AppDynanic, New Relic, etc. You can choose some of them depending upon which one is used in your company like AppDynamic and Nagios.
While AWS 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 joining the classic AWS Serverless APIs & Apps - A Complete Introduction course in Udemy, which is simply the best.
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 for developers and DevOps guys.
Thanks for reading this article so far … Good luck on your DevOps journey! It’s certainly not going to be easy, but by following this roadmap and guide, you are one step closer to becoming a DevOps engineer.
How about Docker and Kubernetes? Does the infrastructure automation part of DevOps? Should I learn Chef, Puppet, or Ansible are just some of those questions which keep coming to me.
I have tried hard to answer those with minimal experience. Still, I couldn't jot down in the manner which is simply excellent 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 complete DevOps RoadMap.
I was casually surfing through the internet yesterday when I come across this excellent GitHub page by 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 fantastic in any sense as it not only highly what is the role of a DevOps engineer but also tells which tool you need to learn to cover that area. On top of that, it's really visually appealing with beautiful colors, so you can just take a printout and stick it on your desk for easier reference.
In order to complete the roadmap, I have also shared some useful online courses so that you can learn and improve the tool or area you want.
The 2024 DevOps Engineer RoadMap for Developers
Anyway here is the complete DevOps RoadMap I am talking about:Now, let's go through the RoadMap step by step and find out how can we learn the essential skills required to become a DevOps guru in 2024:
1. Learn a Programming Language
Obviously, I assume you guys definitely know one of the three main programming languages, i.e., Java, Python, or JavaScript. If you didn't, don't worry, you can take a look at the courses below to learn your choice of language, though I strongly suggest you learn at least one of these three major general-purpose programming languages.If you want to learn Java, then The Complete Java Masterclass is a great course, which is also recently updated for Java 10.
If you want to learn Python, then The Complete Python BootCamp is my favorite resource, which will teach you Python 3, the most popular version of Python.
And, if you want to learn JavaScript, then you should not look beyond Mosh Hamdani's JavaScript Basics for Beginners course on Udemy.
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, Python, and JavaScript courses.
2. Understand different OS concepts
This is where the Ops part came in, earlier it was solely supported by guys and sysadmin people who were responsible for knowing about OS and hardware, but with DevOps, now the 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 course on Udemy to learn and understand Linux OS better.
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.
3. Learn to Live in terminal
For a DevOps guy, it's important to have good command in the command line, particularly if he is working in Linux. Knowing some Linux shells like Bash, or Ksh and tools like find, grep, awk, sed, lsof, and networking commands like nslookup 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 course on Pluralsight.
It's a good refresher for both beginner and experienced Linux users. You will need a Pluralsight membership to access the course, which costs around $29 per month or $299 per year, but it's worth it.
Pluralsight is like a developer's Netflix; it has more than 6000 high-quality courses on the 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 a master of shell scripting, you can also take a look at my list of best courses to learn shell scripting.
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 basic networking and security concepts like DNS, OSI Model, HTTP, HTTPS, FTP, SSL, TLS, etc. In order to refresh this concept, you can take a look at this course on Pluralsight.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, and Tomcat. He should also know about Caching Server, Load balancer, Reverse Proxy, Firewall, etc.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 and Kubernetes, Configuration management tools like Ansible, Chef, Salt, and Puppet, Infrastructure Provisionings 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 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.
If you want to learn Kubernetes, then I suggest you join the Learn DevOps: The Complete Kubernetes course. This will teach you how to build, deploy, and manage Kubernetes.
And, if you want to learn Chef, then there is no better course than Chef Fundamentals: A Recipe for Automating Infrastructure on Udemy. Probably the best course to learn Chef at this moment.
If you need more choices on Docker, you can explore this list of 10 essential courses for DevOps engineers.
7. Learn some Continuous Integration and Delivery (CI/CD) tools
This is another very important thing for DevOps gurus and champions, i.e., to set up a pipeline for continuous integration and delivery. There are a lot of tools in the CI/CD area, like Jenkins, TeamCity, Drone, etc.But, I strongly recommend learning at least Jenkins, as it's the most widely used and probably the most sophisticated 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 Jenkins from Zero to Hero: The DevOps Jenkins Master on Udemy. It's only the best course, and I have also learned most of my Jenkins skills from this course.
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 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, like Nagios, Icing, Datadog, Zabbix, Monit, AppDynanic, New Relic, etc. You can choose some of them depending upon which one is used in your company like AppDynamic and Nagios.
9. Learn about Cloud Provides
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 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 joining the classic AWS Serverless APIs & Apps - A Complete Introduction course in Udemy, which is simply the best.
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 for developers and DevOps guys.
Closing Notes
Btw, don't get overwhelmed by the size of this RoadMap; there is a good chance that you already know most of the stuff; just focus on what you don't know and go deep on essential tools and technologies like Docker, Jenkins, and Kubernetes.
Other Programming and DevOps Articles you may like
All the best for your DevOps Journey !!
Other Programming and DevOps Articles you may like
- The 2024 Java Developer RoadMap
- 10 Reasons to Learn Python in 2024
- The Frontend and Backend Developer RoadMap
- 10 DevOps Courses for Experienced Developers
- 10 Programming languages You can Learn in 2024
- Top 5 Courses to learn Kubernetes in 2024
- 10 Tools Every Java Developer Should Know
- 7 Free Courses to learn Kubernetes in 2024
- 10 Reasons to Learn Java Programming languages
- 13 Best DevOps Courses for Programmers and Developers
- 10 Frameworks Java and Web Developer should learn in 2024
- My favorite free courses to learn Docker and DevOps
- 10 Tips to become a better Java Developer in 2024
- Top 5 Java Frameworks to Learn in 2024
- 10 Testing Libraries Every Java Developer Should Know
- The Complete React Developer RoadMap
All the best for your DevOps Journey !!
This really is in which the Ops component arriving, previously it had been exclusively backed men as well as sysadmin individuals who had been accountable for understanding regarding OPERATING SYSTEM as well as equipment, however along with DevOps, right now creator must also Redirect Http to Https understand all of them.
ReplyDeleteGreat nice.
ReplyDeleteReally awesome article and flowchart. I know there's a ton of other tools and tooling categories out there and new ones emerging, like orchestration/cluster management with tools like Kubernetes and Nomad. Is that stuff more of an extra bonus would you say? Service discovery + service mesh and secrets management are two others that might be useful.
ReplyDeleteIt's really great article but I am bit confused that it's about making someone as DevOps Engineer or a multitasking Labor. Will all that a person can keep remembered?
ReplyDeleteDevOps is a very important role and mostly senior developer who has good knowledge of business, domain, architecture, infrastructure and tools play that role
ReplyDelete@Javin Paul DevOps it's not a role It's a skill...
ReplyDeleteHi, why in Learn to monitor software and infrastructure section you didn't mention Prometheus? I like this platform very much and I think it's a good to have skill as a DevOps.
ReplyDeleteWhat about DB and message broker? i m devops & i work with Rabbitmq
ReplyDeleteDatabase is certainly very important and message broker is too, not so much essential but as you said, there are many which uses message broker like RabbitMQ.
ReplyDeleteI recently watched https://youtu.be/fVfMXGwbnDo which is very helpful to talk about From Developer to Devops/Docker Captain
ReplyDeletegreat post
ReplyDelete