Ben Burns | Missing Skills
There are many tools and techniques that you pick up through osmosis over the course of your CS education. Many of these tools are extremely useful (if not necessary) to be a successful student, intern, or undergraduate researcher, yet are not addressed or explicitly taught by any course in the UMass curriculum. Examples of such tools include:
- UNIX commands/fluency
- The shell/bash
- git
- Github (and general remote development)
- Editors (including vim, nano, emacs, and IDEs)
- regex
- LaTeX
There are university courses out there that address this issue, such as Missing Semester at MIT and GPI at CMU. Although you could asynchronously follow along with these courses on your own time, many of these skills are best learned by directly applying them. You can memorize as many vim or LaTeX commands as you want, but the most effective way to learn to use them is by using them.
That's ultimately what these courses provide: a hands-on environment with staff support to get students past the initial, steep climb of learning certain tools. The earlier in your CS education that you can obtain basic fluency with the command line or learn how to maintain your projects with version control, the easier of a time you will have managing upper level coursework. Plus, it's always useful to try new things, figure out what tools you like, or what tools you don't like.
I am one of a group of UMass undergrads proposing a new "Missing Skills" course to teach the above skills and more. The course would consist of in-person, interactive sessions, each walking through the basics of a particular set of tools. The course would be available to all students who have completed CICS 110/CS 121.