«Fundamentals, fundamentals, fundamentals. You’ve got to get the fundamentals down, because otherwise the fancy stuff isn’t going to work.»
A colleague recently pointed me to this course: “The Missing Semester of Your CS Education“.
The course description reads:
Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their own: proficiency with their tools. We’ll teach you how to master the command-line, use a powerful text editor, use fancy features of version control systems, and much more!
Students spend hundreds of hours using these tools over the course of their education (and thousands over their career), so it makes sense to make the experience as fluid and frictionless as possible. Mastering these tools not only enables you to spend less time on figuring out how to bend your tools to your will, but it also lets you solve problems that would previously seem impossibly complex.
I totally agree with this argument and (after watching the first lecture) — yeah, that’s something many computer science students can profit from. Sure, some will already know much or all of it, but for many it will be … enlightening. For me, I knew many of the stuff that was covered first but was surprised by some of the later stuff. The usual problem here is not to miss when you have to pay attention and the new stuff begins. But that’s what videos are for … just rewind a few minutes.
The course covers:
- The shell
- Shell Tools and Scripting
- Editors (Vim)
- Data Wrangling
- Command-line Environment
- Version Control (Git)
- Debugging and Profiling
- Security and Cryptography