Learning Path: DevOps

Amanpreet Kaur
6 min readMay 23, 2020

--

This learning path is specially designed for the undergrads or people seeking to change their career towards DevOps and hustling down to know where to get started. All of the resources mentioned here are from my own experience. I began learning DevOps when I was in the sophomore year of my college, and after following these resources in depth, landed a six-month-long internship opportunity with Appdynamics(where I’m currently working).

People usually have a lot of questions like how to become a DevOps engineer, what are the tools one should learn? What is Docker, what is Kubernetes? Is the infrastructure automation part of DevOps? Is it important to learn Chef, Ansible, etc?

But the most important question among them is “Where do I begin?”

So, here it goes:

(1) Basics of Computer Science

DevOps stands for Development + Operations. Prerequisites here are not different from that of Software Development. Understanding the core concepts of Computer Science is required here as well. Databases, Computer Networking, and Operating System these three are the foundation stones. A basic and clear understanding of these subjects is really important.

  1. Operating System: There are a lot of resources available in the market, but I referred to Operating System Concepts by Gagne, Silberschatz, and Galvin. It is like a one-stop-shop for OS. The explanation makes things quite crystal clear. Along with this, there is a youtube tutorial series by KNOWLEDGE GATE channel. Things explained there are in pretty layman terms which makes things pretty easy to grasp.
  2. Database Management System: For DBMS, I referred — Fundamentals of Database Systems by Ramez Elmasri. This is my personal favorite. To learn SQL, always refer to W3Schools.
  3. Networking: To learn about the basics of a subnet, routing, switching, etc. there is an awesome youtube tutorial series by Ravindrababu Ravula. Engineering undergraduates must be very familiar with this name. Along with these, you can refer to Data Communication and Networking by Behrouz.A.Forouzan and Computer Networks: A Systems Approach.

Note: The books I have suggested are easily available in PDF format over the internet.

(2) Linux Basics

Intermediary command over Linux basics is also equally necessary. Knowledge of basic concepts like User groups, File permissions, package management, system monitoring, scheduling, LVM management, shell scripting, and basic commands like ls, cat, top, touch, df, etc. To get everything related to Linux at the same place refer to Tecmint.

(3) Language

After the subjects, comes the language. In-depth knowledge of one programming language is necessary. The one I started at that time was Python. If you are about to start learning a new language for this DevOps journey, I’ll highly suggest learning Python. Python is one of the primary technologies used by teams practicing DevOps. Its flexibility and accessibility make Python a great fit for this job, it enables building web applications, data visualizations, and also improves the workflow.

I learned Python from this course on Udemy — [Complete Python Bootcamp]. It walks you through a complete beginner to advance. The most important step while learning a language is to practice. Without practice, you won’t be able to have a good command over the language. So I’ll highly suggest practicing over any platform along with this course. The best way according to me is to go through this course and parallelly practice on Hackerrank, the language-specific challenges.

(4) Public Cloud Provider

The sequence I am following here is the one I have gone through. It is definitely fine if you feel like changing the sequence according to your convenience. DevOps concept is not easy to understand at the first go. It takes time, perseverance, experience, understanding the tools, etc. The place from where I started my DevOps tech stack was AWS. I personally like AWS more in comparison with other Cloud providers. But you can always learn other cloud providers as well. My favorite source for AWS is the Acloudguru platform. They have an amazing set of courses to choose from. For getting started to go for AWS Cloud Practitioner and AWS Solution Architect Associate. These two courses will clear the basic architecture of AWS along with hands-on experience.

(5) Training(optional)

I did my training for RHCSA(Red Hat Certified System Administrator) in winter 2018 from a renowned institute of Jaipur — Linux World. It involved not just training for this certification but there were also sessions on different trending technologies of that time like Machine Learning, AWS, Python, Docker, Ansible, etc. Those were introductory sessions, for people to kick start any of those technologies. I successfully cleared my certification with a 100% score (300/300). This was a bonus thing. These training and certifications require a thorough knowledge of the concepts. So you learn a lot. Along with that, until you are not ready for an internship, you need something impactful in the resume. After having working experience the importance of certifications reduces, as you gain knowledge from experience, which also shines in your profile.

This is not a necessary step, just an add-on.

(6) Exploring DevOps tools

Now let’s come to the main tools.

  1. Docker — So here is my all-time favorite docker course — Docker for the Absolute Beginner — Hands-On — DevOps Created by Mumshad Mannambeth on Udemy. This course makes docker a lot simpler and easy to understand. Trust me I explored a lot of resources before this, but only this one was able to make things crystal clear. All the courses offered by him on Udemy are awesome.
  2. Ansible — Again two beginner and advanced level courses by the same instructor — Ansible for the Absolute Beginner — Hands-On — DevOps and Ansible Advanced — Hands-On created by Mumshad Mannambeth. On a beginner level, these two courses are more than enough. Just create a lot of playbooks on different virtual machines by yourself. Practice, practice, and practice, that’s the way how it works.
  3. Kubernetes — I explored Kubernetes official documentation and Katacoda examples to clear the basics. I got an amazing course later on which not only explains Kubernetes concepts but also gives an overview of how DevOps tools work. The course is Docker and Kubernetes: The complete guide by Stephen Grider.
  4. To deep dive into the Kubernetes world, you can explore this course — Certified Kubernetes Administrator by Mumshad Manambath, this course is all you need to learn about Kubernetes.
  5. Monitoring Tool — It’s really important to have a basic understanding of any monitoring tool. You can choose anyone among Prometheus, ELK, Grafana, etc. I learned Grafana through youtube videos and documentation.
  6. Jenkins — This is an open-source automation tool built in java for Continuous Integration purposes. This tool plays a very crucial role in architecture. If you want to go for a youtube series then tutorials by Edureka on Jenkins are a good source. Other than that Udemy course I’ll suggest is Learn DevOps: CI/CD with Jenkins using Pipelines and Docker by Created by Edward Viaene.

(7) Projects

Don’t worry if you don’t have many projects for now, not so much to show. Everyone starts at this level only. As you start learning things, exploring how they work, you start getting ideas about projects. Most of the time you get inspired by the courses you are following.

Going through the resources will give theoretical knowledge, to have complete understanding one has to start building projects. With the help of a good project, only you’ll be able to demonstrate your skills.

(8) Internship

After getting sufficient knowledge, next, it’s time to face the real world and their real problems.

Working with realtime data and solving real-time problems, makes a person more confident about their skills. It’s not necessary that your first internship opportunity has to be grand, the focus should only be on the learning. I interned at Atlan (prev SocialCops) in the summer of 2019.

This was my story. Thanks for reading this article so far. The resources I have linked here may not be free but are worth the money. Being an Udemy fan I have added mostly Udemy courses, but at the end of the day, the important thing is to have enough knowledge and experience of the mentioned things.

With hard work, focus, and dedication, nothing is difficult. It’s a tried and tested formula. So go for it and Good luck for the journey ahead!

Currently, I am learning and working on other advanced DevOps tools like Terraform, Teamcity, Kafka, etc. You can follow me on twitter to know the details of articles and courses I refer to related to different tools. My twitter handle is @burgerNpizza. I forgot to add that I am also competing in the #100DaysOfCode challenge on Twitter. Stay tuned to get insights into my 100 days journey.

--

--