Learning Cloud Engineering with Learn to Cloud

A few days ago, I saw tweets about AI companies’ infrastructure plans and the engineers needed to support them. They reminded me of something I had been putting off: learning DevOps.

I’m a software engineer who builds web and mobile applications. I want to understand more of the infrastructure those applications run on, and this felt like a good time to start. Cloud engineering and DevOps are still areas I’m learning.

There are plenty of resources to choose from. I picked Learn to Cloud because it’s free and gives me a structured path to follow.

The first two phases #

The curriculum currently has eight phases, numbered 0 through 7. It starts with the basics, Linux, and networking, then moves into programming, cloud deployment, DevOps, security, and job preparation. There is also a verification workspace for submitting work and getting feedback.

I’ve finished Phase 0, Starting from Zero, and Phase 1, Linux and Bash. Each took me one day.

Phase 0 felt like a checkbox for me. Phase 1 gave me more to work through: a capture-the-flag (CTF) lab on a temporary EC2 instance. The challenges involved logs, /etc/passwd, Base64, SSH keys, cron, process environments, and nested archives.

I hated the CTF. I wanted to build something, and hunting for hidden flags felt like a detour. But it did expose gaps in how I investigate a Linux system.

I already use the command line for development, so ls wasn’t the lesson. The useful part was figuring out where to look when I wasn’t root, a filename was misleading, or the information was tucked away in a process environment.

Two mistakes worth remembering #

The first was an SSH mistake. I ran ssh-copy-id on my Mac against localhost. That targeted my own machine; the lab instance was the machine that needed the key.

The lab account required key-based authentication, so I couldn’t rely on a password login to copy the key over. I needed to put my public key in that user’s ~/.ssh/authorized_keys on the instance using an access method I already had, then connect with ssh -i and the matching private key.

Before looking for a more complicated explanation, check the search term.

Cleaning up and moving on #

The lab was created with terraform on AWS. They offer free tier so I use it. Then, after finishing the lab, I ran terraform destroy. It removed 12 resources, and the instance was gone before I closed the laptop. Cleaning up was part of finishing the exercise.

I still don’t enjoy CTFs, but Phase 1 is done. Next is networking, then building something I can deploy. That’s the part I’m looking forward to: connecting what I learn about infrastructure to an application I can actually run.