CS books tend to be highly technical, which makes them not hold up well as technology changes. And most technology books are not written by particularly good WRITERS. I’ve pulled this together before to pass along to people, but decided to get it organized and keep it updated for myself. Some classics that I’d put on every undergrads reading list (or as a replacement for a degree to be honest)
- C Programming Language by Brian W. Kernighan and Dennis M. Ritchie. Even if you never write a line of C it’s seminal. Any serious programer over thirty will know exactly what you mean if you just say “K&R”
- The Art of Computer Programming – Donald Knuth. If you can read, digest and embrace the published volumes, you have finished your undergraduate degree for $190.
Culture of software development
- The Last Lecture by Randy Pausch (the best thing I’ve read about living a meaningful, creative life – book and the video are highly recommended start with the website thelastlecture.com
- Close to the Machine: Technophilia and Its Discontents by Ellen Ullman. A lead architect/project manager’s autobiography of a long, ugly development project that reads like an introspective thriller
- The Soul of A New Machine – Tracy Kidder. An anthropologist’s novelized study of the culture of engineers and software developers building a new minicomputer at DEC in the early 80s
- Philip and Alex’s Guide to Web Publishing by Philip Greenspun. A big-picture look at architectural decisions and their long-term repercussions
- Dreaming in Code by Scott Rosenberg
- The Cathedral and the Bazaar by Eric Raymond
- Wicked Problems, Righteous Solutions: A Catolog of Modern Engineering Paradigms by Peter DeGrace – hard to find, but probably the best book ever written about project management and team software development processes a VERY readable and entertaining guide that will teach you more than most project managers will ever know
- Other books down this path (but less entertaining):
There several things that almost every CS person should read that have to do with end user experience:
- The Design of Everyday Things by Donald A. Norman
- Don’t Make Me Think: A Common Sense Approach to Web Usability by Steve Krug
- Understanding Comics by Scott McCloud. Yes, it’s a book about how comic books work visually. It’s DEEPLY applicable to user interface, trust me.
- Computers as Theatre by Brenda Laurel – a dated, but usefully mind-bending look at user interface.
Everything by Edward Tufte, but his $7 “Textbooklet: Visual and Statistical Thinking” is a great starting point, without the big pricetag.