"Books every psychoneuroendocrinologist should have read."
They're all a collection of shit that someone, somewhere - usually with an inflated self of self - feels qualified to tell you and every other person that they should have read.
You know what you should have read? Papers you find interesting that advance your understanding for the problems you face. Understand I'm not saying that every list everywhere is a load of horseshit that you need to ignore - I'm not. I'm saying be wary of all-encompassing "lists" of "things" you "should" do / know / read / experience.
EDIT: LOL, stealth edit on the title... from "Papers every computer scientist should read" to "Syllabus for Classics of Computer Science".
Well... at least the pretension took a backseat. :)
We are taught the important bits of a lot of this in the regular coursework since it is fundamental to the field. I think these lists are for the people who might enjoy walking through the development of the field for their own pleasure and curiosity. And to learn something in the process!
I’m a computer “scientist” and haven’t read a single one of these. And now I’m even more ashamed because I want the StackOverflow cliff notes. Seriously, this should be a book with commentary. Does such a thing exist? Maybe a project for Walter Isaacson.
The book will be released on February 2. "Ideas That Created the Future: Classic Papers of Computer Science" edited by Harry Lewis, and published by MIT Press.
Probably the biggest benefit is seeing how these ideas were introduced when new, the original context, how they were justified, why the researchers were interested in them, etc. Many (not all) of these are really foundational things that you probably already "know" the key points of or could easily look up on wikipedia.
For at least one of the papers in there a book of commentary does exist: "The Annotated Turing: A Guided Tour Through Alan Turing’s Historic Paper on Computability and the Turing Machine" [1] by Charles Petzold.
The Wikipedia article describes it thusly:
> Petzold annotates Alan Turing's paper "On Computable Numbers, with an Application to the Entscheidungsproblem". The book takes readers sentence by sentence through Turing's paper, providing explanations, further examples, corrections, and biographical information.
Many of these were probably already distilled into a combination of textbook material, lectures and lecture notes, and class projects during the course of your degree. Though how much of it you were exposed to would depend on your particular subfield/focus during your degree program.
The latest paper actually seemed to be 1999. The purpose of the course doesn't seem to be to establish the totality of fundamental CS papers, but to place CS developments in a historical context covering them from their creation forward.
It's a list of papers most of which look like they'd be fun to read.
I am surprised to have read a surprising number of those (25-30%) but I've had thirty-five years to do so. Yes I read a bunch -- perhaps half of that number -- in graduate seminars decades ago so that helped, but if you tried to read them all at once you'd be overwhelmed and miss a lot of the significance.
Also almost all were published before 1980 which implies the faculty might have been in school around then too.
Nice list. A walk through some of the foundational moments in CS. Wish I had something like this in my program. Though I did get to read a couple of them when they helped contextualize what we were doing (eg I read Codd's paper in a databases course, etc.)
FWIW: Browsing through this, I was surprised by how many of these we read or that professors referred to during my undergrad years, twenty years ago. While it certainly wouldn’t be a complete CS curriculum, there’s plenty of good meat here.
I am a CS PhD student, and I have to say, I really can't stand lists like this. First, why is Babbage's work on the Analytical Engine included? No computer scientist I know cares about such things, except perhaps as a historical curiosity. Do all modern architects need to read up on the Pyramids? No. Second, I am skeptical that there are papers that all computer scientists need to read. Does a computer vision expert need to go read a paper on computational complexity? Does a roboticist need to understand lambda calculus? This list is pretentious and silly, IMHO.
While the (original HN) title may have been a bit on the pretentious side, the linked syllabus explains the rationale for the course:
> This course examines papers every computer scientist should have read, from the 1930s to the present. It is meant to be a synthesizing experience for advanced students in computer science: a way for them to see the field as a whole, not through a survey, but by reliving the experience of its creation. The idea is to create a unified view of the field of computer science, for students who already know something about it, by replaying its entire evolution at an accelerated frame rate.
Which is not a bad idea. Many computer scientists, programmers, and software engineers have an ahistorical understanding of CS. See the discussion the other day when someone claimed "software engineering" is only 20-30 years old. They aren't a one-off, though probably not the majority. A significant number of people in this field don't know the history of it: how it was developed, what dead ends were hit, what dead ends turned out not to be dead ends (often once we got fast enough hardware), etc.
Similar to the ethics course in many engineering/science curricula, it's something that seems a bit superfluous but turns out to add a great deal of value if students can be bothered to explore it.
It’s just hyperbolic. It’s abundantly clear that the intention is to share a list of papers that a lot of people who are interested in computer science might find interesting.
To me, it sounds like a history list basically. Understanding the past so we know how we got to today. Does anyone "need" to read anything? No. Would you be enriched by it? Maybe. I persinally think its an interesting reading list.
More generally, this seems like an undergrad course. Isn't the point of an undergrad degree to give broad foundational instruction that can be further built on? What better way then to see how we got to the present.
> Does a roboticist need to understand lambda calculus?
Reading a single paper and understanding something is very different. Understanding it, is a bit much. Knowing the very vaugest of an introduction to the subject by reading a single very foundational paper, they might benefit from that. At the very least, they should know how to read and understand a paper in an adjacent field to their own (this is an undergrad class after all)
Of course modern architects need to know and learn about the pyramids. The structure both from a mechanics and static stability perspective are a marvel for building architecture. They are not drywall hanging workers to only care about learning the available drywall types they will use tomorrow for their construction project. If you are a CS PhD student the expectation is that you become a scholar in the discipline. This vocational attitude about 'where will I need this' is perhaps an indication that you don't quite understand what a doctorate really means. Have a chat with your advisor about this, it will be eye opening.
>>> To identify the major subfields of computer science, their intellectual family tree, and the major figures and works of their birth and infancy.
To be able to place current computer science research in the context of its intellectual lineage.
To be able to present to an audience of educated but non-specialist computer scientists some of the major ideas of computer science in a way that is succinct and easy to understand.
To be able to critique constructively similar presentations by others.
I've seen shit like this in every field...
"Books every historian should have read."
"Books every English professor should have read."
"Books every psychoneuroendocrinologist should have read."
They're all a collection of shit that someone, somewhere - usually with an inflated self of self - feels qualified to tell you and every other person that they should have read.
You know what you should have read? Papers you find interesting that advance your understanding for the problems you face. Understand I'm not saying that every list everywhere is a load of horseshit that you need to ignore - I'm not. I'm saying be wary of all-encompassing "lists" of "things" you "should" do / know / read / experience.
EDIT: LOL, stealth edit on the title... from "Papers every computer scientist should read" to "Syllabus for Classics of Computer Science".
Well... at least the pretension took a backseat. :)