Slashdot Mirror


A Programmer's Bookshelf

An anonymous reader writes "With christmas just round the corner I have been looking for gifts for my geek friends. But what book? I recently found a simple page with one person's bookshelf and explain what's good and what's not. What do you think? Whats on a programmer's bookshelf? (or what should be and is not!)"

71 of 362 comments (clear)

  1. first post by themusicgod1 · · Score: 5, Informative

    goedel escher bach d:

    --
    GENERATION 26: The first time you see this, copy it into your sig on any forum and add 1 to the generation.
  2. And just as importantly... by tcopeland · · Score: 4, Funny

    ...do you group your books by color or by topic? Especially the O'Reilly books... does the Sendmail one go in your "mail server" books? Does the pink Python book go next to the pink CVS book or next to the red and white Ruby book? Decisions decisions!

    Nice to see that he's got his Knuths... although, if he's like me, they get opened about twice a year.

    1. Re:And just as importantly... by Eivind+Eklund · · Score: 2, Funny
      That often? Mine get opened every 3 years or so, when I make another attempt at reading them...

      Eivind (Eek).

      --
      Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
    2. Re:And just as importantly... by tcopeland · · Score: 3, Funny

      The first 30-40 pages of mine are fairly wrinkled... the last 500 pages are as fresh and as clean as the day they were purchases. Ah well.

      Now here's a fine tome. I hear the author is a really cool guy, too.

    3. Re:And just as importantly... by TheRaven64 · · Score: 2, Funny

      I hear that in the newer editions pages 100-500 are blank.

      --
      I am TheRaven on Soylent News
  3. Frederik Brooks by rassie · · Score: 4, Informative

    The Mythical Man-Month by Frederik Brooks (clicky) has some very good insights which still hold true (the book was originally published in 1975).

    1. Re:Frederik Brooks by mmkkbb · · Score: 2, Informative

      The anniversary edition has some new chapters in which Brooks examines with principles did NOT hold true. Some newer practices seem to have taken him by surprise in terms of his "No Silver Bullet" essay.

      --
      -mkb
    2. Re:Frederik Brooks by bladesjester · · Score: 2, Insightful

      Am I the only one who read that book and was less than impressed because it's really pretty much all common sense?

      I seriously walked away from it going "someone had to write a book on this?" because it really seems more like a book for managers who don't understand that people aren't all the same (so don't have the same abilities and/or skill levels) and that the more people you have, the greater the chance for them to get in the way of each other after a point.

      --
      Everything I need to know I learned by killing smart people and eating their brains.
  4. There are so many options by koltrane · · Score: 5, Informative

    It's hard to be specific when "a programmer" could write in a number of languages. Regardless, just about anything from O'Reilly is well worth the shelf space. I still have my original copy of "The Whole Internet"!

    1. Re:There are so many options by peterpi · · Score: 2, Insightful

      I reckon a copy of K&R is worth the shelf space and the money, no matter the programming language of choice. It happens to tell you about C, but the clear writing style and tidy code snippets are an example to all.

    2. Re:There are so many options by Klivian · · Score: 4, Insightful

      More importantly a copy of K&R should be in every programing book authors shelf.

      the clear writing style and tidy code snippets are an example to all.
      Exactly and I wish other writers could emulate that approach rather than trying to write as many pages as possible. Take any C++ book and compare the section about the basic datatypes to K&R, usually 5 to 10 times the number of pages and K&R are still easier to understand.

      And it's not only programming books, you find the similar style in other fields of science too. And it's rather consistent, making me believe that most American publishers of technical books pays their authors at a per page ratio.

    3. Re:There are so many options by An+Onerous+Coward · · Score: 4, Insightful

      Well of course it's worth its shelf space. The thing is about a third of an inch thick!

      For those just tuning in, "K&R" is shorthand for Kernighan & Ritchie's "The C Programming Language," and it really is a great little book. However, part of the brevity and clarity comes from the C programming language itself. Try writing a similar book about C++, and even with the same eye for brevity, you'd end up with a book five or six times as long. Ten times if you threw in the STL.

      Some people have claimed that this book should be required reading for programmers. Others have countered that the book should be required for authors of programming books. Let me take it one step further and suggest that it should be required reading for authors of programming languages. If the language you're designing cannot be effectively and similarly summarized given the K&R treatment, then it may be worth it to simplify things.

      I've become a huge fan of Python recently. As proponents claim, it's one of a very small handful of languages where you can keep the entire syntax in your head. I'm not claiming that Python is the ideal language, but merely that other programming languages should strive for similar simplicity.

      --

      You want the truthiness? You can't handle the truthiness!

  5. 3 names, "Gödel, Escher, Bach" by eldavojohn · · Score: 4, Interesting

    GEB is simply amazing and really makes you think. It is a large tome but it was well worth the read when I read it in high school. It influenced me musically, mathematically and gave me insight to become a computer programmer.

    It's a very common book and can be acquired cheaply on amazon, ebay and the wiki.

    I also heavily recommend getting to know this site if you're willing to search through lists of books for good deals.

    --
    My work here is dung.
  6. Gifts for Christmas by ATeamMrT · · Score: 4, Insightful
    With christmas just round the corner I have been looking for gifts for my geek friends. But what book?

    Just because your friend is a geek does not mean a book is the best gift! Picking tech books can be difficult. You need to know what your friend is interested in. If your friend knows the topic a book covers, it won't be useful. If the book is outside the scope of what your friend does, the book won't get used. Even within a language, there are so many topics that just because you hit the right language, does not mean the book would be useful. If you want to get a book, but a cheap $7 trashy novel that will be filled with laughs, and add a $50 gift card at your local bookstore. That will probably be cheaper than some of the $70 books out there. The cool thing about giving the $7 novel is you're giving a piece of yourself. It should be a book that made you laugh and think. I'd suggest Catch-22. It will provide lots of laugh out loud moments. You should pick a book you liked and want to share with your friend.

    Christmas is not about gifts or materialism. Christmas is about celebrating the birth of Christ. Spend time with your friends, listen to how their life is, their year. Celebrate with them. Be happy. That is the greatest gift you can give. People don't need more objects. People need to feel loved.

    1. Re:Gifts for Christmas by dchallender · · Score: 2, Interesting

      And there was me thinking Christmas was primarily just the convenient hijacking of a celebratory time of year used by older traditions e.g. Solstice observation / Saturnalia ;-) I love how so many Christian festivals just happen to dovetail with old "pagan" dates - but as anyone with knowledge of Christian history should know, its not accidental what dates were picked for Christian celebrations. Wish I could revisit several millennia hence (assuming humanity still exists then of course) and see what (if anything) is celebrated around the time of the Winter solstice then. However, on topic.... My "active set" has changes a lot - things such as Unix and Java books that were heavily hammered a few years ago gathering dust, whereas .NET / C# books thumbed regularly. Tend to split into "general reminder / lookup" style books - e.g. algorithms, best practice / tips and techniques for a particular language / OS through to very technical stuff e.g. JPEG : Still Image Data Compression Standard (Pennebaker and Mitchell) relating to a specific task that I'm involved with. A lot of it boils down to preference - many of the books are redundant in so much as I could probably web search to find the information, but its just handy (excuse pun, and easier on the eye) to have a real physical book available whereas some colleagues web search for everything and only tend too have books for arcane stuff that's not readily / freely available on the web. Most things on my (working) bookshelf get there due to necessity rather than enjoyment (and indeed lose their place when no longer needed). I would only consider an IT related book for someone if I knew they actually wanted it, be it for need or enjoyment (some people enjoy reading e.g. programming books for the sake of it, others only read them if they need to).

    2. Re:Gifts for Christmas by LWATCDR · · Score: 3, Interesting

      Hey I have some books on my wish list.
      I do understand your thought. For a good Christmas gift might I suggest a Salvation Army Angel next year. It is too late to get one for this year. You can find a child that isn't going to get much for Christmas and shop for them. My wife and I did three this year. After we finished the first one we noticed they had a lot left and with only two days to go she decided to get two more. For feeling the Christmas spirit I highly recommend it. For the typical poster on Slashdot may I recommend some of Knuth's other books. The Art of Computer Programing is great but his other books might be of more use to a lot of people on Slashdot.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    3. Re:Gifts for Christmas by Oligonicella · · Score: 2, Interesting

      Read some history. It's about celebrating the breaking of winter. A pagan celebration co-opted. Other than that, your last six sentences hold.

    4. Re:Gifts for Christmas by BoomerSooner · · Score: 3, Insightful

      Christmas is an economic holiday. I celebrate X-Mas but couldn't care less about Christ. The materialism is pathetic though. I use the holiday season to reconnect with family that I've been trying to avoid since the last Christmas season.

      Like it or not Christmas is more commercial than religious. Hell Dec 25th is just a propaganda date to coincide with a previously popular pagen celebration to make Christianity more popular. Christianity just had the best marketing team, why do you think Islam is popular? Same reason, good sell job.

      If I had to chose a religion I'd probably be Buddist. They have some strange BS as well. It's sad that people cannot accept that they will never "understand" the meaning of life and just live without the "my religion is better than yours" mentality.

    5. Re:Gifts for Christmas by KyrBe · · Score: 2, Insightful

      Christmas: The Christian hi-jacking of a Pagan festival that has been excessively commercialised.

      Please allow me to opt out!

    6. Re:Gifts for Christmas by Anonymous Coward · · Score: 2, Interesting

      Fine; let's cancel Christmas. The majority of this nation don't believe in any particular God anyway, so there's no real reason to have it. We can just give people another couple of days' leave, so they can have it if they want to, or take a dirty long weekend in Torquay if they prefer, and forget the whole thing. It'd certainly make me happy. Given the sheer quantity of indifferent turkey and glutinous gravy that I've had stuffed down my neck as 'seasonal' meeting fare, my only desire is to catch a plane to somewhere they've never heard of gravy.

      In exchange we must ask that those who do feel the need to celebrate Christ's birth do it quietly, tactfully, and without unduly disturbing the flow of traffic in the inner city.

      Sounds fair to me.

      I imagine that the reason why it hasn't actually happened yet is that Christmas isn't about Christ, like it or not, any more than Guy Fawkes' night is about burning traitors. It's currently a reason to let your hair down a bit about work, extort a hell of a lot of money from customers, and get incredibly stressed about your extended family.

      Christmas was around before Christ (go Mithras go!). You might as well call it hypocrisy that many who don't care at all about pagan rituals are busily collecting evergreens for the Winter Solstice. In fact, I'll do it for you: Hypocrisy!

    7. Re:Gifts for Christmas by Lord+Ender · · Score: 2, Interesting

      Christmas has its roots in Christian (well, roman) mythology. But when the secular United States government declared it a national holiday, it effectively became a secular holiday in the US.

      Today, the economic impact of Christmas is far greater to America than the philosophical impact.

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
  7. CLRS by Shano · · Score: 2, Interesting

    Aside from Knuth, which is more showing off than anything (not that the guy isn't a genius), one of the best algorithms books is Introduction to Algorithms, by Cormen, Leiserson, Rivest and Stein. I'd generally suggest algorithms over language-specific references, although modern class libraries tend to implement the best ones already.

    Other than that, I suppose your favourite collection of O'Reilly titles. I find Java in a Nutshell useful, as I prefer the dead-tree version to the online documentation. Many of the books on the webpage are language or library references, which are good, but very dependent on the programmer's interests.

    Dilbert books are always good, of course.

  8. Head First by 't+is+DjiM · · Score: 3, Insightful

    Personally, I like the head first series (head first java and head first EJB) a lot.
    Those books are entertaining and educating at the same time. An ideal Christmas present for yourself :-)

    --
    --Use ant to make .war
  9. Where are the following? by ad0le · · Score: 3, Informative

    C++: The Complete Reference by Herbert Schildt & Thinking in C++: by Bruce Eckel.

    In my opinion, the best c++ books out there.

    --
    My mother never saw the irony in calling me a son-of-a-bitch.
    1. Re:Where are the following? by hibiki_r · · Score: 3, Informative
      I'd not pick any of those two before Effective C++, More Effective C++, Advanced C++ Programming Styles and Idioms or The C++ Programming language. After you've programmed in C++ for six months, all the introductory stuff from the books you mentioned becomes a waste of paper, while the books I listed are still useful to a professional programmer.

      Also, read this excerpt of the alt.comp.lang.learn.c-c++ FAQ:

      6: Why do many experts not think very highly of Herbert Schildt's books?

      A good answer to this question could fill a book by itself. While no book is perfect, Schildt's books, in the opinion of many gurus, seem to positively aim to mislead learners and encourage bad habits. Schildt's beautifully clear writing style only makes things worse by causing many "satisfied" learners to recommend his books to other learners.

      Do take a look at the following scathing articles before deciding to buy a Schildt text.

      http://www.lysator.liu.se/c/schildt.html
      http://herd.plethora.net/~seebs/c/c_tcr.html

      The above reviews are admittedly based on two of Schildt's older books. However, the language they describe has not changed in the intervening period, and several books written at around the same time remain highly regarded.

      The following humorous post also illustrates the general feeling towards Schildt and his books.

      http://www.qnx.com/~glen/deadbeef/2764.html

      There is exactly one and ONLY one C book bearing Schildt's name on its cover that is at all recommended by many C experts - see Q 25.

  10. Missing: by Anonymous Coward · · Score: 2, Funny

    A stash of porn magazines.

  11. What kind of geeks are they? by skurk · · Score: 2, Interesting

    Programmers? Hardware hackers? Gamers? Gadget geeks?

    If your friends are into 3D programming or game development, I recommend some books about OpenGL.
    I know I want this one, "OpenGL Game Programming":
    http://www.amazon.co.uk/exec/obidos/ASIN/076153330 3/qid=1134394525/sr=8-8/ref=sr_8_xs_ap_i8_xgl/202- 6834711-0899839

    ..or maybe even "Open Source Game Programming: Qt Games for KDE, PDA's and Windows":
    http://www.amazon.co.uk/exec/obidos/ASIN/158450406 4/qid=1134395013/sr=2-3/ref=sr_2_11_3/202-6834711- 0899839

    If your friends are into hardware hacking, I recommend "Apple I Replica Creation":
    http://books.slashdot.org/article.pl?sid=05/03/03/ 0429213&tid=222&tid=6&tid=3
    I own this book myself and it's pretty cool, it covers almost all the DIY basics for building an 8-bit computer. How cool is that?

    And ofcourse, for the gadget freaks you have ThinkGeek and Nerdorama..

    --
    www.6502asm.com - Code 6502 assembly or.. DIE!!
    1. Re:What kind of geeks are they? by daVinci1980 · · Score: 2, Informative

      If your friends are into 3D programming or game development, I recommend some books about OpenGL.

      If your friends are serious about 3D programming, I recommend books about D3D instead. D3D is used in 99% of PC game development studios. An OGL-like API is used on the Gamecube, and the PS2 doesn't have a formal API for graphics, although lots of studios choose to emulate OGL with their own API. Finally, the XBox (obviously) uses a D3D API. That being said, it is much easier for a first-timer into the industry to get a gig with a PC development studio then a console development studio, so *if* you do graphics in the game industry, it's much more likely you will be working with D3D (to start) than with OGL.

      Stay away from anything by LaMothe, whether he edited it, wrote it or just wrote the forward. His books are absolutely terrible. I recommend the book Advanced 3D Game Programming with Directx 9.0 by Peter Walsh. Although "Advanced" this is a good treatment on quite a few game programming topics, and is really a good introduction to graphics programming.

      If your friend is an advanced graphics programmer, then GPU Gems or GPU Gems II might be more their speed.

      Finally, if your friend is interested in game development but not particularly in graphics per se, then the Game Programming Gems series is a must have, at least books 1-3. I cannot vouch for GPG 4 or 5 as I have not read them myself yet.. However, books 1-3 are phenomenal, and are widely used within the game industry.

      --
      I currently have no clever signature witicism to add here.
  12. Re:Knuth by Sybot · · Score: 2, Insightful

    Let me second Code Complete. That one should be on that shelf.

  13. PARENT NOT OFFTOPIC! by madaxe42 · · Score: 5, Insightful

    Godel, Escher and Bach is a damned good book, and any self-respecting geek should have read it. Twice.
     
    Other favourites include Capital by Marx, Crime & Punishment by Dostoeyevsky, Also Spracht Zarathustra (Nietzsche), The Fountainhead (Rand), The heart of a dog (Bulgakov) and Dubliners (Joyce).
     
    If you're a programmer, the last thing you're going to want to read are code books.

    1. Re:PARENT NOT OFFTOPIC! by ATeamMrT · · Score: 5, Insightful
      Godel, Escher and Bach is a damned good book, and any self-respecting geek should have read it. Twice.

      Other favourites include Capital by Marx, Crime & Punishment by Dostoeyevsky, Also Spracht Zarathustra (Nietzsche), The Fountainhead (Rand), The heart of a dog (Bulgakov) and Dubliners (Joyce).

      Those books are a little heavy to digest. I don't know about most people, but I would not want work as a gift, then to feel obligated to read 700 pages. I've read a few books by Dostoevsky, and they are not christmas books! Christmas should be about having fun, not getting a headache reading.

      If you're a programmer, the last thing you're going to want to read are code books

      I agree. It is like giving your mom a skillet for christmas because she cooks for you.

      Picking the right gift requires knowing your friend. One of the BEST gifts I ever recieved was from a neighbors wife. She is an awesome baker. She filled up a tin with homemade cookies, her daughters helped decorate the tin. It was a gift they put their hearts into. They spent a few hours at my place, it was nice to talk, to listen about their year, and what they were planning for the new year. Fellowship is the best gift.

      I also love getting christmas cards from friends who have moved away. It is a nice way to keep in touch with people.

      Remember, it is the thought that counts. The gift is not important. What is important is someone cares about you.

    2. Re:PARENT NOT OFFTOPIC! by MikeBabcock · · Score: 2, Insightful

      I'm not sure what friend would feel you were obligated to read the 700 pages and report back. I'd be personally quite happy that you enjoyed the book, however much or little of it that you read.

      This is why I buy people books -- I buy them sometimes challenging, sometimes light books, but its an interesting effort to try and match a book with a person properly. There are people I know who would be insulted by a book of less than 500 pages. Others would be insulted by a book with more than 20.

      --
      - Michael T. Babcock (Yes, I blog)
    3. Re:PARENT NOT OFFTOPIC! by aurelian · · Score: 2, Funny
      One of the BEST gifts I ever recieved was from a neighbors wife.

      Had to read that one twice - missed the 'from' first time.

    4. Re:PARENT NOT OFFTOPIC! by XMilkProject · · Score: 2, Insightful

      I want to second your recommendation of G.E.B.

      This is an amazing piece of work. Hofstadter worked for years and years on that book, and many people (myself included) feel that it is one of the most marvelous books ever written.

      I've heard many people say it should be required reading for every college student. While that is a novel thought, I don't know that 95% of people could grasp even the most simplistic meaning of the book.

      So, my opinion:
      G.E.B. is a duanting read, it is extrodinarly lengthy, and requires mathematical, musical, and artistic knowledge to fully understand. That being said, if there is a geek on your shopping list that you feel is highly intelligent and a dedicated reader, there is no better gift for them than G.E.B.

      --
      Big ones, small ones, some as big as yer 'ead!
      Give 'em a twist, a flick o' the wrist...
    5. Re:PARENT NOT OFFTOPIC! by ojustgiveitup · · Score: 2, Funny

      Just make sure not to put the Marx next to the Rand, they might rip each other to shreds.

  14. Obviously missing is... by Advocadus+Diaboli · · Score: 3, Funny

    ... a book like "how do I protect my website from being slashdotted" :-)

  15. You learn most from others' mistakes ... by christophe.vg · · Score: 2, Insightful

    A book that is really missing on this bookshelf is found on http://www.antipatterns.com/, really the definitive guide to learn from others' mistakes. O well, not always only others.

  16. Bookshelves by BioCS.Nerd · · Score: 4, Insightful

    I'm just a budding programmer, so my bookshelf is fairly skimpy (5-6 books -- mostly accumulated from class). However it seems to me that you're best to buy books that won't be dated as quickly, such as those that are more conceptual (e.g. design patterns, cookbooks, and Art of Programming type books). For everything else, O'Reilly Safari digital book collections are the way to go. I've found it has taken a little time to get used to not reading books on dead trees, but the convenience pays off.

  17. Garfield by Snap+E+Tom · · Score: 4, Insightful

    > Every good programmer loves garfield?

    I assume the article writer was asking a question. The answer is no.

  18. Re:Nothing by ergo98 · · Score: 3, Insightful

    I don't have anything on my bookshelf. I use google to find programming resources. This saves me from piling up books on very old technologies. It is also easier to search a web site than it is to load the Book On CD and search that.

    While I have several books, I feel the same way. I'm highly suspicious when I walk into a developer's office and see the two dozen ".NET" books on the shelf, the spines giving all appearances of never being violated. This is pretty much par for the course, though : Stock your bookshelf to give the appearance of a professional, when in reality it's just filler that is very unlikely to have ever been read.

    Indeed even many of the "classics" fall under this umbrella. The Mythical Man Month, Peopleware, and Code Complete are fantastic books, and everyone and their brother lauds them, yet if you talk to people you discover that, overwhelmingly, they haven't actually read them: It's just a meme to these people to talk about how great those books are. [Note: They ARE great books. Well, the MMM could have been condensed into a blog entry with little loss of value, and Peopleware could easily have been turned into a couple of blog entries, but nonetheless]

    Sidenote: Many Microsoft Press books come with a CD with an electronic copy of the book for searching and electronic access, as well as sample and promo material. Of course most developers wouldn't know this because they never actually cracked it open.

  19. Joel on Software's Book List by Poeir · · Score: 4, Informative

    Joel on Software posted a very useful book list, which extends more to the management of programming than to any specific language. This makes it more generally useful than yet another C book.

    --
    Sigs are like bumper stickers.
  20. Some other suggestions by benj_e · · Score: 2, Informative
    --
    The Tao that can be spoken is not the one eternal Tao
  21. ACCU Reviews by Frankie70 · · Score: 2, Informative

    Always a good idea to check the book review at ACCU before you buy any book. The reviewers here are mostly experts in the subject matter.

  22. Let them pick by KJE · · Score: 2, Interesting

    and give them a subscription to O'Reilly's Safari Bookshelf.

  23. On the Edge - History of Commodore by JoeCommodore · · Score: 2, Interesting
    Not just because I am a Commodore fan, this book, On The Edge: the Spectacular Rise and Fall of Commodore is turning out to be a really good read with a lot of inside history from many Commodore employees including Check Peddle, Dale Luck, Bil Herd, and RJ Mical.

    A lot more adventure and excitement than I had expected. Also gives a different (sometimes flattering sometimes not) of Apple, Atari and Radio Shack.

    --
    "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
  24. Has anyone else read by $RANDOMLUSER · · Score: 2, Interesting

    The New Turing Omnibus : Sixty-Six Excursions in Computer Science?
    A collection of essays about computer science, not programming. Very interesting and highly reccomended.

    --
    No folly is more costly than the folly of intolerant idealism. - Winston Churchill
  25. Re:Nothing by indifferent+children · · Score: 5, Funny
    Actually, I do have an O'Reilly CSS book in my drawer, but I never use it (because I cannot search it).

    You do know that books had Indices before databases, right?

    --
    Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
  26. The Soul of a New Machine by khendron · · Score: 3, Informative

    This book is on my shelf and is a must read for anybody working in tech.

    It is not a technical book. It is a non-fiction novel about a team of engineers building a mini-computer back in the early 1980s. The book might be 25 years out of date from the technical point of view, but few books capture the essence of the engineer's mind and commitment as well as this one does.

    --
    Life is like a web application. Sometime you need cookies just to get by.
  27. Where to begin by narcc · · Score: 2, Informative

    Some treasures on my shelf:

    D. Knuth, The Art of Computer Programming (Volumes 1-3)
    D. Berlinski, A Tour of the Calculus
    D. Berlinski, The Advent of the Algorithm
    G. Polya, How to Solve It
    P. Beckmann, A History of Pi
    G. Lakoff & R. Nunez, Where Mathematics Comes From
    Aho & Ullman, Principles of Compiler Design (1st Ed.)
    Aho & Sethi & Ullman, Compilers: Principles, Techniques, and Tools
    P. Freiberger & M. Swaine, Fire in the Valley: The Making of The Personal Computer
    H. Sheldon, Boyd's Introduction to the Study of Disease
    C. Petzold, Code: The Hidden Language of Computer Hardware and Software

    Anyone of these would have made a good gift for me -- and I'm sure other geeks would appreciate these as well. That is, if they don't own them already.

    On a related note: The conference proceedings from the ACM SIGCSE add quite a bit to my library every year. The membership is very affordable and makes an excellent gift (provided, of course, that the geek in question is not already a member of the ACM). I'm not sure about the other SIGs, but you certainly get your dues worth out of SIGCSE.

  28. Not to throw cold water on this or anything... by Peregr1n · · Score: 5, Insightful

    I find lo-tech paper books aren't costworthy in today's tech environment - they go out of date too quickly, and are thus resource wasteful (In my area - web tech - anyway). Any reference books I buy in digital form, as this is usually more cost-efficient.

    So for a REAL bookshelf... probably some IT-angled fiction. This is tricky as most authors fail to research tech angles correctly (like Hollywood computers, but not quite as glaringly obvious). Douglas Copeland's Microserfs was OK, and quite entertaining.

    For an intelligent recommended read though, I can't recommend the usual Zen and the Art of Motorcycle Maintenance highly enough. It really makes you think, which is nice. I've been meaning to check out Scott Adam's (of Dilbert fame) God's Debris too. That's free to download by the way. So it might be worth reading a bit and if you like it, you could buy paper copies for your friends.

  29. Re:Why do Programmers read books? by mackman · · Score: 2, Insightful

    While MSDN and online tutorials are fine for solving the very specific problems they address, they do nothing to teach you of programming philosphy or design in general. An application is more than a collection of code samples pasted together. That's more of a car wreck than an application. If you ever want to graduate beyond writing one-off tools to writing applications that other programmers will have to maintain in the future, you really should pick up a book. Besides, reading a book while compiling doesn't waste any CPU cycles.

  30. Book Pool by NaNO2x · · Score: 4, Informative

    I can't believe that in all this discussion no one has even mentioned the site "Book Pool" http://www.bookpool.com/ . This site is one of the most extensive places to purchase any computer books. I'd highly sugest browsing around there if you want to buy new books for a geek.

    --
    Utinam me logica falsa tuam philosophiam totam suffodiant.
    1. Re:Book Pool by williepete25 · · Score: 3, Informative

      And cheaper than most, I might add.

  31. A few must-haves... by Beek · · Score: 5, Informative

    Code Complete by Steve McConnell
    The Pragmatic Programmer by Andrew Hunt and Dave Thomas
    Refactoring: Improving the Design of Existing Code by Martin Fowler
    The Mythical Man Month by Fred Brooks

    The are a few off the top of my head that any programmer should read. I'm sure there are a few others. Most things after that are probably specific to certain areas and interests.

  32. Safari by tclark · · Score: 4, Informative

    I recommend a Safari subscription. It provides online access to everthing by O'Reilly and a number of other publishers. My subscription has saved me huge amounts of time, since I can search and find useful information on all sorts of topics without leaving my desk.

  33. Computational Beauty of Nature by headkase · · Score: 2, Informative

    I highly recommend this book for the part about computation alone (there are 5 parts in the book). In the computational part it covers number systems, infinity, and computability and incomputability. Then the rest of the book is gravy for a geek: fractals, chaos, complex systems, and adaptation (genetic algorithms and neural networks). It's the kind of book that gives you a framework to hang the rest of your knowledge on. Seriously, get it.

    --
    Shh.
  34. My personal favorites... by mackman · · Score: 5, Informative

    Neither of these I would recommend in general, but they are both excellent books if you are dealing with the subject matter they discuss. They are both enjoyable reads and extremely useful.

    Inside the C++ Object Model by Stanley B. Lippman. Lippman is one of the original authors of CFront (along with Stroustrup), the original C++ compiler which worked by translating C++ into C. This book explains how every C++ feature is implmented by the compiler: virtual functions, multiple inheritence, in-memory object layout, etc. If you are working on projects where the overhead of a pointer de-reference or virtual function call may be too much, then this book is a must read. Even if that doesn't describe you, this is still a suprisingly enjoyable read and will almost certainly help you at any job interviews for C++ programming positions.

    Hackers Delight by Henry S. Warren Jr. This deals entirely with efficient bit twiddling. It has chapters on counting the bits set in a word, finding the first set bit, quick integer square root approximations, etc. Unless you're working with embedded systems or otherwise need assembly-level optimizations, this book just serves to obfuscate your code. On the other hand, it's quite a fun challenge to try to figure out the algorithms without reading the explanations.

  35. What programmers really need. by balls199 · · Score: 2, Funny
  36. The Art of War and Machiavelli by rassie · · Score: 2, Interesting

    Sun Tzu - The Art of War (here) and Machiavelli - The Prince (here) are examples of books which have some applicability in the workplace of today.
    Both have the full texts available from the wikipedia links above.

  37. Re:Bookshelf? by bhsurfer · · Score: 4, Funny

    Probably the kind that are all stuck together...

    --
    Those are my principles, and if you don't like them... well, I have others.
    Groucho Marx
  38. hold that thought (that "counts") by Anonymous Coward · · Score: 4, Insightful

    >>Remember, it is the thought that counts. The gift is not important. What is important is someone cares about you.>>

    I wish people wouldn't waste money buying me gifts. If they spent five minutes talking to me about something they know I am really interested in, that would be worth far more. The "thought" that counts is a respect for a person. Giving wine to someone who never drinks it, giving lingerie to your wife (instead of asking for her wearing it as *your* present), giving a CD of music reflecting your religion to a couple of atheists, giving candles or "zen rock gardens" to people who aren't interested, checking off the names on a list, that ain't "the thought that counts"-- it's the thought that adds useless junk to an already crowded home!

    I've made the mistake myself in the past. These days I beg people not to give me gifts and (because my wife loves Christmas so much) I put in effort getting stuff for her that reflects her interests, even when I don't like the stuff.

    Everyone else, just give money to charity!

  39. Re:Why do Programmers read books? by Anonymous+Brave+Guy · · Score: 2, Insightful
    • Because it's easier to read a book than a screen for extended periods.
    • Because you can have n books open on your desk without wasting monitor space.
    • Because books can have bookmarks, possibly with notes, inserted.
    • And by far the most important reason: because the quality of writing, consistency of editing, overall design, and presentation standards of decent books are all still years ahead of nearly all web-based pretenders to the throne. It's a rare web site indeed that features truly well thought out content, well presented and written in good style, uncluttered by ads and irrelevancies, that fits into a coherent overall plan. Sure, the web is faster and bigger, but neither of those is spelt b-e-t-t-e-r. Read books when you want quality, not quantity.
    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  40. linux system administration by portscan · · Score: 2, Informative

    I really like Linux Administration Handbook by Nemeth, Snyder, and Hein. It is quite comprehensive and detailed, not to mention enjoyable to read. My copy is well-used, indeed. For any hobbyist who runs a linux box at home and is interested in the actual nuts and bolts of the system, rather than just the graphical configuration tools provided by (some) distros, it would be a welcome gift, I think. I used to just google around for online documentation until I came across this excellent reference, which is now the first place I turn.

    I think that buying a programming reference for a person who programs for a living would not be such a good idea. But buying something related to a person's out-of-work (or out-of-school) computer interests is a nice gift.

  41. The Art of Computer Programming by Kevin+Stevens · · Score: 2, Interesting

    TAOCP, while it may give you some good nerd karma, is pretty much useless for day to day programming. It is far too dense, and there are better books on algorithms out there for practical usage. Most people I know with it on their shelf have not made it past Chapter 2, if they even really made an attempt to read it at all. It looks nice up there, but I don't think it is all that usefull.

  42. A Programmer's Bookshelf? by jejones · · Score: 2, Interesting

    Hmmm. The obvious answers:

    Knuth.
    Gerald Weinberg's The Psychology of Computer Programming.
    George Polya, How to Solve It.
    Gries, The Science of Programming.
    Bentley, Programming Pearls.
    Gamma, Helm, Johnson, and Vlissides, Design Patterns.
    Abelson and Sussman, Structure and Interpretation of Computer Programs.
    Hunt and Thomas, The Pragmatic Programmer.

    Hmmm. My own bookshelf is lacking. Time to shop...

  43. Fountainhead *shudder* by SeanDuggan · · Score: 2, Interesting
    Other favourites include Capital by Marx, Crime & Punishment by Dostoeyevsky, Also Spracht Zarathustra (Nietzsche), The Fountainhead (Rand), The heart of a dog (Bulgakov) and Dubliners (Joyce).
    I had to read The Fountainhead for English in high school and I have decidedly mixed feelings. On one hand, it was interesting to read from an architectural perspective. The characters, on the other hand, exist not as people but as archetypes. But then again, that's the case in almost all of Ayn Rand's literature. We're currently in rehearsal for The Night of January 16th and some of the rhetoric she has characters spew out... I wasn't altogether kosher on the glorification of Roark's rape of Dominique.

    Another good book (good series, actually) is the Coldfire Trilogy by C.S. Friedman. In my opinion, it's an excellent example of building a fantasy world which has a rational reasoning for magic working and not technology.

    --
    This sig has absolutely no significance and serves only to take up screen space and waste the time of the reader.
  44. Re:Try "Notes from Underground" by xitology · · Score: 3, Informative

    As an aside my [older] translation begins with "I am a sick man... an angry man... an unattractive man. For whatever reason the newer translation substitutes wicked for angry. Perhaps someone who understands more Russian would know why.

    The Russian word is zloy, which can be translated both as wicked and angry among others. Dostoevsky uses zloy a lot, so the choice is quite significant. I don't know English enough to advise the best choice though.

  45. Debugging - Useful AND funny by raygunz · · Score: 2, Informative

    Debugging by Dave Agans: universal, often neglected principles to avoid long debugging cycles. Illustrated with interesting war stories and amusing anecdotes. This is one you'll actually read all the way through. Called a classic by several reviewers, including IEEE SW and Dr. Dobbs.
    It was reviewed on Slashdot http://books.slashdot.org/books/04/02/21/228241.sh tml, and is endorsed on the back cover by Rob Malda. (Disclaimer: I wrote it.)
    You can get it on Amazon but they sold out this week, so for Christmas you'd have to go Barnes and Noble and pay a bit more.
    Oh, and it's cheap ($15 on Amazon, $22 on B&N) but well worth the money.
    See http://www.debuggingrules.com/ for info, samples, free poster, etc.

    --
    "Debugging" by Dave Agans - the perfect gift for your favorite imperfect engineer.
  46. AntiPatterns by aschlemm · · Score: 2, Insightful

    I've seen numerous postings regarding the GOF Patterns book which no programmer's bookshelf should be without. One book I've also enjoyed reading and might be useful for other developers especially if you inherit someone's else's programming mess is "AntiPatterns".

    http://www.amazon.com/exec/obidos/ASIN/0471197130/ theantipatterngr/103-3030967-9900659

  47. Sadly... by sbszine · · Score: 2, Funny

    "...do you group your books by color or by topic? Especially the O'Reilly books... does the Sendmail one go in your "mail server" books? Does the pink Python book go next to the pink CVS book or next to the red and white Ruby book? Decisions decisions!" As a truly tragic geek, I order mine (using spine colour) by the electromagnetic spectrum. So Programming PHP (green) goes before Programming Perl (blue), etc.

    --

    Vino, gyno, and techno -Bruce Sterling

  48. yet another list of book suggestions by tjr · · Score: 2, Informative

    As has already been noted, books on particular technologies/languages/etc tend to go out of date pretty quickly, although even some of those are well-written enough to be timeless. I have a lot of computer books; if I had to whittle my collection down to those I viewed as most important, it would probably look something like:

    Structure and Interpretation of Computer Programs (Abelson & Sussman)
    The New Hacker's Dictionary (Raymond)
    Selected Papers on Computer Science (Knuth)
    Database-Backed Websites (Greenspun)
    Programming Pearls (Bentley)
    The C Programming Language (K&R)
    Algorithms (Cormen et al) --OR-- The Art of Computer Programming series (Knuth)
    Essentials of Programming Languages (Friedman et al)
    The Little Schemer (Friedman & Felliesen)

    This last book is perhaps one of the most elegantly simple, yet profound books I've ever read. Even though it is not as comprehensive as, say, SICP, this is probably my favorite computer science book, because it's such a joy to read and it truly expands your thinking.

    Those books, combined with online or printed language/API manuals, would make a great foundational library for a programmer.