~ Choosing from the many educational options in relaunching my tech career. ~ The FOMO is real. But it's a bad reason to keep trying to do everything. ~

The most recent time I was studying programming, I realized that I really care about back-end engineering: performance, security, APIs, architecture, scalability, stability. While other people were making their apps actually look like things grownups with good taste would use, I was figuring out salting and hashing and talking about OWASP standards. I remember saying, "You're not protecting your own server here; if you've already lost your passwords, it's too late. You're protecting the whole password ecosystem so that you never have to tell somebody that you lost the password to their PayPal account."

I also patched my servers regularly.


On the dev-ops side of things, ops is the sad younger cousin. When we do everything right, nothing happens. The servers stay up. Connections get connected. Security patches are applied, casual attacks are thwarted, your credit card stays hidden, and the world keeps running. You only notice us if we miss something.

Yay.

Yet this thankless task is exactly where I find myself directing my efforts. I really want to build infrastructure that is robust. Any problem that I can solve once, instead of thousands of people having to solve it over and over sounds like a good investment of time... and exactly what computers should be used for.

My Learning Plan

I recently fell in love with the power of The Cloud, especially the open source projects that support it. This is an approach that exemplifies, "Solve the problem once." Infrastructure as a Service? Security turned on by default? Meaningful visualization logs so your sys admin gets to go back to bed in a reasonable length of time when the server goes down? Now we're talking! Let's go.

I signed up for the "Cloud Computing Concepts," course at coursera.org, but it turned out to have a C++ prerequisite... it's not one of those languages that you just "pick up." (It is also one of the ones with which you can do a significant amount of damage, so worth being careful with.) I backed out of that course and started working on a C++ tutorial, and the Algorithms course in EdX. (I'm also using C++, for that because I said I was going to pick a language and actually learn it. Also, because it's FAST!!! I like fast.)

Currently the plan goes:

  • C++ intro
  • Algorithms
  • Data structures
  • Cloud Computing Concepts
  • Probably an intermediate C++ course
  • Cloud Computing Concepts II

I am split right now on the Infrastructure vs. Data question, but C++ and a solid core of algorithms is never going to hurt. Also, most of the "Cloud Computing Concepts" course turns out to be algorithms anyway... I guess that's why we need the C++.

Giving Things Up

It is hard for me to make this choice.

I was already in the middle of a Product Management course as part of my "closing the gaps" process, but I needed to decide whether to focus on the job title (it was my best guess) or the industry.

I'm trying to keep my Italian and French at the A2 level in hopes that I will eventually find willing people to torture practice with and level up to B1. I just managed to do two sets of 12 pushups for the first time, and I'm still working on my first 5K. (OK. Technically I did one 16 years ago, but that hardly counts for now.)

Something's gotta give.

Earlier in the year I was on track to read 90 books, but when I started down this Gap-Closing route, I realized I would have to let that goal go. I'm doing a lot of things more slowly than I could if I were doing one at a time; it took me a whole year to get my pushups from the bar at waist height down to the floor. I'm never going to be buff, not while I'm also doing this. I pretty much abandoned my garden this summer. I have squishy bananas in my fridge that are unlikely to become muffins. :(

I'm also probably going to have to drop my non-linear dynamics course, which is not an "always available" option. That one really hurts, because I think it's related to my career goals... it's just farther out. I'm interested in how Big Data behaves in non-linear ways and what sorts of phase transitions we trigger by manipulating it... in a non-trivial way. I'm concerned about the ethics of all this engineering of systems that we don't really understand. (Nothing is new there.)

What is new, and I only recently realized, is that computers are finally powerful enough for me to do the modeling that I wanted to do all those years ago when I was studying physics, sociology, and environmental ethics (not in the same year.) This makes it worth the effort to (re)build my technical capacities, even at the expense of banana bread.