A Programmer's Bookshelf 362
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!)"
THHGTTG! (Score:1, Insightful)
Gifts for Christmas (Score:5, Insightful)
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.
Head First (Score:3, Insightful)
Those books are entertaining and educating at the same time. An ideal Christmas present for yourself
Re:Knuth (Score:2, Insightful)
PARENT NOT OFFTOPIC! (Score:5, Insightful)
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.
You learn most from others' mistakes ... (Score:2, Insightful)
Bookshelves (Score:5, 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 [oreilly.com] 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.
Garfield (Score:5, Insightful)
I assume the article writer was asking a question. The answer is no.
Re:Nothing (Score:3, Insightful)
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.
Re:PARENT NOT OFFTOPIC! (Score:5, Insightful)
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.
Re:There are so many options (Score:3, Insightful)
Not to throw cold water on this or anything... (Score:5, Insightful)
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 [andrewsmcmeel.com] by the way. So it might be worth reading a bit and if you like it, you could buy paper copies for your friends.
Re:Why do Programmers read books? (Score:3, Insightful)
Re:PARENT NOT OFFTOPIC! (Score:3, Insightful)
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.
Re:Gifts for Christmas (Score:4, Insightful)
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.
ASK THE CODER QUESTIONS ON THEIR CURRENT PROJECT (Score:1, Insightful)
E.G.-> Whatever topic's specific to the job they are working on currently (or slated for the future) I would suppose, & if possible, in the language their employer uses (as well as the toolset/IDE for it).
The thing is about this, usually though, is that your employer WILL buy you the books necessary & sometimes even send you for training if needed (if the deadline's not right around the bend)... it's just like investing in tools the company needs.
The 'downside' of this is that the company keeps the book, not the programmer... after all, they did pay for it.
So, if I were looking for a new book?
This is why I was like (in my subject) ASK THE CODER QUESTIONS ON THEIR CURRENT PROJECT.
(Especially if it is new material for them, or 'complex' material)
Best part is, that the web (especially nowadays) supplies a GREAT deal of examples for this anyways, so you're never really totally out of luck.
This is the 1 place the internet has helped myself & others to a HUGE extent, vs. the content out there online for this type of work that existed in say, the 1980's-1990's.
There is just SO much great & accurate working info. out there online, that it just makes your daily job MUCH simpler/easier than it was in the past, no questions asked.
(Especially for the "hairier" ('more complex', & I quote it because once you've done it once before, it's no longer 'complex/hairy' anymore, just another notch on your skillset belt)) projects)
It helps out a great deal!
E.G. -> Cross-platform apps (from PC side to a midrange or mainframe computer) usually start out this way imo, a bit confusing, but then once you get the communications system down between platforms (be they UNIX, VMS, zOS variants from IBM, Linux, etc.) for however you're doing it (prebuilt middlewares, or built from scratch ones, harder by far imo) then, it's pretty much std. "IS/IT/MIS coding" to populate PC-side controls like grids or reports, if not inserts/updates to a Server (PC) side DB engine like SQLServer, Oracle, DB/2, etc....
(That is unless the data needs conversions during import/exports, & it usually does - thank goodness for GOOD "DBA's" here, they usually deal with this, or clue you into what you need to do with return data client app side prior to database engine updates/inserts via SQL, to make it compatible with your backend DB engine)
APK
P.S.=> So, bottom-line?
Personally, I'd ask this person what it is he is doing for work currently (or, in upcoming projects) that he/she is not 110% up-to-snuff/par on!
Then, nab them a book in that area, for their own personal use - because again, 9/10 times the employer you work for WILL buy the book for your use on the job but not for your personal collection (if not send you for training, but many times you can or should be able to teach yourself from a book acting as your guideline)... apk
hold that thought (that "counts") (Score:4, Insightful)
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!
Re:Why do Programmers read books? (Score:3, Insightful)
Re:Gifts for Christmas (Score:2, Insightful)
Please allow me to opt out!
Re:There are so many options (Score:5, Insightful)
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.
Re:PARENT NOT OFFTOPIC! (Score:2, Insightful)
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.
Re:Frederik Brooks (Score:3, Insightful)
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.
Re:There are so many options (Score:5, Insightful)
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.
AntiPatterns (Score:3, Insightful)
http://www.amazon.com/exec/obidos/ASIN/0471197130