6 reasons why you should learn coding as a DevOps engineer: Even if you don't get to write code at the job

Coding will not be your primary task as a DevOps engineer.
You will be spending more time working on cloud infrastructure, building CICD pipelines, measuring software performance, etc., than writing code as a DevOps engineer.
But, that does not mean you will not be writing any code.
Software teams have their own ways of doing DevOps. In some teams, DevOps engineers do not write any code. They only work with tools and YAML templates.
But in other teams, DevOps engineers write code too. They develop internal tooling and do code level optimizations, etc.
If you become part of a platform engineering team as a DevOps engineer, you will be writing code a lot more because you will be responsible for creating the Internal Developer Platform.
So, as a DevOps engineer, you will need coding skills.
You may be able to land your first DevOps job with no coding skills. But you will not be eligible for many other job opportunities if you lack coding skills.
So, as an aspiring DevOps engineer, working to land your dream job, you should practice coding even if you don't get to write code at the job.
Here are six reasons why you should:
#1. Your coding skills will help you to understand developers
As a DevOps engineer, you will be working with developers day in and day out.
The core skill of developers is... you guessed it right - coding. Developers get frustrated when they encounter problems that distract them from coding. Then, they come to you - the DevOps engineer - looking for solutions.
As a DevOps engineer, it's your responsibility to listen to them and solve their frustrating problems.
But, before thinking about a solution, you need to understand their problems clearly. I emphasized the word clearly because attempting to solve unclear problems is way too common in this industry.
Building a solution to an unclear problem creates more problems. To create a robust solution, you do need to understand the problem clearly. This is where your coding experience will make a difference.
If you have zero experience in coding, you will have trouble understanding developers.
If you have some solid experience in coding and if you've gone through some real world coding projects, you will be able to get into the developers shoes, think like they think, feel like they feel, and get to the bottom of the problem. And you will truly understand the developers.
Then, You will be able to provide robust solutions to problems that come to you.
#2. Learning to code can open a different path for landing a DevOps job
Landing your first DevOps job is a bit challenging.
Most DevOps roles ask for some previous experience in IT. We can get this experience by being a software developer first.
There are ample opportunities for junior software engineers with no prior experience. So if you become proficient in coding you can get your first job as a software engineer. Later you can achieve your DevOps engineer dream by switching to a DevOps role.
You can read up about it here.
If you choose to follow this path, you will get a good experience of software development before you switch to DevOps. This experience can boost your DevOps career.
#3. Learning to code can grow your network
You can use your coding skills to network with other DevOps engineers by contributing to open-source projects.
Here's how?
Build new features in existing open-source tools or initiate a new project (if you've got the guts). Talk about it in public forums and get other DevOps engineers to use the features or the new tool you build. Get their feedback and improve your contributions.
This will help you build a network of DevOps professionals. Sometimes this network can help you land a DevOps job.
Also, at job interviews, recruiters and hiring managers will recognize you as a committed individual. Some would also consider your open-source contributions as equal to industry experience.
So, contributing to open-source is double impact work.
#4. Learning to code will enhance your DevOps skills
Coding brings real world DevOps problems to you.
As you work on coding projects you will be walking through the software lifecycle from planning to deployment. You will encounter real world problems in building and deploying code. As you work on these problems, you will get exposed to DevOps side of the software lifecycle.
It will help you build DevOps skills and put them into practice.
#5. Coding skills will make you good in YAML templating
Many DevOps tools in IaC and GitOps use YAML templating.
YAML templates are more concise than code written in programming languages. But when you model real world cloud infrastructure in IaC or when you create a fully-automated CICD pipeline in GitOps, your YAML templates can grow into large (YAML) code bases.
You will be troubleshooting, debugging, and rewriting these YAML templates in the same way you write code. You will find this work to be very hectic, if you have not practiced coding before.
When you are proficient in coding with a programming language like Go, Python, Ruby, etc., working with YAML will be less daunting.
#6. You'll quickly pick up IaC tools that use real programming languages
Not all DevOps tools use templating languages.
Some IaC tools like AWS CDK and Pulumi use real programming languages like JavaScript, Go, Python, etc. If you get to work with such IaC tools, you'll face a steep learning curve, if you do not have previous experience in coding.
But, if you have coding skills, you will feel right at home as soon as you take up one of these IaC tools.
Wrapping up
As a DevOps engineer coding is not your primary task. But you cannot stay away from coding as a DevOps engineer.
Practice coding. Start today.