4 ms·
Papers Every Programmer Should Read
- mgedmin 18y agoI'm surprised nobody mentioned "What Every Computer Scientist Should Know About Floating Point Arithmetic" by David Goldberg: http://docs.sun.com/source/806-3568/ncg_goldberg.html http://docs.sun.com/source/806-3568/ncg_goldberg.html
- gne1963 18y agoReflections on Trusting Trust by Ken Thompson is an absolute must read...
- Oatmeat 18y agoFor the lazy: pdf: http://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf http://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thomps... html: http://cm.bell-labs.com/who/ken/trust.html http://cm.bell-labs.com/who/ken/trust.html
- dottedmag 18y agoThe "common knowledge" of the IT industry is not a some language or notations, but a logic (not a common logic, but a science) and mathematics. While considered as "abstract" and "having nothing to do with reality", /proper/ branches of mathematics capture many aspects of programming, so new languages/technologies/whatewer are not perceived as a "reinventing the Foo from the last century", but as a "another appilcation of Bar from the Baz field", which is much more fruitful comparison, due to depth of the mathematics itself.
- triplefox 18y agoI'd add the book "Thinking Forth", which I just read again recently: http://thinking-forth.sourceforge.net/ http://thinking-forth.sourceforge.net/ The ideas present - which are much more craftsmanlike than an academic paper - are easy to absorb by skimming, and they're still relevant even after 20 years of research/fashion trends in programming. Plus Forth itself is, in a lot of ways, the living embodiment of the YAGNI principle, which can make it look uncomfortably-to-incomprehensibly spartan to outsiders.
- mechanical_fish 18y agoThanks for the recommendation. I had never heard of Forth, except as a buzzword, until I heard a local hacker give a short explanation of Factor, which is largely inspired by Forth: http://factorcode.org/ http://factorcode.org/ I played with the demo a bit. It's very interesting. Even in the first few minutes you can sense the potential power of its super-spartan stack-based syntax, though if you're the kind of person who hates Lisp because it doesn't have the C syntax your head will probably explode at the sight of Factor or Forth.
- marksutherland 18y agoI'm surprised he didn't add Fred Brooks's "No Silver Bullet". It and the essays in "The Mythical Man Month" should really be required reading for anyone working on large projects, imho. http://www.virtualschool.edu/mon/SoftwareEngineering/BrooksNoSilverBullet.html http://www.virtualschool.edu/mon/SoftwareEngineering/BrooksN... http://en.wikipedia.org/wiki/The_Mythical_Man-Month http://en.wikipedia.org/wiki/The_Mythical_Man-Month
- anewaccountname 18y agoKnuth: Selected Papers on Computer Science http://www.amazon.com/Selected-Computer-Science-Language-Information/dp/1881526917 http://www.amazon.com/Selected-Computer-Science-Language-Inf...
- deleted 18y ago[deleted]
- tjr 18y agoWould add Guy Steele's "Growing a Language": http://www.cs.virginia.edu/~evans/cs655/readings/steele.pdf http://www.cs.virginia.edu/~evans/cs655/readings/steele.pdf
- mgedmin 18y agoI have to say that watching the video of the original presentation gives a stronger impression than reading the transcript. Here's the video: http://video.google.com/videoplay?docid=-8860158196198824415 http://video.google.com/videoplay?docid=-8860158196198824415
- pc 18y agoAm a bit surprised at the omission of the Lambda papers. http://library.readscheme.org/page1.html http://library.readscheme.org/page1.html
- yan 18y ago"What Every Programmer Should Know About Memory" http://people.redhat.com/drepper/cpumemory.pdf http://people.redhat.com/drepper/cpumemory.pdf (more good stuff at: http://people.redhat.com/~drepper/ http://people.redhat.com/~drepper/)
- nadim 18y agoThere are a lot of upvotes to this post, however not a lot of discussion on the papers mentioned. I am curious how many have read these papers, and the value they provide. Reading all of these seems like a time investment and I am trying to gauge it's worth.
- jdale27 18y agoI'll be honest: I've only read two of these, the papers by Thompson and by Gabriel. These were both fairly quick reads, if I recall correctly. Another three, those by Parnas, by Landin, and by Backus, have been on my "to read" list for a long time. I read "Reflections on Trusting Trust" several years ago, and recall that it seemed clever, but not especially deep. It probably wouldn't make my top 10 list, if I had one. Then again, I'm not really a systems guy, so it may just be personal bias. On the hand, I'm a Lisper, and so Gabriel's paper, colloquially known as the "Worse is Better" paper, is a must read. I do agree that it's worthwhile reading for programmers at large. If you enjoy it, I also highly recommend Gabriel's book "Patterns of Software" (available in PDF from his website). (Note: although this book does have something to do with the "patterns movement", Gabriel is pretty much a contrarian to the what you might call the "Gang of Four" school, so don't let any preconceptions you might have about their book and its reception put you off Gabriel's writings.)