In my opinion a devops person with software developer background can do better in devops than direct devops dive-in.
Writing substantial amount of code, trying to scale it, refactor, maintain, observe, debugging, unit testing, picking a framework for a project are all a must-need experience for a devops person to function effectively in their devops role. In short, there cannot be a junior devops engineer.
Without coding experience it will be difficult to understand concepts like state management, code versioning, code performance, library dependencies, packaging, need for containers, distributed tracing, why centralized logging and the list will go on. And these concepts are very much part of devops.
A devops role demands someone to learn a suite of tools to implement end-end automation. Anyone can learn these suite of tools without prior software development but that doesn’t make them devops ready. Being a software developer and working for few years as a developer is the very first step in becoming devops ready.
Software development is a very wide spectrum, every software dev solves different kinds of problems with different software development tool sets. Having hands-on in all these tools is close to impossible. With plethora of tools in devops space, sometimes even experienced developers find it little intriguing to understand what a particular tool is for and what kind of problem it solves. Learning to use a tool is easy but the ability to decide right tool for the right job and the optimal usage of the tool will come with years of experience on software development.
Top comments (4)
Good job on making it clear that the skills required for such a role come with years of experience, usually from being a developer who has worked on the systems the for which DevOps is required.
Nice one!
Thank you for sharing your thoughts!
Having worked quite a lot with DevOps practices and integrating them into different teams and organizations, I'm not really sure I agree with the notion that there can even be a specific DevOps role or group.
I get the impression that you're rather talking about Site Reliability Engineers? If so, I totally agree that it requires prior knowledge and experience.
I see lot of job postings in various job portals looking for "Devops Engineer" with 2yrs/ 3yrs experience listing down all the tools like Jenkins, k8s, nagios... This is making young engineers to just learn these tools and config them so that they job market ready. These engineers might easily miss the lesson on why those tools were even made and what programming challenges gave the opportunities to create these tools first hand. I agree with you that there cannot be a devops role as its a process. I was referring as "Devops role" based on those job postings, SRE might be apt as you pointed out.
Thanks for clearing my doubts. I am actually working as IT Automation Engineer but due to some project requirement, I had to start working on Front End dashboarding because I have a background (College Days) in Full-Stack. So was literally confused like is it going to help me in any way because I wanted my pursue DevOps as a career.
This post really helped. Thanks Again!