Learning DevOps - Perseverance vs. Proper Foundations
Climbing at Jackson Falls, Illinois

Learning DevOps - Perseverance vs. Proper Foundations

Introduction

While I was on my first "real" vacation in literal years (defined by lack of internet), I had the amazing chance to do some outdoor rock climbing. I climb indoors frequently, but outdoors is tough for me to do due to my hectic schedule. While I was climbing, I had a climb that was extremely difficult to do. I wasn't sure I'd be able to finish it. It finally dawned on me that the reason I couldn't make the next move is because I had skipped a very crucial move before. Since I had skipped this move, which means I had lifted my foot higher than it should have been, my knee was closer to my arms than it would have been otherwise. This caused my center of gravity to be too far from the wall and it didn't allow me to make the next reach without significant effort. I ended up having the belayer, or the person controlling the rope, lower me back to the move I had skipped, which allowed me to make the next appropriate reach much easier. Had I continued to just "persevere" I wouldn't have only tired myself out, but I would also have risked injury as I attempted to "force" my way to the next move.

Perseverance

So what, exactly, does this have to do with learning?! Well, strap in, I'm going to break it down! My courses on Docker, Terraform, Ansible, Jenkins, and other DevOps tools have thousands of students enrolled. I've answered thousands of questions and provided one-on-one assistance to many of these students. I love what I do! But, I do find one very troubling commonality in a lot of the questions. Many of the questions I get aren't actually related to the technology I'm teaching, but to technologies that should have been learned much earlier. Technologies such as Bash scripting, networking, security, and more. Many people are under the impression that "learning as you go" and "just keep pushing" are the right moves. These approaches can "kinda" work, but the are definitely not efficient. If you don't know Bash and you're writing a simple local-exec script in Terraform (these should be used sparingly, but they have utility!) that utilizes Bash, you are now having to learn Bash AND Terraform, not just Terraform. This causes your brain to use cycles it should be spending on Terraform to understand Bash. This also separates you from the task at hand and leads you to feel a little more "detached" from what you're doing. Before you know it, you have no idea how any of it works and even the simplest concepts have become convoluted. This is not great! And if you continue to "push harder", you end up burning yourself out and never getting where you need to go. Now, is this worth the couple of months necessary to get a decent foundation? Absolutely not.

Foundations

Foundations are absolutely crucial when using technology, such as Terraform or Ansible, that abstracts the underlying pieces. All Ansible does is utilize Python modules to perform operations on a system. If you don't understand what these operations are accomplishing, Ansible will be extremely difficult to understand and troubleshoot. When you are becoming an engineer (and expecting $100k+), you need to understand what is happening behind the scenes. You don't necessarily need to be able to program an Ansible clone to use Ansible, but you do need to understand what exactly is being changed and why. The same goes for Terraform, Docker, Kubernetes, and more! All of these tools are abstractions. You need to understand the networking concepts in order to route information to its destination properly, you need to understand subnetting to know the proper IP address space to give, you need to understand security to protect your infrastructure, you need to understand Linux because all of this still runs on Linux! These are all unbelievably important skills that a lot of people think they don't have to learn. Trust me, just like my climb, it is going to be a lot more difficult to learn if you try to skip steps. There are so many amazing resources to help you learn these things, so spend the few weeks it takes for each foundation, and learn it!

Conclusion

In conclusion, please keep these concepts in mind. Perseverance is great, but strategy is better. Don't burn yourself out trying to Google every single little thing when there are extremely well laid out learning paths that can help you get where you need to go with a lot less effort. Your brain will thank you!


About Derek

Derek Morgan is an Infrastructure and IoT Engineer and the author of several DevOps courses that can be found on the More than Certified website at:

https://courses.morethancertified.com

Jonas Steinberg

Principal Engineer at RBI

2 年

I feel like this is something *you* struggled with previously ?? I feel that way because *I* always reinforce the fundamentals with my teams because I skipped steps in the beginning.

回复
Gabriel Ang

Cloud DevOps Engineer at Kx Systems | AWS Certified Solution Architect Professional | HashiCorp Certified Terraform Associate

2 年

Thanks for the insightful advice Derek Morgan I have started climbing a few months back so I love how you link it to how we should approach the technology space. To be a better climber, I have been slowly working on my techniques and this has definitely help me climb higher grades( up to V4 indoors now!) If that works, the same principles can be applied to how we learn our technologies. Solid advice overall! :)

Saeed Hersi CIPM

Data Privacy | GDPR | PDPL |

2 年

Excellent points mentioned! Thanks Derek Morgan So where would you direct someone looking to get those fundamentals?

Samia Shafique

Cloud/DevOps Engineer

2 年

This is amazing advice! Much needed for people like me who are new to the cloud or doing a career switch. Thanks Derek!

Khalid B. Khan

Lead Cloud Platform Engineer @ American Family Insurance | CCNP, Azure Network Engineer

2 年

Brilliant advice Derek! (Now for the more important question: is that you climbing the rocks? ??)

要查看或添加评论,请登录

社区洞察

其他会员也浏览了