There’s a big difference between a master mechanic and the guy at Jiffy-Lube who knows how to change your fluids; assembly language, C, C++, Java, and Lisp programmers; command line and GUI users; kernel programmers and Linux users. I’ve been using various flavors of *nix for the better part of 30 years, but as I look forward to the intensity of an operations role, I realize I’ve never really gotten beyond the level of advanced beginner.
I need to come up to speed – FAST – and so, I’ve started to plan out my curriculum. First come the books – they’re the easiest piece to define, get recommendations for, and prepare ahead of time. My boss recommended the following, which puts them at the top of the list:
These are high-level books, more about getting into the right frame of mind and understanding strategic goals than the nuts-and-bolts of tracking down a replication error or mitigating a DDoS. Which is fine – I absolutely need this. But I also need to improve my low-level knowledge. Administering my own site, I learned to install OSes, tomcat, apache, basic database administration, and so on – but the stakes were comparatively low, and I could get by with the bare minimum. It’s time to start leveling up.
I’m planning on working my way through a couple of resources. First, I’ve picked up a copy of the UNIX and Linux Administration Handbook. At 1300+ pages it’s a little daunting, and I don’t expect to remember how to do everything – but I do expect a) to remember what can be done, and b) to know where to find it.
Next, I’ll be going through the following websites:
Naturally, the most important part of my education will be the doing. Along these lines, one of my colleagues gave me some interesting advice. When he first joined the team, he would try to shadow-debug live-site issues in parallel with the engineers who were actually working on them. Once an issue was resolved, he’d examine the actual solution, and compare it with what he’d come up with. That’s a pretty hard core way to get a jump on real-world experience. We’ll see how things go.
Lastly, I’ll be putting together a set of notes on what I learn. When I first joined TripAdvisor, I created and maintained a document on our internal Twiki that described everything that had taken me hours to learn, but could have been explained in a couple of sentences. Though it’s since been superceded (and gotten a bit out of date), this page ended up being used as an onboarding document for years. Whether it’s just for myself, or more generally useful, putting together this kind of a cheat sheet is super helpful. I don’t want to make the same mistake twice, or have to look the same thing up twice, and if I can help others avoid the same loss of time, so much the better.
This is, of course, just the first draft of a plan that will likely not survive contact with experience. How can I improve it? I’d love to hear your suggestions!