Where should I start, how should I go about it, and what do I need to know?
Let’s break down the steps and resources you are going to need to achieve your goal. Firstly, we would like to mention from the start that there are two main sources, Free and Paid for. Free ones can be excellent, but they can also be very poor. By this we mean the information is either way out of date or worse, wrong. Paid for is often where the premium content can be found but as in all things there will be the occasional bad lemon. We will explore this topic further later on.
So let’s put down a road map of the steps you should take.
Step 1: What is DevOps?
Research and understand what DevOps is, the philosophy and idea of it, its principles, its values and how it helps us in software development. Also explore the sort of position you would like to take on. Looking at job vaccines should give you a good idea of the likely skills and responsibilities required in the role you take on.
There is a lot of talk about DevOps not being a Job but a Methodology instead. In truth it’s both. So, part of the first step is to google what is a DevOps Engineer?
Step 2: Scripts
Make sure you have some basic coding skills as you may be required to write scripts for automation or write configuration files. Don’t let this put you off as simple scripting is always going to be a part of what you do. Remember, there will always be Developers there to handle the big stuff “coding”.
Python is a good example of a coding language to learn. This is because of its simple nature and extensive libraries making it easy to learn and use in scripts.
Writing scripts to automate tasks or having to breakdown and understand a script written by a senior engineer are both scenarios you’ll encounter when working in DevOps. Luckily, most scripts are written in two ways. 1) Bash (Linux) & 2) PowerShell (Windows).
Bash is the language used in most Linux systems such as Ubuntu and is the most commonly used when it comes to scripts.
PowerShell is only used on Windows systems and is an alternative to Bash if an organisation is very Microsoft and Windows orientated. Bash is what we recommend you start familiarising yourself with as they’re it can be used in both Windows or Linux environments and can often be easier to learn compared to PowerShell.
Although Bash and PowerShell can also be used to write code or interact with systems, there are other forms of code languages that are widely used in most areas of DevOps. From pipeline files to configuration files for Terraform.
These languages are YAML and JSON and at a junior level, you’ll want to know what they look like and how they’re written.
Step 3: The Fundamentals
It’s very important that you get a good idea of the fundamentals for the following tech. A basic knowledge and understanding is all you are looking for at this stage. In an interview, your employer will ask you questions about these to check your level of understanding and how they’re used in DevOps.
Listed below are four areas you should have some basic knowledge about.
Operating Systems. How they work and how to handle them. Linux & Windows is your starting point here.
Database technology. Look at what forms of Databases exists (SQL, PostgreSQL) and best practices for managing them in DevOps.
Networking. You should have a basic understanding of how-to setup a network and key components like Subnets, Ports and as a bonus, the 7-layer OSI model.
Cloud Providers. When working in DevOps, you’ll be using one (or many) Cloud Providers such as AWS, Azure, GCP. Each of them offers many different services but are fundamentally the same in what they do.
To get started as a Junior Engineer, you’ll need to know the basics about one of these Cloud Providers. We would recommend focusing on AWS as this is the most popular are always sought-after.
We recommend focusing on a specific Cloud Provider to start with and gradually learning a little about the other providers. Remember at this point you are looking to get a BASIC working knowledge. And one of the best ways to learn about AWS is through their certifications (see DevOps Certification section).
Step 4: The Tech Stack
Once you have a reasonable grasp of the fundamentals for the above topics then it’s time to look at the “Tech Stack”
Every company will have developed a certain way of working and adopted certain toolsets. The following list is what we feel are the most commonly used tools in DevOps.
Git – For code version control and management.
Docker & Kubernetes – For container management and orchestration.
The most fundamental area to know as a DevOps Engineer is containerization. By this we mean learning about What is a container? What does it do? How does it run? Once you know these, you’ll then want to look at learning the tools that run them. Specifically, Docker and Kubernetes.
Jenkins – For creating Pipelines, connecting all the different parts of the software development lifecycle.
Puppet & Ansible – For configuration management and automation.
Terraform – For writing and creating Infrastructure-as-code for most Cloud Providers.
Infrastructure-as-code is a term used to describe creating resources like Virtual Machines by writing code as opposed to creating it through a portal page.
You can learn about these tools by using Google, where you can search for free and paid courses. We suggest looking at the free content first to see what’s available and get the basics under your belt. YouTube is another place to help find tutorials and walkthroughs. Ultimately, at the end of the day, we recommend investing in a paid for course of which there are several options.
Step 5: Training and Certification
Udemy – This is one of the main places where you can purchase and occasionally get free courses. They are ranked and given customer ratings which help when selecting a course. It’s worth noting that they often have sales for picking up a bargain. There is a bewildering range of courses, so check the intro clips, see if you like the presenter and course content. Check their ratings and how many courses sold. Do your due diligence. We particularly like “Warp-9” as they have a no nonce approach which gives you the best opportunity to learn about the industry basics you need to start your career in DevOps. Their courses are relatively short and concise, so you won’t be overwhelmed as a beginner.
Teachable – This is another platform worth looking at as in many ways, it mirrors what we have discussed about Udemy.
Professional Bodies – Nearly all the Tech Stack we mentioned offers a series of exams for their content. Your end goal should be getting qualified. Many employers offer money towards this as part of their staff training budget.
It is often easier to pass an exam when you have some real-world experience and hands-on knowledge of DevOps. You won’t necessarily need a qualification in all these tools, and some don’t offer one, but we listed the ones we believe are well worth your time and effort in our DevOps Certification section.
Step 6: DevOps Certifications
Certifications are where you take a general exam which looks to test a candidate’s overall knowledge about a specific subject for example, Kubernetes. Obtaining a certification attests to your knowledge and understanding of key concepts and areas needed for working in DevOps. It also helps to strengthen your resume and enhance your professional profile.
Below are our favourites and most recommended certifications.
DevOps Guild. We like the fact that this UK awarding body has its roots in Education. It has recently reformed to offer a globally accessible online exam. Partnering with Warp9, it now offers a complete training package to help, guide and train people starting their career in DevOps.
On successful completion of the exam candidates get a digital certificate with a QR code that employers can use to validate its authenticity. https://devopsguild.com/exams/We strongly recommend getting this certification to get started in DevOps.
Cloud Provider – Foundation Level. Cloud Providers offer a “Foundation” level exam which is an introduction to their services and a basic explanation of the way they work. For example, AWS offers a Cloud Practitioner qualification as a foundation level exam. We recommend you take this exam to show employers you have a working knowledge of a “Cloud System”. https://aws.amazon.com/certification/
Terraform. This is at the heart of DevOps and has an Associate level exam which validates you have a good working knowledge of writing Infrastructure-as-code. This will look good on your CV/Resume when applying for your first role in DevOps. We recommend you also look to take this exam. https://www.hashicorp.com/certification/terraform-associate
The absolute minimum you should have when applying for jobs is a DevOps Certification and the AWS Cloud Practitioner qualification. But with all three qualifications under your belt, you’ll be best prepared to take on your first DevOps role.
Step 7: CV/Resume
You will now need to start the process of applying to companies and job applications. This is where your CV/Resume comes in and it’s critical to get this right. You need to stand out from the crowd if you are to get a chance of an interview. There are many resources available for free to help improve your CV and you can also pay to have an expert write one for you.
You may consider going through a recruitment agency. You will need to sign up with one in order to be put on their books. There is normally no fee for this service as they make commission directly from the company. But a word of caution, they are working on commission and can sometimes push/nudge you into a role that may not be suitable. That said they can be very good at getting you placed in a job. There are also online opportunities like LinkedIn and other forums where jobs are advertised for you to directly apply. https://zety.com/blog/technical-resume-example
Step 8: Interviews
If you have followed all the steps so far and you have an interview, well done. But there is still some work to be done. Research the company that you are applying to. It always reflects well if when asked you can tell a little bit about the company. You should also research about what an interview will be like and what sort of questions are likely to be asked, etc.
At the end of an interview, you will be asked if you have any questions. It always reflects well if you have a question to ask. If not, simply thank them and say you felt everything was covered in the interview. Do not ask silly questions just for the sake of it. Bear in mind that this is the time you should negotiate any special concessions I.e. I need to leave slightly early on a Friday as I have physiotherapy for the next 2 months. It is better to be open now before you start the job than immediately after starting.
This is by no means a comprehensive guide but it will certainly help to give you a good grounding in starting your career as a DevOps Engineer. It can offer a very satisfying profession which has the potential to pay handsomely. Finally, be prepared to keep learning and progressing. You will need to take certain qualifications to stay current and keep up to date with changes in the industry, and always keep an eye on where it is heading. Do this and you should have a long and satisfying career.
Top Resources for Starting and Advancing in DevOps, Tech Stack Review.
· Containerization (Docker, Kubernetes)
· Infrastructure-as-code (Terraform)
· Scripts (bash)
· Code Languages (YAML/JSON)
· Cloud Providers (AWS, Azure, GCP)
· Certifications
Robin Winters is an education Tech adviser for the DevOps Guild. He started his career as a lecturer in IT back in the late 80’s where he developed coding for the games industry and the then emerging use of computers in the Graphics industry.