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 curriculum. Examples of such skills include:
- UNIX commands/fluency
- The shell/bash
- Github (and general remote development)
- Editors, such as vim, nano, emacs, or IDEs
- Typesetting (i.e 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 that certain tools possess. 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 once your coursework gets more involved. Plus, it's always useful to try new things and figure out what tools you like, or what tools you don't like.
I (and couple other UMass students) have proposed a new "Missing Skills" course to teach the above skills and more. The course would consist of in-person, interactive sessions 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. If you wish such a course existed or would be interested in taking such a course, please email me at bburns AT umass DOT edu.