Transferring to a DevOps engineer is a very beneficial career path that may keep you busy and challenging, but will greatly increase your earning potential.
Consider your background
If you have experience in technical work, such as software developers, system engineers, system administrators, network operations engineers or database administrators, then you already have extensive insights and useful experience that can help you become DevOps in the future engineer. If you have just begun your studies in the field of computer science or any other STEM (LCTT: STEM is an acronym for Science, Technology, Engineering, and Math) Career, then you will have some basic stepping stones you need during this transition period.
The role of
DevOps engineer covers a wide range of responsibilities. Here are the three directions companies are most likely to use them:
DevOps engineers who are biased towards development (Dev) play the role of software development in building applications. Part of their daily work is to use continuous integration/continuous delivery (CI/CD), shared warehouses, clouds, and containers, but they are not necessarily responsible for building or implementing tools. They understand the infrastructure, and in a mature environment, they can push their code to the production environment.
DevOps engineers who are biased towards
operations technology (Ops) can be compared to system engineers or system administrators. They understand software development, but they don’t focus their day on building applications. Instead, they are more likely to support software development teams to automate manual processes and increase the efficiency of personnel and technical systems. This may mean breaking down legacy code and using less cumbersome automated scripts to run the same commands, or it may mean installing, configuring, or maintaining infrastructure and tools. They ensure that tools are available for any team in need. They will also help them by teaching the team how to use CI/CD and other DevOps practices.
A website reliability engineer (SRE) is like a software engineer who solves operations and infrastructure. SRE focuses on creating scalable, highly available and reliable software systems.
In an ideal world, DevOps engineers will understand all of the above areas; this is common among mature technology companies. However, DevOps positions at top banks and many Fortune 500 companies are usually biased towards development (Dev) or operations (Ops).
Technology to learn
DevOps engineers need to understand various technologies to complete their work effectively. Regardless of your background, start with the basic technologies you need to use and understand as a DevOps engineer.
operating system
The operating system is where everything runs, and it is important to have relevant basic knowledge. Linux is the operating system you are most likely to use every day, although some organizations will use the Windows operating system. To get started, you can install Linux at home, where you can interrupt as you like, and learn in the process.
script
Next, choose a language to learn script programming. There are many languages to choose from, including Python, Go, Java, Bash, PowerShell, Ruby, and C/C++. I recommend starting with Python because it is relatively easy to learn and explain and is one of the most popular languages. Python is usually written in accordance with the principles of object-oriented programming (OOP) and can be used for web development, software development, and creating desktop GUIs and business applications.
cloud
After learning Linux and Python, I think the next thing to learn is cloud computing. Infrastructure is no longer just a matter of "operation and maintenance brother", so you need to contact cloud platforms, such as AWS cloud services, Azure or Google cloud platform. I will start with AWS, because it has a large number of free learning tools that can help you reduce any obstacles as a developer, operation and maintenance personnel, and even business-oriented departments. In fact, you may be overwhelmed by what it provides. Consider starting with EC2, S3, and VPC, and then see what you want to learn from it.
Programming language
If you are passionate about DevOps software development, please continue to improve your programming skills. Some excellent and commonly used programming languages in DevOps are the same as those you use for scripting: Python, Go, Java, Bash, PowerShell, Ruby, and C/C++. You should also be familiar with Jenkins and Git/Github, you will use them frequently during the CI/CD process.
container
Finally, start learning
containerization using tools such as Docker and orchestration platforms such as Kubernetes. There are a lot of free learning resources online, and most cities have local offline groups. You can learn from experienced people in a friendly environment (and pizza and beer!).
what about others?
If you lack development experience, you can still participate in DevOps through your passion for automation, improving efficiency, collaborating with others, and improving your work. I still recommend learning the above tools, but the focus is not on programming/scripting languages. It can be very useful to understand infrastructure as a service, platform as a service, cloud platform, and Linux. You may set up tools and learn how to build a resilient and fault-tolerant system and use them when writing code.
Get a DevOps job
The job search process will vary, depending on whether you have been engaged in technical work, whether you are entering the field of DevOps, or a graduate who has just started a career.
If you are already engaged in technical work
If you are moving into a
DevOps role from a technical field, first try to look for opportunities in your current company. Can you regain your skills by working with other teams? Try to follow other team members, seek advice, and acquire new skills without leaving your current job. If this is not possible, you may need to change to another company. If you can learn from some of the practices, tools and techniques listed above, you will be able to demonstrate relevant knowledge during the interview and occupy a favorable position. The key is to be honest and not to worry about failure. Most recruitment executives understand that you do not know all the answers; if you can show what you have been learning and explain that you are willing to learn more, you should have the opportunity to get a job in DevOps.
If you just started your career
Vacancy opportunities for companies applying to hire junior
DevOps engineers. Unfortunately, many companies say they want to find more experienced people and recommend that you apply for the position after gaining experience. This is a typical, frustrating scenario of "we need experienced people", and no one seems to be willing to give you your first chance.
However, not all job search experiences are so frustrating; some companies focus on training and upgrading students who have just graduated from college. For example, MThree, where I work, hires fresh graduates and trains them for 8 weeks. After completing the training, participants can fully understand the entire SDLC and fully understand how it is used in the Fortune 500 company environment. Graduates are hired as junior DevOps engineers at MThree’s client companies — MThree paid full-time salaries and benefits for the first 18 to 24 months, after which they will join the client as direct employees. This is a good way to bridge the gap from university to technical career.