The Unconventional Path to Practical Computer Science Mastery: Academic Papers

For those immersed in the world of programming, continuous learning is not just an advantage—it’s a necessity. The daily grind often involves navigating tutorials, sifting through documentation, and seeking solutions on platforms like Stack Overflow to keep coding and maintain relevant skills. However, a less frequented yet profoundly impactful resource for enhancing programming prowess lies within the realm of academic computer science papers.

While tutorials offer immediate, practical coding assistance, academic papers provide a deeper understanding of the origins and future trajectories of programming. Every facet of programming, from the infamous null pointer (dubbed the “billion dollar mistake“) to the paradigm of objects (rooted in Smalltalk), is built upon decades of research dating back to the 1960s and earlier. Today’s research is, in essence, laying the groundwork for tomorrow’s innovations. For individuals seeking the Best School For Learning Practical Computer Science, delving into these academic resources offers an unparalleled, albeit unconventional, educational journey.

We gained insights from three members of the Papers We Love team—an online collective dedicated to curating and sharing noteworthy computer science scholarship—on this very topic.

Zeeshan Lakhani, currently an engineering director at BlockFi, Darren Newton, an engineering team lead at Datadog, and David Ashby, a staff engineer at SageSure, initially connected during their tenure at Arc90. Despite lacking formal computer science backgrounds, they shared a common thirst for deeper knowledge in the field. Their academic roots were in humanities and arts disciplines: Ashby holds an English degree with a history minor, Newton is a two-time art school alumnus, and Lakhani’s background includes film school followed by a master’s degree in music and audio engineering. These fields instilled in them a deep appreciation for foundational texts in understanding the theoretical underpinnings of practice – a methodology they found surprisingly relevant to computer science.

Mirroring the approach of humanities scholars, they turned to the archives in search of answers. “I had a latent librarian inside,” Newton remarked, highlighting his innate curiosity for the historical source material behind their daily work in technology.

Unearthing the History of Computing

Ashby’s exploration into programming history began with Tracy Kidder’s Soul of a New Machine, a narrative chronicling the intense race to design a 32-bit microcomputer in the late 1970s. The book illuminated both the engineering culture of that era and the fundamental challenges and concepts engineers grappled with. This was a time before readily available CPUs and standardized motherboard components, when many elements now considered fundamental were still in the nascent stages of development.

Kidder’s work unveiled to Lakhani, Newton, and Ashby a rich history of computer science they were largely disconnected from. This revelation prompted them to engage with a seminal paper: Tony Hoare’s “Communicating Sequential Processes” from 1978. Given their contemporary work with Clojure and Clojurescript, the paper seemed particularly pertinent. However, their initial discussion revealed a significant hurdle: they lacked the framework to even begin comprehending it. “It was like, I can’t understand half of this formalism, but maybe the intro is pretty good,” Lakhani recalled. “But we need someone like David Nolen to explain this to us.”

David Nolen, an acquaintance then working at The New York Times, had previously given a talk on Clojure and related Lisp-based languages, referencing early papers by John McCarthy. Nolen’s ability to contextualize these academic works sparked a crucial realization for the trio. This marked the genesis of Papers We Love.

Understanding the historical context of computing concepts provides invaluable insight into their practical applications. The tools programmers utilize daily, from databases to programming languages, are built upon a bedrock of academic research. “Understanding the roots of the things you’re working on unlocks a lot of knowledge that you’re not going to get purely just by using every day because you don’t understand the paths that they didn’t go down,” Ashby explained. This historical perspective is a cornerstone of what could be considered the best school for learning practical computer science: a deep, contextual understanding.

They often reference Bret Victor’s 2013 talk, “The Future of Programming,” as a prime example. In the talk, Victor, dressed as a 1970s engineer, uses an overhead projector to present his insights, initially appearing to be from 1973. He discusses groundbreaking research poised to revolutionize computer science – research addressing issues still relevant today, such as the shift from sequential execution to concurrent models.

“The top theme was that it takes a long time,” Lakhani summarized, noting the cyclical nature of computer science. “There’s a lot of things that are old that are new again, over and over and over.” Persistent problems remain relevant, either due to their inherent complexity or because the research addressing them hasn’t been widely disseminated or adopted.

The Papers We Love founders are part of a broader trend of engineers rediscovering the value of computing history, evidenced by the growing interest in retrocomputing. Retrocomputing involves exploring past systems to gain deeper insights into the evolution of technology. “A lot of people are spinning up these ancient operating systems on Raspberry PIs and working with them,” Newton observed. “Like spinning up an old Smalltalk VM on a Raspberry PI or recreating a PDP-10.”

Examining issues within their original contexts, such as through the research papers that first tackled them, provides a valuable perspective on the present. This historical immersion can lead to significant breakthroughs in understanding. “Oh, objects do the things they do because of Smalltalk back in the 80s,” Ashby offered as an example. “And that’s why big systems look like that. And that’s why Java looks like that.” This historical awareness becomes a powerful tool in any quest for the best school for learning practical computer science, offering context and depth often missing in purely practical training.

This newfound understanding directly translates to improved problem-solving capabilities in contemporary challenges.

Shaping the Future of Programming, Today

Reading research papers transcends historical understanding; it’s also about discovering innovative solutions in current research. “The idea of Stack Overflow is: someone else has had your problem before,” Ashby noted. “Academic papers are: someone else has thought about this problem before.” For those committed to the best school for learning practical computer science, academic papers represent an advanced curriculum of problem-solving methodologies.

If your work primarily revolves around routine CRUD application development, research papers might seem less immediately relevant. However, for those tackling unique industry challenges, exploring research in those specific problem domains can be invaluable. “I find papers to expand the idea of what’s possible with the work you do,” Ashby explained. “They can help you appreciate that there are other ways to solve these problems.”

For Newton and his colleagues at Datadog, academic papers are integral to their operations. Their monitoring software requires processing vast amounts of data in real-time to provide engineers with actionable insights into their applications and infrastructure. “We are very concerned with performance algorithms and better ways to do statistics on large volumes of data,” Newton stated. “We need to rely on academic research for some of that.” This direct application of research underscores the practical value often overlooked in conventional views of computer science education.

The existence of research, however, doesn’t guarantee instant solutions. Often, a single paper provides only a piece of a larger puzzle. “I was at Comcast where we wanted to leverage load balancing work that we do in terms of routing,” Lakhani recounted. “We ended up applying three different kinds of papers that didn’t know each other. We put semantics into network packets, routed them based on another paper via a specific protocol, and implemented a bunch of IETF specs. Part of this work now lives in a Rust library people can run today.” The process often involves synthesizing insights from multiple academic sources to forge comprehensive solutions.

Without engaging with these papers, Lakhani’s team might have eventually reached a solution, but likely through a far more protracted and resource-intensive process. Leveraging existing research allows for building upon established knowledge, embodying the principle of “standing on the shoulders of giants.” Staying abreast of current research in your field ensures you know precisely which giants to ascend for optimal progress.

Navigating the Landscape of Computer Science Giants

The question naturally arises: who are the seminal figures in computer science, and which papers form the essential canon? This canon could serve as a humanities-inspired curriculum for those seeking the best school for learning practical computer science – a self-directed path through foundational knowledge.

Phillip Laplante’s 1996 publication, Great Papers in Computer Science, represented an early attempt to define this canon, although it is now somewhat dated. A more contemporary perspective is offered by Ideas That Created the Future, published more recently. Lakhani, currently pursuing a PhD in computer science at Carnegie Mellon University, noted a course dedicated to influential papers within the field offered at the institution.

The Papers We Love repository effectively serves as a continuously evolving canon, organizing papers and links by topic. The community actively encourages contributions of beloved academic papers through pull requests.

For those seeking a starting point in reading computer science research, the Papers We Love team suggests the following papers and talks:

This list is, of course, just a starting point.

For those daunted by the prospect of diving directly into academic papers, Papers We Love offers introductory presentations on navigating and understanding these complex texts. These talks arose from the team’s initial struggles with academic formalism, and aim to provide accessible pathways to comprehension. “They’ve gotten the CliffsNotes,” Lakhani explains, “Now they can attack the paper and really understand it.”

The Papers We Love community continues to bridge the gap between industry and academia, fostering a mutually beneficial relationship. Industry gains faster access to cutting-edge solutions, while academics witness their ideas tested and applied in real-world scenarios.

“One of the goals of Papers We Love is to make it where you find out about stuff a little bit faster,” Lakhani concludes. “Maybe that changes things.” For individuals dedicated to practical computer science expertise, embracing academic papers might indeed be the most transformative educational path of all.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *