Here’s part 2 in my series on fantastic blog posts written by other people! See part 1 for more favorites.

  • Peter Seibel proposes an approach to code reading that doesn’t treat pieces of code like literature. Some people make the following argument: you would never meet a novelist - a writer of novels - that didn’t read novels. Nor should we ever meet programmers - writers of code - who never read code. The problem with this argument, though, is that novels are written in order to be read by humans. Computer programs are written to make a computer do a thing. So to learn from other people’s code, we shouldn’t read it - we should decode it. We should act like naturalists and treat the code like specimens. I think studying/decoding something takes a lot more time and mental energy than reading something, but it makes total sense that this approach would make it easier/less frustrating to learn from other people’s code.

  • I love Jeff Leek’s post explaining what Nate Silver meant when he wrote that Obama had a 75% chance of winning the 2012 election, based on a giant analysis of lots of poll data. Jeff illustrates important statistical concepts (like variability) with a simple simulation. This post is written for a general audience (not an audience consisting only of statisticians). I wish more people wrote posts about scientific/technical/statistical concepts for general audiences, since these concepts pop up in big, culturally-important news stories from time to time. Also, fun fact, this post isn’t recent (it’s from October 30, 2012 - just days before the election!), but I read it recently, so it makes the list.

  • I read Mary Rose Cook’s introduction to functional programming this week, and I finally understand what functional programming is! I was so excited! The line in the post that did it for me: “Ignore all that. Functional code is characterised by one thing: the absence of side effects.” Now I can legitimately laugh at this XKCD. I also now know that most of the code I write is not in a very “functional” style: production of a plot is a side effect. Changing data is a side effect. The post is quite detailed and technical, but it’s very good.

  • I really enjoyed S. Dawn Casey’s post about starting the journey toward being a software developer. She writes: “I can write little scripts that do stupid things, but I can’t figure out how exactly this makes the internet work. At all.” I felt exactly this feeling right around week 2 of Hacker School, when I could write games and functions and scripts all day long but didn’t really know how to make a usable piece of software. I loved reading about someone else’s experiences with that learning process.

  • Julia Evans perfectly describes what Hacker School is like in this post. She did such a great job capturing the essence of Hacker School. The post isn’t overly long, but it contains exactly the right amount of detail: it identifies at least 10 qualities that make Hacker School magical. Read the post. It’s so good.

  • Did you ever want to make all the pages on your internet be cats? Now you can! Monica made a DNS server that exclusively serves cat pictures. I’m really really starting to love reading posts along the lines of “I didn’t understand this Thing one day. I felt bad about this so I read the internetz, but then I got confused about A, B, and C.” The end. It’s also fun if the post continues thusly: “I wrote some totally non-functional code and got super frustrated, but THEN I figured out how to solve A, partially address B, and work around C. Now I have a much better understanding of Thing. Here is a hilarious project demonstrating said understanding!” Monica’s post is totally like this. It’s about a project she did to understand DNS servers better. Also the URL at the end of the post is “go cat DNS go” which is way awesome.

  • I really liked Roger Dudler’s beautiful, simple introduction to git. It covers everything you need to know to get started, with the possible exception of undoing a commit / resetting the repo to a specific commit. (I’m thinking of git reset and rebase). There’s even a pretty pdf you can download for reference! Super great.