But I love tech and learning stuff. I'd like to spend the next year or so studying to transition to a DevOps role. I know SQL on a OK level, did some backend, know how to setup a Docker container etc.
What steps would you recommend to take? Books to read? Courses to take?
I ordered "Designing data intensive applications" book and am also considering buying the Cloud engineer bootcamp course from Linux Foundation.
What else? What should be my primary focus? What do I need to know inside out to be a competent candidate?
Thanks for the replies.
Learn Version Control: Familiarize yourself with Git, as version control is a crucial skill in DevOps. You can start with online tutorials and documentation like the "Pro Git" book by Scott Chacon and Ben Straub.
Master the Command Line: DevOps heavily relies on command-line tools for automation and management. Practice using the terminal extensively and learn essential commands and scripting (e.g., Bash, PowerShell).
Infrastructure as Code (IaC): Get familiar with IaC tools like Terraform or Ansible, which allow you to manage and provision infrastructure programmatically. Online courses like those on Udemy or Pluralsight can be helpful.
Continuous Integration and Deployment (CI/CD): Understanding CI/CD pipelines is crucial in DevOps. Consider learning tools like Jenkins, GitLab CI/CD, or CircleCI. "Continuous Delivery" by Jez Humble and David Farley is an excellent book on this topic.
Cloud Platforms: Familiarize yourself with cloud providers like AWS, Azure, or Google Cloud Platform. You can take vendor-specific certifications or explore resources like the AWS Well-Architected Framework.
Look up a few folks on LinkedIn in your area with the title you're interested in getting, and ask to buy them a coffee. Pick their brain on how they like what they're doing, where they see the field going, and what their frustrations are.
To take this to the next level, find a friend with a side project they're trying to launch, and offer to help them out on some of the DevOps aspects. Try it for a few weeks to months and then evaluate what you learned.
Once you're sure you actually like the work, you can start thinking about how to actually pivot into DevOps.
If you have any experience with the field that allows you to answer OP's question please offer that rather than this feel good nonsense.
I wanna ask - how deep should I know Linux? I bought this crazy book years ago, Linux Programming Interface, which is clearly overkill. Do you have some recommendations there? Thanks again.
If you work as a devops engineer, you'll want to know how Linux works in terms of folder organisation, what each command does, how to list and kill processes, use networking tools, etc. I think that you should learn to use the command line pretty well, that's the kind of thing you'll want to master if you are interested in devops work. But also have in mind that a big percentage of the work that I'd say is 'devopsy' isn't about Linux per-se, it can be related to other things like creating build and deployment pipelines, scripts in scripting languages (Python, JavaScript, bash...), infrastructure as code, and stuff like that.
To learn more about Linux you can perhaps study the first LPIC certification, LPIC-1, following a course from A Cloud Guru or perhaps from this other site called Pluralsight. I'd say it's up to you if you then take the LPIC exams, but following a course in itself is useful as you'll learn while you follow it. You'll learn to use the terminal (bash or any other shell) and about Linux from the point of view of a user, not of a systems programmer.
But understand that the LPIC-1 goes into a lot of detail regarding how Linux boots and stuff like that. That's good to know but you probably will want to learn other more practical things first - the different command line tools for sure.
Something that I think you'll like: check Julia Evans' fanzines, specifically Your Linux Toolbox[1], which is a box set. They are charming and you can learn many things about Linux with them.
I do agree that experience is important but experience on top of knowledge is much more valuable.
What I was trying to say is that you get a really valuable perspective from actually working on a field. You get that plus you see how others work, possibly more senior engineers. Mentorship in the workplace is really useful for example. You also see real code and different practices and ways of working.
I wasn’t trying to be dismissive… more like encouraging. Some people feel that they really aren’t prepared, even when they get to a point where they are. It was more about that than about laziness. I value theory a lot, myself.
Source: have worked as a devops engineer in the past, for a few years.