I've worked as a System Administrator for a little over two years, but most of my job has involved repetitive software installations, basic monitoring, and following established procedures at a traditional company. I haven't had many opportunities to troubleshoot deeply, automate tasks, or work directly with infrastructure.
I'd like to transition into DevOps and am willing to build the fundamentals properly, even if it takes several months. What should I learn first? I'm especially interested in Linux administration, networking, Bash versus Python, Git, Docker, Kubernetes, Terraform, Ansible, CI/CD, cloud platforms, monitoring, and practical projects that would help me become job-ready without simply collecting certifications. I'd also appreciate recommendations for genuinely useful books, courses, or other learning resources.
4 Answers
The repetitive software installs are actually a good starting point for automation. In a normal environment, you could turn them into a Bash script, Python utility, or Ansible playbook, keep the code in Git, and document how it works. That creates a useful portfolio project and gives you experience with idempotence, configuration management, and repeatable deployments.
If scripting is restricted at work, build the same kind of workflow in a home lab using virtual machines or containers. You can recreate the installation and monitoring tasks safely without depending on workplace permissions.
Start with the fundamentals instead of trying to learn every DevOps tool immediately. Get comfortable with Linux commands, user and package management, storage and LVM, systemd, scheduled jobs, DNS, network interfaces, firewalls, and diagnosing high CPU, memory, or disk usage. Learn Git and basic Bash, then add Python when you need more capable automation.
After that, move into Docker and understand how containers actually work. Learn CI/CD by building a small pipeline, then study one cloud provider and its core services. Kubernetes, infrastructure as code, monitoring, and alerting will make much more sense once those earlier pieces are familiar. There’s no perfect sequence, so keep building small projects and go deeper where your interests lead.
A practical progression would be Linux, networking, Git, scripting, Docker, CI/CD, Kubernetes, and finally a cloud platform such as AWS, Azure, or GCP. Try to combine the topics rather than studying each one in isolation. For example, containerize a simple application, store the code in Git, deploy it through a pipeline, run it on a cloud service, and add basic monitoring.
Hands-on work will teach you more than passively watching courses. Your troubleshooting ability is also important—DevOps work is not just memorizing commands or collecting certifications.
Don’t assume you’re starting from zero. Two years of working with systems, procedures, monitoring, and software deployment still gives you useful context. A good home lab could include a couple of Linux virtual machines, a small application, Docker, Ansible, Git, and a basic CI pipeline. Practice breaking things and troubleshooting them: DNS failures, full disks, bad permissions, high memory usage, expired certificates, and service startup problems.
Document each project with the goal, architecture, commands, problems encountered, and how you fixed them. That demonstrates real understanding much better than listing a dozen tools or certificates.

That makes sense. Scripting is restricted by network policies in my current workplace, so I’ll recreate the process in a home lab and document what I build.