<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Theophilus Shekwo Sakoma</title>
    <description>The latest articles on DEV Community by Theophilus Shekwo Sakoma (@cybercodeng).</description>
    <link>https://dev.to/cybercodeng</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3709949%2Fb693b7a5-9fff-49c7-96a5-adcd39b2ccca.png</url>
      <title>DEV Community: Theophilus Shekwo Sakoma</title>
      <link>https://dev.to/cybercodeng</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cybercodeng"/>
    <language>en</language>
    <item>
      <title>Starting From Zero: My First Real Win Learning Cloud &amp; DevOps on Windows</title>
      <dc:creator>Theophilus Shekwo Sakoma</dc:creator>
      <pubDate>Wed, 14 Jan 2026 00:54:10 +0000</pubDate>
      <link>https://dev.to/cybercodeng/starting-from-zero-my-first-real-win-learning-cloud-devops-on-windows-1f0o</link>
      <guid>https://dev.to/cybercodeng/starting-from-zero-my-first-real-win-learning-cloud-devops-on-windows-1f0o</guid>
      <description>&lt;p&gt;I will become very proficient at DevOps and Cloud. No doubt! So, I want to proudly look back and see the little wins I started with.&lt;/p&gt;

&lt;p&gt;On January 1st, I officially began my Cloud and DevOps learning journey—from absolute scratch.&lt;/p&gt;

&lt;p&gt;No prior DevOps background. No shortcuts. Just a deliberate decision to build real engineering skills the right way, starting with environment setup and tooling—the foundation many people underestimate but every serious engineer depends on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This post documents my first technical win. Not because it was impressive, but because it revealed how I approach problems when I do not yet have the experience to rely on.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day One: Building a Real Dev Environment From Scratch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My first major task was to set up a complete local development environment on Windows using Chocolatey through Windows PowerShell.&lt;/p&gt;

&lt;p&gt;The objective was clear: automate the installation of the core tools required for Cloud and DevOps learning, rather than relying on manual installers.&lt;/p&gt;

&lt;p&gt;The tools included:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;VirtualBox&lt;/li&gt;
&lt;li&gt;Vagrant&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Amazon Corretto 17 (JDK)&lt;/li&gt;
&lt;li&gt;Maven&lt;/li&gt;
&lt;li&gt;AWS CLI&lt;/li&gt;
&lt;li&gt;IntelliJ IDEA Community&lt;/li&gt;
&lt;li&gt;Visual Studio Code&lt;/li&gt;
&lt;li&gt;Sublime Text&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This approach was intentional. I wanted early exposure to the command line, package managers, and reproducible setup—skills that matter in real engineering environments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1muifzr6ocrwn683xug.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1muifzr6ocrwn683xug.png" alt=" " width="800" height="478"&gt;&lt;/a&gt;&lt;br&gt;
Caption:_ “Using Chocolatey in PowerShell to install core Cloud and DevOps tools from scratch.”_&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Wall: When Automation Fails&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Almost immediately, I encountered my first real obstacle.&lt;/p&gt;

&lt;p&gt;PowerShell consistently failed to install VirtualBox and Amazon Corretto 17. The commands executed, output scrolled, and then—failure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq5o81a46n410e495htrf.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq5o81a46n410e495htrf.jpeg" alt=" " width="800" height="553"&gt;&lt;/a&gt;&lt;br&gt;
Caption:_ “Installing VirtualBox using Chocolatey command on PowerShell failed.”_&lt;/p&gt;

&lt;p&gt;At this point, I lacked the mental models to quickly diagnose low-level installation issues. Error messages referenced components I had never heard of. Being new to command-line installations, I could not immediately tell whether the issue was my syntax, Chocolatey, Windows, or the tools themselves.&lt;/p&gt;

&lt;p&gt;I was stuck for nearly two days.&lt;/p&gt;

&lt;p&gt;Rather than blindly retrying commands, I paused, stepped away, and focused on other learning tasks. That decision—stepping back instead of forcing progress—proved valuable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Breakthrough: Discovering the Missing Dependency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I returned to the problem, I examined what VirtualBox and Corretto 17 had in common.&lt;/p&gt;

&lt;p&gt;Both rely on native system dependencies.&lt;/p&gt;

&lt;p&gt;That led me to the real issue: my system did not have Microsoft Visual C++ Redistributable installed.&lt;/p&gt;

&lt;p&gt;After confirming this, I downloaded and installed the latest version directly from Microsoft’s official website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56rqvesb5r0lc2m3s5dz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56rqvesb5r0lc2m3s5dz.png" alt=" " width="800" height="76"&gt;&lt;/a&gt;&lt;br&gt;
Caption: &lt;em&gt;“Microsoft Visual C++ Redistributable installed — the missing dependency behind earlier installation failures.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retesting the Installation (Holding My Breath)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With Visual C++ installed, I returned to PowerShell.&lt;/p&gt;

&lt;p&gt;First, I reran the command to install VirtualBox.&lt;/p&gt;

&lt;p&gt;This time, there were no errors.&lt;/p&gt;

&lt;p&gt;No failures.&lt;br&gt;
No warnings.&lt;br&gt;
Just a clean, successful installation.&lt;/p&gt;

&lt;p&gt;VirtualBox is critical to my learning path. It will power the virtual environments I use to learn Linux, networking, and infrastructure fundamentals—core skills for Cloud and DevOps engineering.&lt;/p&gt;

&lt;p&gt;Encouraged, I immediately reran the installation for Amazon Corretto 17.&lt;/p&gt;

&lt;p&gt;It installed successfully as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvj47ump0rowlz42lv2th.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvj47ump0rowlz42lv2th.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Caption: &lt;em&gt;“Previously failed Chocolatey installations now completing successfully after resolving system dependencies.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Win Matters to Me&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This experience was not about installing software.&lt;/p&gt;

&lt;p&gt;It was about learning how systems fail—and how to approach failure when the answer is not obvious.&lt;/p&gt;

&lt;p&gt;I did not have prior expertise. I did not instantly recognize the root cause. But I stayed with the problem, researched dependencies, validated assumptions, and fixed the underlying issue rather than applying random fixes.&lt;/p&gt;

&lt;p&gt;That is the work.&lt;/p&gt;

&lt;p&gt;This moment gave me confidence that I can grow into this field, because the skill that matters most—problem-solving under uncertainty—is something you develop by experience, not tutorials.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why I’m Documenting This Publicly&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I am documenting this journey intentionally and publicly for three reasons:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First,&lt;/strong&gt; accountability. Progress compounds when it is visible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second,&lt;/strong&gt; signaling. I want hiring managers to see how I think, not just what I know today.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third,&lt;/strong&gt; trajectory. Tools change. Fundamentals, mindset, and learning velocity endure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This post is not about celebrating a setup task. It is about capturing the earliest evidence of engineering thinking in action.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Comes Next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With my environment now stable, I am moving into:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;inux fundamentals using virtualized environments&lt;/li&gt;
&lt;li&gt;Infrastructure tooling and automation&lt;/li&gt;
&lt;li&gt;Cloud fundamentals with AWS&lt;/li&gt;
&lt;li&gt;DevOps workflows and systems thinking&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I will continue documenting both progress and obstacles—because real growth happens between “it failed” and “it works.”&lt;/p&gt;

&lt;p&gt;If you are a recruiter, hiring manager, or engineer who values deliberate learners and long-term growth, feel free to follow along.&lt;/p&gt;

&lt;p&gt;This is only the beginning.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>linux</category>
      <category>devops</category>
      <category>career</category>
    </item>
  </channel>
</rss>
