Ask HN: How do I transition to DevOps after 10 years of front end?
4 points by kecupochren 1 year ago | 16 commentsBut 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.
- JazzyEssy 1 year agoTo successfully make this transition, here are some steps and resources I'd recommend:
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.
- mbm 1 year agoThe first step in a transition like this is to make sure you actually enjoy and are good at DevOps. Ask yourself what someone in the role you're interested in is most likely to do on a day-to-day basis, and then practice doing those things for a few weeks and see if you actually like it. One thing I've learned time and time again is that my perception of what X is like is often very inaccurate to the actual experience of doing X.
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.
- willnonya 1 year agoThis is pretty vapid advice. Setting aside the absurdity of the idea that you need to decide whether you can like a type of work before you're capable of doing it you've not answered OP's question to any degree.
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.
- kecupochren 1 year agoIt's not completely unreasonable point. I do see it's a very different type of work compared to mine. But I learned that life is not about doing something you love, but learning to love what you do. So I'm game to try something new.
- willnonya 1 year agoI think you've nailed the point that they missed. You do not always get to do what you already love, especially when you have responsibilities, family etc. What you can do though is what you suggest, learn to love what you do. Which usually starts with being competent at it.
- willnonya 1 year ago
- kecupochren 1 year ago
- willnonya 1 year ago
- Emigre_ 1 year agoTake a look at courses from A Cloud Guru, they are great. Consider studying and passing kubernetes certifications, like CKAD or CKA. Probably also consider the AWS ones. After that, you start being more attractive to perform a devops role. You don’t really need the certifications, but they might help you. What you’ll need is somebody willing to give you work involving that kind of experience, after you gain a base of knowledge thanks to courses, practicing on your own, etc. In small startups or companies work is less compartmentalised and there are probably less impediments to start exploring work that’s more devops than front-end. You might have to get less compensation, perhaps, but that would allow you to progress towards your professional goal. Ultimately, everybody’s case is different, so who knows. Good luck!!!
- kecupochren 1 year agoThanks! Those Cloud Guru courses look great and are also much more affordable than those from Linux Foundation. Replying to your other comment - yup, I do plan to get my hands dirty, either on my pet project or by helping out my DevOps colleague.
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.
- Emigre_ 1 year agoThat book is great, I own it myself and it's really good. But that book is more to learn the programming interface - so how the operating system works and the functions you would call for systems programming. It's an excellent book, but it's also more like a reference book. Apart from that, I would say that it's not related that much to devops as a job. It's more related to Linux systems programming.
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.
- kecupochren 1 year agoThank you. These tips are great. Offtopic but I love your simplistic website
- kecupochren 1 year ago
- Emigre_ 1 year ago
- kecupochren 1 year ago
- Emigre_ 1 year agoOne really important detail to mention. An advice or a personal opinion I have. Courses, books and theory are great; but practical experience is much, much better. Only when you are actually immersed in a professional environment doing things related to a particular topic will you really understand what that kind of job is really like, what practices are standard, how to use the tools, etc. In my humble opinion, go for it as soon as you have the chance! Don’t get bogged down in theory. It’s also important, but try no to be intimidated or feel underprepared. Jump into the pool. Good luck.
- willnonya 1 year agoThis theory and academic prep that you dismiss is actually pretty damned important. It lays the foundation upon which the experience becomes valuable. What you've suggested is taking the lazy way out on the premise that you don't really need to understand any of it as long as you can muddle through doing enough of it. It is not very good advice.
I do agree that experience is important but experience on top of knowledge is much more valuable.
- Emigre_ 1 year agoWell, don’t take it in the wrong way… I do agree that it’s important, and I’ve personally always made sure to learn lots of theory and do academic and other types of research. I agree with you that preparation and knowledge are super important.
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.
- appplication 1 year agoI actually agree with your original point. I think more people are at risk for not reaching their goals due to analysis paralysis (too much studying, not enough doing) than they are due to too much doing not enough studying.
I see this all the time with people looking to transition into software development. Everyone wants to take some courses and show their completion certificates as a reason why they should be hired. But most companies care about actual experience. How familiar are you with it really?
Theory is important, but you can be a perfectly fine mid level/mid proficiency dev ops engineer with just about none of it.
- willnonya 1 year agoI can only take it the aybyou wrote it regardless of the intent.
The 3xperi3nce and mentorship are obviously important to your success but it's popular for people to try and rely solely on those because it is less effort than learning the mechanics of the subject and often allows people to place rhe blame for their failures on others.
If you want to master something you need both the academics and the experience. Either of them alone leaves you at a disadvantage.
- appplication 1 year ago
- Emigre_ 1 year ago
- willnonya 1 year ago
- znpy 1 year agoDevops engineering is essentially automated linux system administration, but you don’t mention that anywhere in your post. Give linux system administration a good chunk of your effort.
Source: have worked as a devops engineer in the past, for a few years.