K&R, SICP, TAoCP. Those aren't debatable.<p>Stevens is possibly only really <i>necessary</i> for UNIX systems developers these days, but I see enough people with fundamental misunderstandings about protocols and networking and memory management and processes, etc. that maybe they should also be considered mandatory. At least worth a skim.
Programming is too young of a field to have a "canon". And I think any field that does have one that people really care about is probably a bit ossified and dead.
I really liked The Pragmatic Programmer, although some might think it's not a very technically challenging work.<p>I also like most of O'Reilly's Perl books.<p>Also, Jonathan Rockway's book on Catalyst was very helpful for me, although there were some issues with typos in the first edition (which is to be expected.)<p>Also, Philip Greenspun has published a good free collection of computer-science and web-development related texts on his website.<p>(Sure, he's a little arrogant and some people find his writing style to be somewhat abrasive or even borderline nonsensical, but I certainly liked most of his work. And I believe I learned quite a bit from it, as well, though I'm sure that is debatable.)