Skip to content
TopicTracker
From HackerNewsView original
TranslationTranslation

Technical Papers Every Programmer Should Read (At Least Twice) (2011)

The article recommends ten foundational technical papers that every programmer should read, including works on Lisp evaluation, garbage collection, lazy evaluation, type systems, and distributed computing, arguing that studying classic research deepens one's understanding of programming beyond daily practice.

Background

- This is a 2011 blog post by Michael Fogus (a well-known programmer and author) listing foundational computer science papers he believes all programmers should study. The papers cover topics like message passing, garbage collection, lazy evaluation, type systems, and distributed computing. - Key papers include: "On the Criteria To Be Used in Decomposing Systems into Modules" (Parnas), "The Lisp Machine" (Greeblatt et al.), "The Emperor's Old Clothes" (Hoare's Turing Award lecture on ALGOL), "Simple Genericism" (run-time type safety in OOP), "Hints for Computer System Design" (Lampson). - Fogus's list is notable for its emphasis on older, foundational ideas from the 1970s-1990s rather than trendy modern frameworks. It became highly influential in programmer education circles, sparking many "papers every programmer should read" copycat lists. - The post reflects a cultural moment when many working programmers had little exposure to formal CS research; Fogus argued that studying these papers would make practitioners better engineers, regardless of the languages or frameworks they used day-to-day.

Related stories

  • The author reflects on their childhood computing experiences in the 1980s, including using IBM PC compatibles with floppy disks to run MS-DOS and LOGO at school, writing programs on paper due to limited computer time, and playing early games like Moon Bugs, Space Invaders, and Digger. These formative experiences, filled with wonder and exploration, remain vivid memories decades later.