What a DevOps engineer actually does
DevOps is the work of getting code from a developer's laptop into production reliably, and keeping it running once it is there. On a normal day that looks like a few things: building and fixing the pipelines that test and ship code automatically, writing configuration that spins up servers and databases from a file instead of by hand, watching dashboards and alerts, and being the person who gets paged when something breaks at 2am.
The honest verdict, stated upfront so you can plan: 12 to 18 months is realistic if you are changing careers from outside tech. If you are already a working developer who understands how apps are built, 6 to 9 months is enough, because half the job is already familiar to you. DevOps is not an entry-level role in the way frontend can be. It rewards people who already know how software behaves and want to own the part where it meets real infrastructure.
What DevOps is (and is not)
DevOps is not a single tool, and it is not one job that looks identical everywhere. It started as a cultural idea: stop throwing code over a wall from the developers who write it to the operations team who run it, and instead make one group responsible for both. The tooling grew up around that idea, but the idea came first.
That means the title covers a wide range. At a small startup, the "DevOps engineer" might be the one developer who also handles deployments and keeps the cloud bill sane. At a large company, DevOps might be a platform team of fifteen people who build internal tools the other engineers use to ship. Same title, very different weeks.
Here is a concrete example of a mid-size team's week. Monday, a deploy pipeline starts failing because a dependency updated; someone spends the morning tracing it. Tuesday, a developer asks for a new staging environment, so the team writes some Terraform to create one and adds it to version control. Wednesday, an alert fires at midnight because a database is running low on connections; the on-call engineer bumps a limit and files a ticket to fix the root cause properly. Thursday and Friday go to building a new CI step that runs security scans on every pull request. None of that is writing the product itself. All of it is making the product shippable and stable. That is the job.
The skills, in the order that works
This is the part most roadmaps get wrong. They dump twenty logos on a page and imply you learn them in parallel. You do not. The skills stack, and learning them out of order wastes months. Here is the sequence that works, and why each step has to come where it does.
Start with Linux. Almost every server you will ever touch runs Linux, and every tool above it assumes you can move around a shell, read logs, manage permissions, and understand processes. Skip this and everything later feels like magic you cannot debug. Two to four weeks of daily practice on the command line pays off for the rest of your career. Our /guides/best-free-linux-courses-2026 guide ranks the free courses for exactly this stage.
Next, scripting. Python or Bash, and honestly you want both eventually. Bash for gluing commands together and quick automation, Python for anything with real logic. This is the layer that turns you from someone who runs commands into someone who automates them. You cannot do infrastructure as code well without being comfortable writing scripts first.
Then one cloud provider. Pick AWS if you care about the job market, because it has the most listings by a wide margin. Learn the core services: compute, storage, networking, and identity/permissions. Do not try to learn AWS, Azure, and Google Cloud at once. The concepts transfer, so one deeply beats three shallowly.
Then containers, which means Docker. A container packages an app with everything it needs to run, so it behaves the same on your laptop and in production. This is the concept that makes modern deployment work, and it is the prerequisite for the next step.
Then orchestration, which means Kubernetes. Here is the rule that trips people up: you cannot understand Kubernetes without first understanding containers, because Kubernetes exists only to run and coordinate containers at scale. Learners who jump straight to Kubernetes because it is on every job posting end up memorizing commands they cannot reason about. Learn Docker until containers feel obvious, then Kubernetes clicks in a fraction of the time.
Last, CI/CD. GitHub Actions is the easiest starting point because it lives right next to code most people already keep on GitHub; Jenkins is the older option you will meet at larger companies. This is where it all comes together: a pipeline that tests your code, builds a container, and deploys it to your cloud automatically. It comes last because a pipeline is just automation wired around every skill before it. Build the pieces first, then connect them.
Free courses to start with
You can cover most of this path without paying anything. Here is where to start, honest about what is free and what costs money for a certificate.
For the cloud layer, freeCodeCamp's AWS Certified Cloud Practitioner course is a free 13-hour video that covers the fundamentals well; the video costs nothing, though the actual AWS certification exam has a fee if you want the credential. AWS Skill Builder's own Cloud Practitioner Essentials is also free and comes straight from Amazon. If you lean toward Azure instead, Microsoft Learn's AZ-900 Azure Fundamentals path is free and includes a certificate of completion. Our full writeup of the cloud options is at /guides/best-free-cloud-computing-courses-2026, and the AWS-specific picks are at /guides/best-free-aws-courses-2026.
For containers and orchestration, freeCodeCamp has a free 2-hour Docker course (titled Learn DevOps Basics) and a full beginners' Kubernetes tutorial, both free on YouTube with nothing to sign up for. Do the Docker one first, for the reason in the section above.
For the DevOps practices themselves, once you have the pieces, Microsoft Learn's AZ-400 path (Development for Enterprise DevOps) ties CI/CD, infrastructure as code, and monitoring together, and it is free with a certificate.
The pattern across all of these: the learning is free, the industry certifications cost money. A cert is not required to get hired, but for a career changer with no relevant work history, one cloud cert (AWS or Azure) is a reasonable signal to buy. Start with the free courses, then decide if the exam fee is worth it for you. Our full roundup of free DevOps courses, with more detail on each, is at /guides/best-free-devops-courses-2026.
How long does it take?
Straight answer. For a career changer starting from outside tech, plan on 12 to 18 months at 1 to 2 hours a day. For someone already working as a developer, 6 to 9 months, because you already understand how apps are built and deployed, so you are only adding the infrastructure half.
Roughly how the hours break down. Linux and scripting: 60 to 100 hours to get genuinely comfortable, not just to finish a course. One cloud provider to a solid working level: 80 to 120 hours, including hands-on practice in a real account. Docker and Kubernetes together: 60 to 100 hours, most of it spent breaking things and fixing them. CI/CD and tying it all together: 40 to 60 hours. That is a few hundred focused hours total, which is why the calendar reads in months, not weeks.
The number that actually moves your timeline is not hours logged, it is how much you build with your own hands versus how much you only watch. An hour spent deploying a broken pipeline and fixing it teaches more than three hours of video. People who build alongside the courses reach job-ready noticeably faster.
Portfolio and getting hired
DevOps hiring managers do not want to see finished tutorials. They want proof you can wire real systems together and reason about what happens when they break. That is hard to fake, which is good news once you have actually done it.
Here is one portfolio project that covers most of what gets tested in interviews: build a CI/CD pipeline on GitHub Actions that takes a small app, packages it into a Docker container, and deploys it automatically to a cloud provider whenever you push to your main branch. It sounds simple. It is not, and that is the point. Doing it end to end forces you to touch containers, a cloud account, secrets management, and pipeline configuration, which is a real slice of the actual job. Write a short README that explains the architecture and the decisions you made. That README is often what a hiring manager reads first.
Beyond the project, put your infrastructure code in version control where people can read it, because reviewers want to see how you write configuration, not just that it runs. If you are coming from another field, career-changers have a real edge in DevOps: the on-call, incident-response side of the job rewards people who stay calm under pressure and communicate clearly, which plenty of non-tech careers build. See /best-for/career-changers for how to position that background.