SB apprenticeship: Day 11

Real programmers set the universal constants at the start such that the universe evolves to contain the disk with the data they want.

One of the interesting things about learning how to program is how much some of the other things I’m into make sense now. For instance, I’ve been reading XKCD for years, but honestly only understanding about a third to a half of them. The jokes about math or programming mostly went over my head, unless they were visual gags like the ‘compiling‘ one. When the comic above came out, in 2008, I not only had no idea what vim, emacs, ed or cat were, I didn’t even know what they were referencing. There’s nothing in that comic to explain what an editor is, or an IDE, or what the difference was, or why they were important. Which, of course, makes sense, Randall Munroe is a programmer and this is a comic for that audience. Also, to quote E.B. White, “Explaining a joke is like dissecting a frog. You understand it better, but the frog dies in the process.” But since I started learning to program, people will link to old comics and I find myself appreciating the humor in an entirely different way, and that is super cool.

  • What did you learn yesterday?
  • What are you going to do today?
  • What do you expect to learn?

Yesterday I worked on the Roman Numeral kata for the second time, and actually finished it! The first time I got super frustrated because nothing I was trying was making sense, so Brandon suggested that I work on Coin Changer some more. In one of her blog posts, Lindsey posted a link to a woman who worked through the kata in a way that really made sense to me, so I used that as a reference and managed to complete it. I was feeling pretty good about that, so I worked on adding tests to my 4×4 tic tac toe with Jordan for a bit, and then decided to tackle the next challenge: learning how to SSH into a server and post some static content. That…was a little less successful. The page describing the assignment was out of date, so I ended up needing Josh to sit with me for a bit and walk me though the terminal commands to get started, and just as I was nearing the end I discovered that using nginx to serve up an HTML file on a server required me to know Vim. Viiiiiiim….so daunting. (But see, that comic at the top was totally relevant!) Vim is an editor that I’ve heard is super awesome. Once you get the hang of it, it’s all keyboard commands to do what you want. It’s powerful and widely used…and has a learning curve roughly the size of Mt. Everest. The cheat sheet I found and printed out is seven pages long. Sigh. Still, I’ve known this day would come, and honestly I’m looking forward to learning Vim. I’m just a little nervous, is all.

Today I’m going to work on the SSH stuff. I’m not sure how much Vim I’ll actually need to know to get through it, but I have my cheat sheet in hand and am feeling ambitious. Also, yesterday I rewrote the documentation for the assignment and did a pull request for it. Ian is taking a look at it now, so if I need to make any corrections or add anything before it goes live I’ll do that.

I expect to learn enough Vim to be able to put a static HTML page on a server using SSH. Exciting!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s