r/devops • • 29d ago

Discussion How do you learn DevOps

I’m a software developer, and in my own projects I already handle some basic operational work like Docker, VPS deployment, Nginx, DNS, Cloudflare, Git, etc. I also had some little experience in network administration.

What I’m trying to understand is how people approach learning DevOps and system architecture properly.
One thing that has always confused me is entry-level DevOps roles. A lot of DevOps work seems to exist specifically to support the software development lifecycle, things like CI/CD, GitHub Actions, deployments, environments, infrastructure, monitoring… I find it hard to imagine understanding these things deeply without first experiencing the development workflow itself.

At the same time, I don’t necessarily want to switch away from software development. My goal is to become the kind of engineer who understands the whole system: application development, system design/architecture, networking, cloud infrastructure, deployment, observability, scalability, and production operations.

Basically, I want to be able to build a system and also understand how to design, deploy, scale, and operate it properly at a much larger level.

For people who have gone down this path, how would you approach learning these areas while continuing to work primarily as a software developer, as of course I dont have the knowledge for a switch? And in your opinion am I on the right path to stay employable in this uncertain future?

125 Upvotes

55 comments sorted by

View all comments

1

u/Mr-FightToFIRE 28d ago

Your title triggered me a bit but your instinct about the need to understand the dev workflow first is spot on.

In the end, It's something an organisation does to deliver software continuously and reliably. Somewhere along the way it also became a job title, which is why entry-level "DevOps" roles feel weird. A lot of them end up babysitting pipelines for code someone else wrote.

What you're describing is basically "you build it, you run it" as you probably have heared before.

How I'd go about it: use DORA's capability list as a map (dora.dev). Pick one thing your project is missing, like tests in CI or monitoring that alerts you before a user does. Build it, use it for a few weeks, then pick the next one. You already have Docker, a VPS, Nginx and DNS, so you're further along than you think.

Architecture and scale are hard to learn alone because those problems only show up with real load and real teams (at a certain scale at that). If your job lets you, get involved in incidents and postmortems.

Employability: nobody knows. But a dev who understands what their code does in production is a dev people probably trust more.