Learning DevOps Engineering #1
Introduction, my curriculum, resources for learning
Docker.
Through the last year, the word kept buzzing around me. I’d encounter it in articles, random tweets, Youtube videos from my favorite developers. At the time, I was still fairly new to backend engineering, but that tool caught my attention. What was it about Docker that had everyone talking? I had to find out, so I took a deep dive into the internet and its online forums, armed with questions and a desperate hope for someone to explain like I'm five. I came out with a new term: “DevOps Engineering”.
What is DevOps?
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market. - AWS
“Okay… what does that mean?” You might say.
Well, let’s have an example; the typical restaurant example used to distinguish between the frontend and the backend for new developers. This time, we’ll be talking about the chefs and the servers.
The chefs: These are the developers. They create delicious recipes (code) for amazing dishes (software). They're full of ideas and love experimenting with new flavors (features).
The Servers/Waitresses: These make up the IT/Operations team. They make sure the dishes are served smoothly and efficiently to the guests (users). They keep the kitchen clean and organized, and they troubleshoot any problems that might arise, like a broken oven or missing ingredients.
Essentially, the (Ops) team is in charge of things like testing, deployment, code maintenance, and everything that has to do with software but isn’t coding. However, in this new model called DevOps, both teams come together and do everything from writing the code for new features, testing the code, and deploying it to servers. Here’s what it looks like in practice:
Engineers build new features.
Code is shared with the rest of the team (using an online repository).
The code is tested automatically.
Once it passes these tests, it’s ready to be deployed!
Through an automated process, the code is built shipped to a live deployment (called Production).
The code is monitored (by tools, not people) for errors, slow loading times and potential problems or areas of improvement.
Feedback is collected, the need for new features arise, and the process is repeated.
The DevOps Engineer
DevOps Engineers orchestrate the whole process. They are the bridge between the Software Engineers and the Operations Team. They help to facilitate the process of building, testing, deployment, and monitoring, using tools like Docker, Github Workflows, Jenkins, Gradle and Datadog. Without them, the procedure for testing, deployment and monitoring is slow and more resource intensive.
Learning DevOps Engineering
In 2024, one of my goals is learning DevOps/Cloud Engineering. I’m choosing to learn DevOps engineering because it'll make me a well-rounded developer. I’ll be able to build and release software faster and automate many tedious processes, saving my team lots of time and money. To achieve this, I’ve mapped out a syllabus which contains everything I’d need to learn to become a DevOps Engineer. For the purpose of this article, I’ll also share resources for learning the various topics.
My Curriculum
The Basics
Programming (any language will do)
Optionally, go for frontend or backend engineering.
Introduction to DevOps
Linux/The Terminal
The Internet/Networking
Web Servers
Containerization
Orchestration
Build Tools, Testing, Automation and CI/CD
Cloud Providers
Infrastructure as Code
Management and Monitoring
DevSecOps
The future of software is bright, and the future of DevOps is even brighter. I believe that, by learning the skills listed in this curriculum and applying them to projects, I’ll be well on my way to becoming a better backend engineer. If you’re willing, you can learn DevOps Engineering as well and start building and deploying software even faster, making a real impact on users and the world.
This journey isn't a solo mission. I'm constantly seeking out fellow engineers to share tips, troubleshoot together, and celebrate victories (big and small). So, if you're reading this and you happen to like my content OR you have an interest in Software Engineering, join my community!

