As a new employee fresh out of college, there’s definitely a learning curve when entering the DevOps world. For me, DevOps was rarely mentioned in school and certainly never in a lecture. It was this mysterious movement sweeping through the technical field: a solution to all of your project’s problems. To me, it was more of a far away fairy tale than anything else.
Coming into a company that specialized in Agile and DevOps was a shock to say the least. Suddenly, there were new tools and processes to learn along with a whole new mindset to adapt to. Lacking context and an educational foundation, I wasn’t even sure what it was, let alone how to setup and manage a pipeline that implemented it. Learning something as complicated as DevOps took time. It is a continuous process that evolves as the field does. For people trying to get started with it, I have a few helpful tips:
Seek out classes and tutorials taught by professionals
Trying to teach yourself DevOps is nearly impossible. Having guidance and an experienced instructor you can go to with questions is invaluable. Enroll in a course that covers the foundational practices and approaches or find a contact willing to help you through the learning process. Establishing the fundamentals and understanding core concepts will lay a good foundation for future projects and having someone to ask clarifying questions to is invaluable. Immediate feedback and responses from an on-site coach ended up being most helpful for me while learning DevOps.
Don’t skip topics just because you don’t understand right away
In order to really understand what the tool is doing or how it’s supposed to help your development process, you need to actively engage in the learning process. Instructors will often skip over details that might need fleshing out. They don’t do this on purpose, but it can be hard to fully explain a complex topic in a classroom setting. Terms like security and code analysis will get thrown around without really explaining what they do, so take the time to ask questions, take notes, and do research on your own. I found a number of articles, presentations, and more at AgileConnection, as well as some really great posts my co-workers have written in this blog. Making sure that you understand the terminology in a DevOps context is important when trying to communicate with others working with you so as to avoid any confusion or misunderstandings.
Create your own practice pipeline
Passive learning will only get you so far – at some point, you need to work with tools you’ve been learning about. Play around with them and try following all those tutorials to create a local pipeline that implements the things you’ve been learning. Don’t give up if things don’t work correctly at first. Setup is the longest part of the process, but it’s worthwhile if you learn to properly create, automate, and manage your pipeline. You can use tools such as Jenkins for managing your pipeline, AWS for infrastructure, and something like Chef or Ansible for automating your deployments.
Learning a complicated concept such as DevOps can be a challenge but having a good instructor and taking good notes can make all the difference. Dedicate time to learning the tools and setup while keeping in mind that a pipeline is tailored to the product. Not all of them will look the same.