• November 1, 2018 |

    my code is bigger than your code

    tales of a history major lost in the cit

    article by , illustrated by

    def overheard_at_the_CIT():

            quote1 = “Even people who study English go to the career fair.”

            quote2 = “I haven’t read things in a long time.”

            quote3 = “Yeah, I mean, she’s getting that amount. And so I negotiated to try and get it too, but the recruiter isn’t                budging. I think they pay women more upon entry because they cost more to find.”

            return quote1, quote2, quote3

    I have never felt more out of place than when I showed up for the Brown University computer science (CS) teaching assistant (TA) camp that the department holds in August just before classes begin. This semester, I’m TAing CSCI0030: Introduction to Computation for the Humanities and Social Sciences, so I’ve been hanging around the Center for Information and Technology (CIT) a little more than a humanities concentrator might otherwise.

    From what I saw, TA camp partly serves as an opportunity for CS concentrators to one-up each other. The internship alums compared amenities: whether their summer employer provided organic Californian farm-to-table lunches or a gym or a decked-out bus between Silicon Valley and South San Francisco. They talked about big salaries, fancy apartments, and return offers. They chatted about whether they worked on software engineering or user interfaces. “My code,” they seemed to say, “is bigger than your code.”

    This is definitely true in my case—their code is bigger. Even though I’ve taken a few CS classes, I’m a history concentrator, and I feel like an impostor every time I set foot in the CIT. The entire department is shrouded in mystique and reputation. The concentrators use acronyms like “API” and English-sounding words like library or object or clean that I think I understand but really don’t in the context of programming. The students complain publicly about how time-consuming their work is, referencing their 40-hour-per-week “algos” class. They call their professors by their first names and refer to each other by their computer logins.

    At least in some circles, the department has a stereotype of attracting really hardworking and intelligent students who accomplish almost unthinkable feats. One CS concentrator I spoke with described the culture as “very competitive,” attributing it “to the nature of CS itself. It’s very cut and dry if you understand something or you don’t, and it’s very evident in coding interviews and classes with strict collaboration policies. There’s that culture around the industry and the academics here that promotes the feeling of helplessness.” I spoke to another student who associates the department with “a culture of always having to work without a break” and a “glorification” of people who work longer, later nights.

    One major aspect of computer science at Brown that contributes to the department’s larger-than-life reputation of competition is the intensity of tech recruiting culture. Early each fall, tech companies come to Brown to entice computer scientists with applications for internships and entry-level positions. CS concentrators compete for jobs at Google and Twitter and Facebook and the next Silicon Valley startup that’s going to matter. It’s brutal—applicants experience many rounds of difficult technical interviews where they battle it out for the best-paying, most prestigious internships.

    From my limited understanding of this highly stressful process, it is in the students’ best interests to boast knowledge of as many languages, algorithms, and ways of approaching problems as possible—just as I declare on my resume that I have, uh, working proficiency in Excel. Is the competitive spirit within the walls of the CIT a way to cope with the culture of incredibly high-pressure interviews?

    One CS concentrator I talked to, an alum of Twitter’s internship program, pointed out that “people use what internship someone got as a measure of their ability in CS.” Someone eavesdropping nearby nodded vigorously. “Perceived competition and seeing internships as a limited resource does [sic] lead to forms of competitive behavior,” the eavesdropper chimed in. But the Twitter alum also pointed out that, before interviews, “I’ll prep with friends who have the same interview, and we share strategies. There’s a lot of spots, so me getting a spot has no impact on if someone else gets a job.” This conversation showed me that some of the competitive culture belongs more to the department’s grand stature than the students themselves, who are totally reliant on working together.

    Secretly, and despite its scary reputation, I actually love the CIT. In the building’s drab, poorly-decorated, and oddly-shaped ground floor foyer, there is often a spirit of positivity and collaboration. Even though the students have to readjust their eyes to natural light when they leave the CIT after countless hours of coding, programming can be really fun. In my experience, the dopamine rush of having something work after days of designing, redesigning, and debugging is unparalleled by other schoolwork. Plus, you get to build functional programs that do all kinds of cool things—a breath of fresh air from my norm of slaving over a research paper on a niche topic that will only ever be read carefully by my mom and skimmed once by a professor.

    The CS department gets its reputation for a cultish, insular community at least in part from all of the bonding that occurs over the late nights of problems, stolen food from tech events, and time-consuming projects in rooms that lack both sunlight and any sense of work-life balance. Even in the notoriously long lines for TA hours, people seem to be having fun working on their projects and chatting. There’s good spirit and humor even in the little aspects of CS, like how the department computers have hidden jokes: If you mistype a common terminal command, an animation of a train runs across your screen.

    In the CS classes that allow collaboration (some courses are notorious for their very strict no-collaboration policies), students eagerly team up to approach problems. If you observe the third-floor atrium, you’ll see students drawing diagrams on whiteboards for each other or huddling over laptops. I asked one of my fellow TAs what she thought about the department. “It’s fun,” she said immediately. “I like how everyone works together.”

    Undergraduate students, professors, and graduate students enjoy mutual intellectual respect and approach computational problems with the kind of collaborative creativity any department should strive for. That everyone is on a first-name basis only serves to reinforce this level playing field. Furthermore, the community is bolstered by the fact that the department needs undergraduate TAs to run its classes. Peers teach peers, so the entire university’s teaching hierarchy is flipped on its head within the walls of the CIT. In my experience, it is much less intimidating to approach a TA than it is to attend a professor’s office hours—the stakes feel lower. Other students know just how frustrating the process of designing, writing, and debugging code can be. TAs get it.

    Partaking in this community, even in a peripheral way, has been wonderful for me as a person straddling the insider/outsider line of computer science. The CS Department is so different from the History Department (my real home), and yet, there are striking similarities between the two. For example, history is equally easy to make fun of. We all have the image of the theory-loving, turtleneck-wearing undergraduate who quotes pretentious philosophers unprompted in discussion sections. In my first history classes at Brown, those people intimidated me out of speaking in class. Now, I wonder if I’ve become one of them (because after all, I really do love European intellectual history, and I’m completely convinced that Walter Benjamin’s theoretical texts apply to every situation). Tribalism is everywhere—people like groups because it feels good to be an insider somewhere, whether that be in the History or the Computer Science Department.

    The archival research I do for history and the programming I do for computer science also have a lot in common. They are both time-consuming, all-consuming, completely solitary activities where I have to concentrate for long periods of time. The rush I feel finding an amazing quotation in a stack of old documents is similar to how I feel when my code finally compiles and my computer’s terminal stops printing error messages.

    In the non-concentrator CS class I am TAing, sometimes I get the feeling that students who are more than capable of learning all of the concepts feel that programming is so foreign that they will not be able to understand the logical frameworks behind what we are teaching. That’s how I felt during my first few months in the CIT.  But one freshman I talked to who is taking one of the introductory classes summed it up nicely: “I think that in the CS department, you can get very lost, and you can get really behind. It’s also very easy to get help. But I feel that’s the case with all of college. You have to do your share of getting help.”

    My advice to you, humanities concentrators: Don’t get scared by people talking about all-nighters and learning six coding languages in classes that are supposed to be akin to a full-time job. Take a CS class. Once your code compiles for the first time, you’ll understand what makes it all worth it.