A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. RFC1392, the Internet Users’ Glossary, usefully amplifies this as: A person who delights in having an intimate understanding of the internal workings of [any] system, computers and computer networks in particular.
Beginning around the fall of 2008, my third year here, I began hosting a weekly “hacking session” that meets in the IKM Lab from 8pm-midnight. The goal of the hacking session is to attract students to get involved in programming just for the fun of it. I’ve continued this every semester since then and it is one of my favorite times of the week. Here are some more of the reasons I keep this up:
- Scheduled class times are too short to do real programming
As I tell students, about 90% of the time programmers spend programming is being stuck on some problem or another. It’s generally very difficult to predict how long it will take to get unstuck, and the best programming work generally requires long blocks of focused time, generally at least 90 minutes or more. Our weekly class times don’t allow people to get into the groove. The hacking session provides this longer block of time to really get into a project.
- It’s much easier to meet with students in the late evenings
Students are busy during the day with classes, and during the early evenings with clubs and other activities. Students generally keep late hours and it is much easier to get students together for a longer block of coding if it is scheduled after 8pm.
- I get a chance to model what the life of a programmer is like
Class time is much too structured to really give students a feel for how programmers in industry spend their time. Students frequently bring challenges to me that I don’t know how to solve off the top of my head. Sitting together at a computer, we can meet these challenges together and they can watch firsthand the type of problem solving I employ when trying to make progress on a coding project.
- It’s fun
And truly, this is what I really want to impart to students–the joy of doing real problem solving that yields immediate tangible results. It’s such a rush to see your program finally run and do the cool thing you wanted it to do.
Hacking sessions are generally well attended. On sparse nights we get five to seven people, and on busy nights we’ve had more than fifty. Other professors have joined us on occasion, such as Dr. Salib and Dr. Radziwill. We work on class projects, senior projects, and other pet projects from outside of class. This is a true example of students getting engaged in an academic activity just for the fun of it, and is one way that I contribute to increased rigor and academic culture at JMU.