State of my Cloud Journey: Nov 30, 2021
Tags: cloud, learning, jobsearch
Published: 2021-12-01 05:16:56

The Thanksgiving break here in the U.S. meant I had a few extra days off from work (in addition to the sick day I took as I recovered from the COVID booster and flu shot). I took advantage of this time to make more progress along my learning paths, and to review some suggestions I've received about how to improve my job prospects.

## Learning Paths 📚

_CS50x_

Algorithms! Seems like a big scary word, but they're just methods for solving problems. This week, the course covered search (linear and binary) and sort (selection, bubble, merge) algorithms, as well as covering recursion. Thankfully, I'd already seen some of this in the Stanford course I started last month, so this felt fairly familiar. I appreciated the different take on explaining big-O and Omega notation.

The second half of this week's problem set gave me fits, as I had to implement a simplified [Tideman-style](https://en.wikipedia.org/wiki/Tideman_alternative_method) election using the course's boilerplate code as a base. I chose to implement a bubble sort where a sorting method was called for, since the possible data set to be sorted maxed out at 36 items; had the data set been larger, I would have preferred using a merge sort for its logarithmic run time.

The "locking in" of candidate pairs also required some recursion to avoid closing any loops of candidates (for example: A beats B, B beats C, C beats A). This last step took quite a lot of thinking and a pair programming session to figure out, partly because I hadn't thought to use recursion at that point. In retrospect, the solution seems obvious.

For the curious, this problem's instructions are [on the CS50x website](https://cs50.harvard.edu/x/2021/psets/3/tideman/) and my solution code (with a few extraneous notes and a number of debugging printf statements) is [in my CS50x GitHub repo](https://github.com/aeversme/cs50x/tree/main/week3/pset3/tideman).

_DevOps in the Cloud_

With Ansible working, the course moved on to using Jenkins. After installing Jenkins on the Cloud9 instance (upon which everything has been developed) using Ansible, I got to see how to set up Jenkins manually. Given the integration with GitHub and Terraform Cloud, there were quite a few steps involved to get all the permissions ironed out! In the end, though, I had a Jenkins project configured to pull source files from a GitHub repository, run a `terraform apply` and then execute an Ansible playbook. Next step: automating the pipeline!

_GitHub Learning Labs_

I also spent part of my weekend going through several of GitHub's own tutorial labs. In particular, I was interested in learning more about pull requests, branching, and merging. This will hopefully come in handy as I revisit my ETL project in the month of December with the aim of cleaning things up and improving it.

## Job Search 🔎

This was not a week of big progress on the job search front. For now, I think I may give up on 'resume roulette,' as it doesn't seem to be getting me anywhere (even with entry-level jobs that seem like a perfect fit for my knowledge and interests). It has been disheartening, to say the least, to only be rejected or ghosted. A new approach is clearly needed.

I am still thinking about what that approach might entail beyond some resume cleanup and revisiting my 'best' project for some tweaking... 🤔

_0 applications; 0 interviews; 0 rejections_

## Wrap-up 🍩

I am pleased with some of my progress, and I hope to capitalize on that momentum to bolster my efforts in other facets of this career change adventure.

_Onward and upward!_