Knowledge of the Second Kind
This post originally appeared on the Software Carpentry website.
Over the last three years, a group of students has quietly been converting snacks and enthusiasm into scientists who can program.
The Hacker Within is a student club at the University of Wisconsin — Madison which came about when a number of nuclear engineering graduate students needed a forum to exchange tools and share best practices for their increasingly software intensive research. The success that followed provides an example of an educational model that has fostered necessary software skills among science and engineering graduate students.
Knowledge is of two kinds. We know a subject ourselves, or we know where we can find information upon it.
—Samuel Johnson
Since 2008, we've met every other week for an hour to discuss some useful computing tool (and eat snacks). We cover a broad range of topics, from peer-taught fundamental skills to more technical invited talks. The meetings attract students mostly from engineering, biology, and physics, but also have regular members from less predictable fields, such as psychology and limnology (the study of lakes!). We also pool the skills of our members to teach three and four day intensive, example-driven bootcamps. These attempt to impart fundamental programming skills such as C++, UNIX, and Python, and focus on a great deal of curriculum inspired by Software Carpentry. The bootcamps have received great praise from attendees (who hail from a staggering array of disciplines, see this cool chart).
This bootcamp educational model has the advantage over a traditional course in that the time intensive nature of scientific coursework limits the feasibility of formal curriculum in software skills for scientists. That is to say, even if the right course were offered (and what would that be, exactly?), scientific curriculum leaves no room for a software development course (or worse, many). For this reason, students in scientific disciplines typically lack the software skills with which to conduct computational research effectively, but are unwilling or unable to invest time in formal training.
The current state of affairs in academic research is often one in which students and researchers are programming in a vacuum, teaching ourselves computational tools unfamiliar to peers in our fields, and then using those tools to do our 'peer reviewed' research. This toxic situation demands a real change in the way we educate students in preparation for scientific computing.
The Hacker Within community model has the potential to alleviate this situation in any institution that has a few individuals to spearhead it. A few snacks and some enthusiasm can replace a disconnected collection of researchers scattered across disciplines, with an inter-departmental forum in which those researchers can find and share knowledge efficiently with their peers.