Tuesday, July 4, 2023

Unlocking the Coder Within: A 5-Step Journey for DevOps/SRE/Platform Engineers


Many DevOps/SRE/Platform Engineers, despite possessing extensive knowledge and familiarity with a variety of programming languages, often refrain from identifying as coders. This phenomenon may seem perplexing, given their technical expertise. Is there a way to shift this perspective? I propose a 5-step plan to guide any DevOps/SRE/Platform Engineer on their path to embracing their potential as proficient programmers.

Step 1: Unearth Your Passion: Solving Problems that Matter to You 

DevOps/SRE/Platform Engineers often exhibit a tendency to comprehensively explore tools, striving for a deep understanding that empowers them to solve potential problems rather than simply applying solutions. This enthusiastic pursuit of knowledge frequently leads to a broad but surface-level familiarity with many languages, epitomized by the ubiquitous 'hello_world' exercises. To deepen this proficiency, one effective strategy is to identify a genuine problem, one you encounter in your own work or interests, and apply your skills to solve it. Aim for practical, tangible outcomes rather than abstract, theoretical mastery.

Step 2: The Power of Persistence: Embracing a Language Wholeheartedly

DevOps/SRE/Platform Engineers are often praised for their ability to adapt quickly to various programming languages. However, this skill can sometimes lead to a premature transition from one language to another before a deep understanding of any particular one is achieved. To truly master a language, it's essential to choose one and persistently engage with it, even in the face of obstacles. Try to resist the temptation of shifting to a new language merely because it's currently popular. An effective strategy to support this learning process is to create a multitude of small programs that exercise different facets of the language. Saving these programs in a source control repository will enable you to review and track your progress over time.

Step 3: Beyond Scripting: Recognizing the Depths of Programming

For DevOps/SRE/Platform Engineers, scripting often comes as second nature, acting as a powerful mechanism for linking disparate tools together. However, it's important to distinguish between scripting and programming, as the latter involves a broader scope of tasks and complexities. This differentiation tends to become clearer when one starts programming in a non-shell language, where the challenges and the depth of understanding required go beyond the customary tasks associated with scripting.

Step 4: The Art of Leveraging: Using Modules and Libraries Isn't Cheating

Leveraging modules and libraries in your code is far from any form of short-cut or dishonesty. Rather, it exemplifies smart and efficient coding practices. These pre-existing pieces of code are akin to building blocks that you can assemble to effectively achieve your objectives. So, feel empowered to use them confidently, as they are vital tools in your programming toolbox.

Step 5: You Are Your Own Benchmark: Ignoring the Noise and Coding Your Way

A significant obstacle to coding can often be the apprehension about potential criticism or the fear of making mistakes. However, the key is to maintain focus on your primary goal: creating functional programs. Place your emphasis on solving problems effectively and efficiently, rather than conforming strictly to a particular coding style or syntax. After all, the utility and effectiveness of your code is the paramount consideration. As your confidence and skill grow, adherence to common practices and style will come naturally.

Achieving Your Goals with Unwavering Clarity

Achieving Your Goals with Unwavering Clarity When it comes to enhancing personal productivity, the power of clarity cannot be overstated. The first step to becoming a high achiever involves laying a foundation of crystal-clear goals in each aspect of your life. Just as a traveler needs a map to reach their destination, we need a clearly defined path to realize our ambitions. 

Understanding what you want to achieve is the essential precursor to productivity. Those who excel and outperform others often have one thing in common: they maintain a laser-like focus on their objectives, refusing to be swayed by distractions. This clear-eyed concentration on their goals allows them to maintain momentum, perform tasks more efficiently, and, ultimately, reach their targets faster.

However, clarity alone isn't enough - a detailed roadmap is necessary to navigate the journey towards your goals. By breaking down your objectives into achievable steps, you take the guesswork out of the process. This strategic planning not only propels you forward but also acts as an antidote to procrastination. After all, it's much easier to start a task when you know exactly what needs to be done.

In conclusion, enhancing your personal productivity and achieving your desired outcomes begins with a clear vision of what you want. Stay focused on your goals, outline the steps required to reach them, and dedicate yourself to the task at hand. This methodology not only aids in overcoming procrastination but also expedites the journey towards your goals. Remember, success is a journey, not a destination. Each completed task is a milestone, bringing you one step closer to your ultimate objective.