Missing semester: singular?

Though I have a science background, I don't have a formal computer science education at all. In that sense then, a course entitled "The Missing Semester of Your CS Education" is an underestimation.

In my case, they're all missing semesters. (I'd love to learn more and I do keep trying to learn what I can at work, and pick up new things in my spare time.)

But, looking over the course syllabus, I realised that, actually, I'd already covered a fair amount of what it covers. Much of this had been via learning at work, often from colleagues telling me about particular tools. That actually sold the course to me: I was already aware that some of the chosen topics were particularly useful. So, I figured, what I didn't know might be worth knowing too.

The central theme of the course is around the tooling that developers, especially on Linux, might use while developing software, or working at the command-line. The course covers: working with the command-line shell and shell scripting, text editors, version control with Git, using debugging and profiling tools, and a little introduction to cryptographic tools.

Course format

With eleven lectures of about an hour each, the course is well presented and not too lengthy. The lecture notes available on the course site are a useful reference and usually fairly comprehensive. The notes don't always cover everything in the lectures, particularly where there are worked examples. But, a skim through the notes should give you a good impression of what's discussed, if you prefer reading to videos.

What I liked about the course

  • Many of the lectures are self-contained. There are a few that are easier to follow with some basic command-line shell knowledge, but that too is covered in the first couple of lectures.

  • Consequently, this means the course works well as a survey of topics. There is a little detail imparted to give you some deeper background, and sometimes other recommended readings. However, the level of presentation and the rate at which the material is worked through is very approachable without being overwhelming.

  • The exercises for each lecture apply the ideas covered in a very direct and practical way. Despite the problems being artificial, it is possible to envisage that you might solve real problems with similar approaches.

Do I recommend it?

Yes, definitely. It will probably take about ten to twenty hours covering this material, depending on whether you watch all the videos or just read the notes. I should emphasise again that, even if you don't want to go through the entire course, you can easily pick out the few lectures that might interest you.

I did learn a few things that I didn't know. And the exercises allowed me to try working with some tools I hadn't used before (e.g. Linux kernel cgroups).

If you're an experienced Linux developer and constantly keep up-to-date with tools, there may not be much new here. However, for developers starting out, those who are starting to use Linux, those who are still in education or those, like me, who think they might have some knowledge gaps, this course is a nice compliment to other learning resources.