10 Papers Every Programmer Should Read (At Least Twice)
We’ve taken an interesting turn in the industry over the past ten years. We’ve come to value experiential learning much more, and we’ve regained a strong pragmatic focus, but I think it would be a shame if we lost sight of some of the deeper things which people have learned over the past 50 years. Rediscovering them would be painful, and (to me) not knowing them would be a shame.
There are also some good links in the comments. I particularly recommend the end-to-end paper by Saltzer, Reed, and Clark and the lambda papers by Steele and Sussman.