On the evening of my twenty-first birthday, I was in the basement of the Science Center searching for a misplaced semicolon. If you think editors are sticklers about semicolons, try dealing with a computer. In many programming languages, semicolons mark the end of a line of code, so a single misplaced semicolon will cut off every;
See what I mean?
The clock was ticking past midnight, and I was still at work on a problem set for Computer Science 50: “Introduction to Computer Science I” (CS 50). Hopelessly mired in code, I had set up camp at the course’s office hours in the Science Center. (Semicolons were only one of my many bugs.) A teaching fellow had brought cupcakes with Microsoft logos emblazoned in the frosting, probably left over from a recruiting event. I took one—my substitute for birthday cake—and resumed my search.
Before enrolling in CS 50 as an elective this past fall, my programming experience amounted to exactly zero. The large introductory course is open to students of any level, but its Q Guide ratings (compiled from student evaluations) boast a “workload” score (4.1 out of 5) only slightly behind those of Math 55 and Intermediate Sanskrit I. And unlike most survey courses in the General Education curriculum, CS 50 is also the gateway course for prospective concentrators. It has “hacker”-level problem sets for the programming whizzes among my classmates. This is Harvard. Of course there would be programming whizzes.
Each fall I’d bookmarked CS 50 as a course option, and each fall I’d found some excuse to put it off. The real reason was my reluctance to take a course in which I felt behind even before it began. My initial fears were somewhat allayed by David Malan’s first lecture. He did something that no instructor I’ve had before ever did: he encouraged us to take his course pass/fail. He invoked his own trepidation when, as an undergraduate in 1996, he had enrolled in CS 50. “Even I probably wouldn’t have taken it if I hadn’t taken it pass/fail,” he told us. “I literally switched it to letter-graded on the last possible day.” Of course, now he teaches it.
Among Harvard courses, CS 50 is fairly unusual in being both demanding and entirely accessible to the beginner, which is Malan’s goal. He made clear that the course was not graded on a curve. Even the existence of those “hacker” problem sets speaks to the course’s aim of catering to students of all levels. Last year, Malan proposed having CS 50 graded satisfactory/unsatisfactory for all students. Though unsuccessful, that did send a message about the course around campus. “I think at Harvard there just isn’t a culture of taking courses pass/fail,” he says, “and there just isn’t a culture of exploring courses beyond your own field of concentration and areas of interest.”
The clichéd advice we all received at high-school graduation was that college is a time to explore. At times though, like Malan, I’ve found a mentality at Harvard that subtly discourages this. It is not a lack of opportunity—opportunities compete for space on every poster board on campus—but perhaps a way that high-achieving Harvard students tend to think.
It comes down to opportunity cost. In high school, each of us found things we were relatively good at, and it made sense to continue pursuing those things until we became great at them. (Programming is not one of those things for me.) We have limited time at Harvard, so why jump into something new—something we probably aren’t good at by virtue of its being new? Harvard usually caters to the very best. This is why comping the most esteemed extracurriculars is so competitive and why being a math concentrator without having taken calculus in high school seems nigh impossible.
Yet there are exceptions. My friend Riva Nathans is a theater geek who can always find an occasion to quote from her favorite play, Tom Stoppard’s Arcadia. So I was surprised to learn that she had first read Arcadia the summer after her sophomore year, and that only after falling in love with that play did she begin doing theater in earnest. Prior to and for the first couple years of college, Riva danced, and it was through dancing that she got her first theater role. “In dance, I wouldn’t worry about auditioning and not getting anything,” she said. “But when I went to theater, in which I had no experience, I had the first experience of failing at auditions.” She felt conflicted between what she was good at and what she wanted to do.
At the start of fall semester, Riva was fretting about her application to a creative-writing class—another area at Harvard in which the high barrier to entry can discourage beginners. By then, she had worked on several shows and stage-managed a very successful production of The Pillowman. She got into the class. At the end of the semester, she said to me, “I finally turned an idea I had into a play for my writing class and realized that is what I would like to be doing—more than anything else.”
When I was at home over winter break, reflecting on the past semester and bored enough to pick up magazines for which I am decidedly not in the target audience, I ran across an article in GQ about Silicon Valley start-ups. Programmers like to talk about friction as a measure of difficulty—the number of clicks it takes to register for a service, for example—so the ultimate goal is to reduce friction. This is the wrong way of going about things, says the article’s author, Devin Friedman, while noting that the people he meets in Silicon Valley—the creators of technology—seem extraordinarily happy: “The act of creation is maybe the most frictive thing going. Using the stuff is meant to be frictionless, but making it isn’t. And their happiness comes from friction. Most happiness probably comes from friction.”
Indeed there were times for me when the process of fixing a bug scraped along like sandpaper. When I read the article over winter break, I was working out a few kinks in my CS 50 final project because I wanted to publish it online for other people to use. My project is an extension for Google’s Chrome, a Web browser that allows users to search and visualize their own browsing histories. There are thousands of such Chrome extensions available for download, most created by individuals for free. Last I checked, there are just over 100 users of my extension. This is far fewer than the number of people using the most popular extension (AdBlock, with 1,626,216 users at that point), but also far more than the number of people who usually read my papers (my TF, 1). The hours I spent on the project, both before the due date and after, over winter break, far exceed the amount of time I’ve spent on any other final paper or project. There was also a lot of friction.
Plenty of people could have coded the same extension more elegantly and in less time. I will never be as good a programmer as—to set the standard absurdly high—Mark Zuckerberg. But accomplishments can be measured in terms relative to ourselves, rather than to others. Rather than sticking to what we’re already good at as the surest path to résumé-worthy achievements, we should see the value in novel challenges. How else will we discover possibilities that lie just beyond the visible horizon?
I eventually found the misplaced semicolon that night. With the bug fixed, my program was finished. I would properly enjoy my twenty-first birthday the following weekend, but I had another occasion to celebrate on the actual date. Even the best birthday cake is no substitute for the deep satisfaction of accomplishing what we had previously deemed impossible—whether it’s writing a program or writing a play. Also, that cupcake was pretty good.