visit
Let me introduce myself. I am Pavel, a Middle DevOps engineer in a London-based FinTech company. I am a former translator and started my career in IT about two years ago by switching to a technical writer. I have invested and still invest much time and effort into self-education to get more career opportunities and keep up with the trends of my domain. I am pretty sure that my path may be interesting: if so, just react somehow to this post to let me know.
There is obviously no magic pill to get into any profession. No course, diploma, or guide will guarantee that you will become a DevOps engineer. But any relevant information will undoubtedly get you closer to it. Moreover, if this information is well-structured and carefully picked by you, it will speed up the process. 90% of your success is you: your ability to find and study the necessary sources, discipline and readiness to spend days and nights learning things that might be useless at the first glance.
One of things I really don’t like in education is linearity.
Our first stop matches with the plan: Learn a Programming Language. But let’s be more precise and take any language marked with a violet checkmark. I have absolutely nothing against Rust, Ruby or JS, just that they will obviously be harder to learn from scratch to solve specific infrastructure problems. The best option would be Python, because it will allow you to easily automate the absolute majority of routine tasks, and later facilitate the modification and maintenance of scripts. Moreover, there is no need to compile anything, which is also a plus. I personally prefer Go for several reasons related to performance, but if I need to roll out a solution quickly and yesterday, I choose Python.
In a parallel, let’s take Understand Different OS Concepts and combine this topic with Linux and Learn to Live in Terminal. Don’t be afraid of a ton of sub-topics in the roadmap: all terminal built-ins and auxiliary programmes can be learnt easily backed up by basics of Linux administration.
By the time you pass it through to the Network Tools topic, you probably will be a bit tired of programming.
Honestly, you can study peculiarities of a chosen programming language forever, so let’s switch to Networking, Security and Protocols. Networks is a critical topic, so be vigilant and consistent.
By this time, you're supposed to have a knack for OS and networks, so the What is and How to Setup a...? topic will come in handy. I recommend taking Containers along with it, and getting into orchestration through Docker-Compose and Docker Swarm as part of that topic. Hold off on containerisation, it’s critical.
And, complete this short stage with Container Orchestration and Configuration Management. Ansible can be your main tool when it comes to managing software and its configurations on dozens of machines. And above all, it will allow you to automate the routine tasks to install and upgrade it. I also recommend exploring Ansible Galaxy: as a rule, for the most popular software, high-quality deployment roles have already been written for a long time.
Then, pass to Cloud Providers. There are a lot of courses, paid and free - just explore YouTube. In parallel with this topic, take Infrastructure Provisioning and look closely at Terraform. TF, like Ansible, will allow you to automate management - not configuration, but infrastructure.
Since Cloud Providers will be a long topic, in parallel with this one, we spin up and take CI/CD Tools and Learn How To Monitor Software and Infrastructure. Again, the purple checkmarks are enough for a general understanding. But I think by this point you'll have already chosen some stack and will be poking around in parallel.