top | item 5962933

Papers and essays that every programmer should be aware of

219 points| sbspalding | 12 years ago |projectmona.com | reply

50 comments

order
[+] uuilly|12 years ago|reply
These are the most presumptive headlines. Programmer encapsulates many disciplines just as a writer encapsulates those who write comics, novels, plays, ads, articles, law and speeches. Stop assuming everyone is a web developer. And don't deign to tell programmers what they should know.
[+] ___Dev___|12 years ago|reply
+1. Expected a serious list, instead I saw stupid Ruby/JS/HTML garbage. And no, I do not need to know "100 Vim Commands" - because Visual Studio is "100" times better.

Here is the real list:

1) know one modern web tech; 2) know one OOP language; 3) know one functional language; 4) be familiar with one dynamic language; 5) remember where to look up theoretic bits like algorithms.

[+] maurits|12 years ago|reply
This pops up from time to time on stackoverflow as well:

[1]: Favourite programming related academic papers

[2]: Influential books every programmer should read

[3]: Favourite (or most brilliant) Algorithms

[1]: http://stackoverflow.com/questions/358033/what-are-your-favo...

[2]: http://stackoverflow.com/questions/1711/what-is-the-single-m...

[3]: http://cstheory.stackexchange.com/questions/189/algorithms-f...

[+] jakejake|12 years ago|reply
Somebody should post a "list of the top 10 lists that every programmer should read" which is a listing of article listings.
[+] tel|12 years ago|reply
I find it funny that there's a paper on constructive type theory and a CSS3 cheat sheet on the same list.
[+] nandemo|12 years ago|reply
We functional programmers have to pay the bills somehow, you know.
[+] nraynaud|12 years ago|reply
I don't know why "what every computer scientist should know about floating-point arithmetic" is not in here. Ruby or the last framework are just fads, but IEEE754 is here to stay and nobody know how to use it (and I never remember the details myself, I'm always struggling).
[+] bdg|12 years ago|reply
I like to tell IEEE754 as an improvised story, because it's so rich in history as far as data types go.

They were first introduced in 1941 on the German made Z3 compuer. Whic means, yup, we can blame nazis for 0.1+0.2 == 0.30000000000000004

In all seriousness, more programmers need to understand this. I've seen more than a few beginners go rant about how awesome their language X is when contrast against language Y because language Y has bugs like 0.1+0.2 ... then they're blown away when the see their language too has the same "bug".

[+] themodelplumber|12 years ago|reply
Great resource, thanks. But oh man, typography, character sets, CSS3...you are going to have a lot of frustrated developers scrolling through this. :) Not many have a good handle on all three of those AND functional programming, and you know lots of people measure themselves against these lists...
[+] hga|12 years ago|reply
Heh. But while it's silly to put too much into measuring yourself against arbitrary lists, reasonably good ones like this should at minimum be a guide to "Here be dragons". As in areas that are messy and/or otherwise complicated enough that you should make note so that you'll know to study them if needed in the future. Mixing metaphors while still staying reptilian, so that you don't one day ask yourself "Why have I found myself in an alligator infested swamp?"
[+] nawitus|12 years ago|reply
Every programmer should know Ruby and CSS3? What?
[+] ___Dev___|12 years ago|reply
...if they want to be considered "cool" in F-cisco.
[+] zmmmmm|12 years ago|reply
An awful lot of Ruby ... does every programmer really need to know Ruby? I seem to be getting by.
[+] mynameisme|12 years ago|reply
Or Vim commands? That has nothing to do with programming.
[+] sbarre|12 years ago|reply
The functional programming one is great. As a self-taught programmer who has mostly learned on the job, I've struggled with understanding functional programming (since I've never had the opportunity to use it for work), and that helped me along quite a bit.

A good collection overall..

[+] rubiquity|12 years ago|reply
Seems quite heavily weighted towards Web development but a good list either way. Thanks for sharing.
[+] t1m|12 years ago|reply
Am I the only one who had to google the "docking problem"? I've been programming for over 30 years, and not once have I had to model the quaternary structure of complexes formed by two or more interacting biological macromolecules (http://en.wikipedia.org/wiki/Macromolecular_docking).
[+] cpdean|12 years ago|reply
I will click on any article titled "<publications, tricks, advice> that <people in the software industry> should <grok, read, consume>"
[+] marcelocamanho|12 years ago|reply
Come on, no Pragmatic programmer? Well, it is a book, and it might contain a lot of "obvious" stuff. But I really recommend it.
[+] beggi|12 years ago|reply
Boy oh boy, I'll never be able to read everything that I want to. Ticking off one thing and 10 more are added.
[+] anon_d|12 years ago|reply
I don't understand the XKCD. What's the joke?
[+] paganel|12 years ago|reply
There are people (myself included) who cannot remember how exactly to use tar, the Unix command. For me it always goes like this: "Is it 'tar -fzhf... ' or 'tar -vgsf...'? Ok, I'll google it again, just this one time, promise".