5 minute read

Want to Work in Tech?

If you are looking to start a career in tech, look no further. Tech is a very broad field and many people believe that it’s all about coding. This is the furthest thing from the truth, and in reality, writing code is only a part of the industry. In this post, I will go over what a DevOps Engineer is, and how you can get started. For those of you in tech already, you can find DevOps technologies that you can learn to boost your career, productivity, and knowledge.

What is a DevOps Engineer?

A DevOps engineer is an engineer that is crucial in any tech team. They often wear many hats. A DevOps engineer can be responsible for the following:

  • Creating a companies technical infrastructure on the cloud (AWS, Azure, GCP, etc).

  • Write scripts to automate repetitive tasks (Bash, Python).

  • Helping engineering teams create CI/CD pipelines so that they may have an easy time testing and deploying their applications.

  • Containerizing applications for uniformity (Docker, Kubernetes).

  • Creating cloud infrastructure in an automated fashion (Terraform, Ansible).

Overall a DevOps engineer works with various engineering teams. Their goal is to create a healthy ecosystem for all of the companies applications, pipelines, processes, and anything else that may be technically related. They should also develop tools to free of the time of individual engineering teams. These tools should be self-servicing and allow the engineering teams to be more efficient. DevOps engineers are essentially the backbone of the engineering team, they are the glue that holds everything together.

These are tools, technologies, skills, ideologies, and paths that one could take to become a DevOps engineer. Most of these will go over skills for DevOps engineers, cloud architects, systems administrators, and other infrastructure-related roles.

Linux

tux

I think it’s critical for everyone in the DevOps field to learn Linux. Linux is an operating system that is used everywhere. It is an open-sourced operating system that everyone in tech should learn. A good resource for learning Linux basics can be found here.

Programming

I believe that those working in tech should know at least one programming language proficiently. This means they should be familiar with core libraries, concepts, and be able to design and write scripts seamlessly. I recommend Python to be the first programming language that new engineers pick up. Bash is also a great tool to be familiar with but proficiency is not needed.

Python

A great way to learn Python is through Corey Shafer’s YouTube channel. He is an excellent programmer and teacher. Start with the beginner’s tutorial, once that is completed, work through the OOP tutorial. Corey Shafer also has some other great series’ and are worth checking out.

A few libraries that new Python programmers should consider learning are:

  • Requests

  • Logging

  • Sys or OS

  • Pandas

  • NumPy

Jupyter Notebook

When starting off, I think Jupyter is a great way for new developers to get familiar with Python. Interactive cells allow users to quickly test ideas and run code simply. A great, in-depth video can be found here, by Corey Shafer. If you don’t want something so detailed, here is another resource.

Bash

Bash is used to creating small tools and should be in any great engineer’s repertoire. I encourage that new engineers spend a few hours playing around with bash, but not much more. There will come a time and place for you to use it, and in my opinion, the best way to learn to write bash it by doing.

coding-1

Cloud Technology

Learning cloud technologies is crucial for new engineers. In my opinion, this is an absolute must for engineers who are looking to work in infrastructure. I recommend becoming proficient in one cloud before moving onto another one. In my opinion, the three major clouds AWS, GCP, and Azure share various concepts and technologies but present them in unique ways.

AWS

I would advise most new engineers to start by learning AWS. In my opinion, it is the most popular cloud, the easiest to learn, and has the friendliest libraries and API’s for programming. Here is a great tutorial on Youtube walking you through AWS from A to Z. Here is a playlist with individual components in case you want to take a deeper dive.

Here are a few crucial technologies to learn:

  • Users and Permissions

    • IAM Policies and Roles
  • Computing

    • EC2

    • Volumes

    • Snapshots

    • AMI’s

    • Securite Groups

    • Load Balancing

  • Cloud Storage

    • S3
  • Networking

    • Route53

    • VPC

  • Serverless

    • Lambda Functions
  • Monitoring

    • Cloud Watch

Popular Ideologies and Related Technologies

Various popular technologies are utilized by engineering teams all over. These technologies are often associated with an ideology. For example, Docker is a great technology, that is associated with containerization, Travis CI is a great technology associated with CI/CD. I think it’s more important for new engineers to get familiar with the ideologies behind the technologies first.

Source Control - GitHub

Anyone and everyone working in Tech must learn GitHub. There is no way around it, learning GitHub is crucial. I would recommend users learn to interact with GitHub on the command line, as well as installing the Desktop app if their OS allows it.

The best way to get familiar with GitHub is to use it. As you are learning Python and Bash, and solving practice problems, put them up in GitHub. Create branches, PR’s, merge them, and do all things GitHub-related. Corey Shafer has a tutorial for this. I would go through the first video, then start working with GitHub, as you get more familiar start going through the other videos.

Containerization - Docker

Containerization has taken the industry by storm and is being implemented everywhere. It is a crucial ideology, and I believe all engineers should learn it. Here’s a great resource and point to start. Once you write a more advanced application while learning Python, it might be a great idea to create an image with the application and dependencies.

I would recommend getting familiar with Dockerfile’s. Once you get familiar with the basics of Docker, only use Dockerfile’s and Docker Compose to create images and run containers.

CI/CD - Travis CI/GitHub Actions/Jenkins

iot CI/CD is another great concept for DevOps engineers to get familiar with. A lot of companies are leveraging it now. Here is a quick video to get you familiar with the concept. There are various tools that engineers can use for CI/CD. I think while learning GitHub, it makes sense to use GitHub Actions. Here is a wonderful GitHub Actions tutorial that uses Docker. If not, you can also consider Travis CI, which is a personal favorite of mine

Infrastructure as Code (IaC) - Terraform

Terraform is a great tool that is being leveraged by DevOps teams all across the board. It is used to create infrastructure on the cloud in an automated way. It is a bit more advanced, so I wouldn’t start it until I learned all the concepts above. I would also learn Terraform in tandem with Ansible

Server Automation - Ansible

Ansible is a wonderful tool that is used for server configuration and automation. It is extremely useful when working with VM. Like Terraform, it is a bit more advanced, so I would learn the aforementioned technologies before jumping to this.

Other Technologies

Feel free to check out these technologies as well:

  • NGINX - Networking

  • ELK - Data Visualization

  • Zabbix - Server health/monitoring

Career Moves

Once you start working on these technologies and getting more familiar, there are a few routes you can decide to take. You can start applying for jobs, but some might turn you down for a lack of experience, or at least first-hand experience.

What you might want to consider doing is freelance work. I use Upwork for freelancing and I think it’s great. As a new engineer, you can practice all the aforementioned skills by applying for jobs on Upwork which leverage them. There are plenty of jobs related to Python, Docker, Terraform, and building CI/CD pipelines. By applying for and working these jobs, you will get first-hand experience, money, and a great way to build up your resume.

Leave a comment

Your email address will not be published. Required fields are marked *

Loading...