There is very little all programmers should be required to have in common. The field is just that big now.<p>9 times out of 10 a list like this includes a treatise on floating point number representation, which while useful, probably isn't of utmost importance in the 21st century, but hey, at one time folks thought that <i>was</i> required for 'all programmers' to read. At least this list does seem more up to date and relevant.<p>I just wish we'd stop with 'all X should' titles. Its demeaning and inaccurate.
I think Communicating Sequential Processes [0] by Hoare is another landmark paper that should be on this list for its perspective on organizing concurrent processes. This was actually required reading for the concurrency section of my undergrad operating systems course.<p>[0]: <a href="https://www.cs.cmu.edu/~crary/819-f09/Hoare78.pdf" rel="nofollow">https://www.cs.cmu.edu/~crary/819-f09/Hoare78.pdf</a>
It's interesting to read the HN comments on this post now and what others have said previously.<p><a href="https://news.ycombinator.com/item?id=3382962" rel="nofollow">https://news.ycombinator.com/item?id=3382962</a>
<a href="https://news.ycombinator.com/item?id=2979458" rel="nofollow">https://news.ycombinator.com/item?id=2979458</a>
Eight out of ten are about programming languages, and strong on the functional side to boot. It's not that these topics aren't important, or that they're not great papers, but isn't that a bit too heavily skewed toward one area? Shouldn't at least one of those top ten be more directly about security, or performance, or some other kind of idea rather than the notation we use to express ideas?<p>Yeah, I know, make your own list. Maybe I will. Nonetheless, the author specifically mentions "cover a wide-range of topics" as a goal and this list fails to meet that goal.
It's weird that "What every programmer should know about memory" Isn't on here. Even for languages that manage memory for you understanding the hard limitations and basic operations used to access and manipulate memory is certainly useful.
I would recommend this one for historical purposes: <a href="http://insecure.org/stf/smashstack.html" rel="nofollow">http://insecure.org/stf/smashstack.html</a>
Why <i>this</i> Hoare paper and <i>this</i> Lamport paper? A list of ten is a bit long considering how much background material is required reading for every single entry.
Any list without Shannon's 1948 "A Mathematical Theory of Communication" is just not a good list. Sorry.<p><a href="http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf" rel="nofollow">http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pd...</a><p>The foundation of information theory. It is, by far, the most astonishing paper I have ever read. Far more astonishing than Lamport's famous conclusion about clocks. It is the kind of paper that causes a soul rift when read thoroughly.
Most seem to be available here - <a href="https://github.com/papers-we-love/papers-we-love" rel="nofollow">https://github.com/papers-we-love/papers-we-love</a>
I love that even HN has listicles, and I would rate this one as at least on par with <a href="http://www.lifehack.org/articles/lifestyle/21-things-you-are-doing-wrong-every-day.html" rel="nofollow">http://www.lifehack.org/articles/lifestyle/21-things-you-are...</a>
#oly $#it! I have read these papers, all of'm! WHAT! Haha that is so accurate LOL!<p>Great stuff! But there are way more important whitepapers to be honest. I can't really think of the others right now, but if you go to the Digital library from ACM / IEEE, you can find really good stuff.