How to learn new DevOps technologies. Practical tips from a DevOps engineer.
One of the crucial skills of DevOps engineers is the ability to analyze, choose, learn, and implement new technologies.
To avoid being overwhelmed while studying, you need a certain learning system. The system that suits you is based on personal experience, and it takes time to create such a system through trial and error.
In this article, I will expose you to my method for learning new DevOps technologies.
Before studying specific tools, you should cover the fundamentals of DevOps.
Make a separation between concepts and tools. CI/CD is a concept, while Jenkins, Docker, and Octopus Deploy are some of the tools used to deliver a new version of software. Monitoring is a concept, while Prometheus, Grafana, and Zabbix are tools used for monitoring.
Building a strong foundation is key to continuous learning in the ever-changing tech industry.
Once you are familiar with DevOps concepts and fundamentals, you can learn tools and technologies.
However, before you start to learn a new tool, you need to ask yourself the following questions:
- What problem does this tool solve?
- Is that tool relevant to the problem I’m facing?
- What are the pros and cons of this specific tool?
- Does this tool have any limitations that could be a potential showstopper for me?
- Does this tool have better alternatives?
For example, don’t jump directly to the Grafana tutorials without understanding what problem Grafana solves, and be sure this tool suits you.
It doesn’t matter how popular the tool is; you need to understand why everybody uses it. For example, do you know why most software companies choose Linux as their server’s OS?
Go and find out.
Let me tell you how I learn new technologies and tools.
Let’s say I decided to learn Kubernetes.
Here are the steps I follow (I start with the long shot and narrow it down):
- First, I need to understand what problem Kubernetes solves.
- I always learn from the official documentation.
- I learn about core Kubernetes concepts without going deep into the details. The goal of this step is to understand the Kubernetes architecture and components.
- The next step is to install Kubernetes in my local environment.
- Next, I learn about Control Plane components. I expose each Kubernetes component on my local PC and dig into it.
- Next, I learn about the Data Plane. Pods, Storage, Volumes etc.
- The most important part of the learning process is practice. Practice is everything. The more issues you will face while practicing, the better. You learn from the issues.
- Install things, break things. Practice, practice, practice.
- When you practice, you should do it on a real-life project.
For example, run a simple application with a frontend, a backend, and a MySQL database. It shouldn’t be a complex environment.
If you do so, you will learn and practice on real-life cases. - Learning a new technology is always difficult. At first, it seems like you have a mess in your head, but after a while, everything begins to fit into the overall picture and overlap each other.
How I improve my learning process: I draw a diagram of what I learned and write tutorials and manuals of what I learned on a personal confluence page.
That dramatically improves my ability to remember and understand.
Study without fanaticism. Do not sit in front of a PC for 16 hours a day.
Take rest, sleep well, eat healthy food, ventilate the room, exercise, and keep your head clean.
Remember that the learning process never stops.
If you liked my articles, join my newsletter, and you will receive weekly DevOps tutorials, articles, and tips every Saturday.
As a bonus, you will receive a free step-by-step DevOps CI/CD project, which you can use in your portfolio.
Subscribe here: https://junior-devops-hub.ck.page