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!)"
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.
...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.
The Army reading list
The Mythical Man-Month by Frederik Brooks (clicky) has some very good insights which still hold true (the book was originally published in 1975).
Who needs anything more than man?
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"!
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.
The Hitchhiker's Guide to the Galaxy - for those moments when you're sick and tired of programming.
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.
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.
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
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.
Notice that about half of the books are O'Reilly...
Get 'em the pocket references. Mine never make it back to the bookshelf; they just live on the desk on top of my monitor.
A stash of porn magazines.
Programmers? Hardware hackers? Gamers? Gadget geeks?
0 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":6 4/qid=1134395013/sr=2-3/ref=sr_2_11_3/202-6834711- 0899839
/ 0429213&tid=222&tid=6&tid=3
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/07615333
http://www.amazon.co.uk/exec/obidos/ASIN/15845040
If your friends are into hardware hacking, I recommend "Apple I Replica Creation":
http://books.slashdot.org/article.pl?sid=05/03/03
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!!
Anything by W. Richard Stevens.
Design Patterns by Gamma, Helm, Johnson and Vlissides.
Let me second Code Complete. That one should be on that shelf.
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.
By Damien Conway , O'Reilly ISBN 0-596-00173-8
;)
I'm hoping that they make a series of 'Best Practices' with a C/++ and Python too. It was quite expensive at $40 but I bought local. Totally packed with amazing nuggets of things you never knew you never knew
No BOFH?? I thought that was required reading .. and in lieu of that, how about Ambrose Bierce's Devil's Dictionary? .. Granted they are not programmer litterature in the strictest sense, but where else are programmers going to get inspiration for all these mean little tricks and the sunny disposition?
Warms my heart to see that on a bookshelf.
Green Book, Lucious Orange, Pink Shirt Book, Devil Book, Dragon Book, Red Book (aka. the Ugly Red Book that Won't Fit on a Shelf). Now I'm going to go kill myself.
fortune -o
... a book like "how do I protect my website from being slashdotted" :-)
Advanced Programming In The Unix Environment, 2nd Ed: http://www.awprofessional.com/title/0201433079
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.
Actually, I do have an O'Reilly CSS book in my drawer, but I never use it (because I cannot search it).
"If God had intended us to walk he would not have invented roller skates." -- Willy Wonka
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.
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.
http://www.amazon.com/gp/product/0764570692/104-45 58507-7676721?v=glance&n=283155
So much O'Reilly's books
> Every good programmer loves garfield?
I assume the article writer was asking a question. The answer is no.
Bruce Eckel has some great books here. I use them as reference for OO stuff. There is also Windows Internals, great book, for windoze code monkeys.
Too general a question. I wouldn't know what books to get my OWN geek friends-'cept this one guy--the little sellout wants an entire .NET library.
The best bet would be the good old impersonal gift card.
Or Zen and the art of motorcycle maintenance, the complete works of Edgar Allen Poe, or a Far Side gallery.
e-books on your folder? These might be free of charege but for a good content no price is too high. Right?
Are we missing this?
d -0764549979.html
http://www.wiley.com/WileyCDA/WileyTitle/productC
He who knows best knows how little he knows. - Thomas Jefferson
Scott's books might be called "how to get around the deficiencies of C++".
What about the first printing of Kernigan and Ritchie's, "The C Programming language"?
THAT would look nice on a bookshelf.
Nothing But Coupons - Your no-frills site for online coupons and discou
I'd substitute the Perl Cookbook for Learning Perl.
This is a very nice collection. I think Cormen and Rivest's Algorithms Book would be a nice addition. It prefers pseudocode to Knuth's MIX and so it is easier to create implementations in high level languages. What is missing are: Books on X Windows Programming (assuming O'Reilly still publishes them), OpenGL (Programmer's Guide and Reference), Books on Lisp/Scheme (SICP, SAP, Common Lisp by Steele, Dyvbig). Numerical Recipies in C (one of the great books of all time).
an ill wind that blows no good
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.
... unless you have infinite space and money. Nobody's a "programmer" these days. Your choice of books depends on what you're doing: embedded microprocessor systems, php server pages, capturing and analyzing video, etc. I have hundreds of books on everything from java to html to Flash to Visual C++. Not having enough space to keep them all at hand, I pack the ones not in current use away and when I start doing that type of work again, I bring them back out. About the only universal books I can think of are the Knuth series, or the "Mythical Man-Month" types, and even those you won't typically consult more than once a year, or at least that's my experience.
Toys! Like Warcraft figures. Mario and Wario. In little karts.
... I recommend The Prince.
Elements of Programming Style
Code Complete
Software Project Survival Guide
Society of Mind
The Tao that can be spoken is not the one eternal Tao
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.
I have found the book Data Structures Using C and C++ by Yedidyah Langsam,Moshe J. Augenstein,Aaron M. Tenenbaum quite useful while dealing with data structures.
and give them a subscription to O'Reilly's Safari Bookshelf.
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
If you just need reference material on C# or HTML or C++ or whatever, then go for O'Reilly books--or the equivalent--for what you need to know.
But if you want to expand your mind as a programmer, then go for books like:
Paradigms of Artificial Intelligence Programming (Norvig)
Structure and Interpretation of Computer Programs (Abelson & Sussman)
Thinking Forth (Brodie) - One of my favorites; read even if you don't care for Forth.
I can't believe this book made it on here. Java Cookbook is also by O'Reilly and is many times better for real world examples. In fact the whole Cookbook series more useful than the api docs in many cases.
One of the better books to buy is the Pragmatic Programmer.
Its an easy, relaxed read.
Its broad scope gives guidance for programming novice and expert alike.
It teaches you to appreciate your own craftsmanship as a developer, and discusses (in generalities) the tools you need to master to be called a 'software developer'.
It also includes good starting points (recommendations) for things (like Subversion or CVS for source control, Perl for Macros)
All in all, I would recommend it as a must-have for serious programmers.
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
I like this idea a lot. Go owner of the site!
This
Honestly, as a full-time web developer in PHP/ASP/SQL/Flash/Java, I don't use books. I use Google 99% of the time I need to know something. So my bookshelf is full more of Douglas Adam's books than O'Reilly, for instance. If I had to buy a computer oriented book however, it would definetely be from the O'Reilly publishers.
I kill harmless processes for sport
I've always wondered why the programmers around my office read so many programming books. It seems strange that people so into technology like hunks of dead tree.
I'm not really a professional programmer but can put together quite a bit of C#, ASP.Net, ASP, VB, Javascript, Perl etc. Forgive me, I'm an Engineer.... Anyway, I'd much rather read online tutorials or MSDN help articles than programming books.
What am I missing?
If your looking for Linux books, "Linux Server Hacks" or "Liux Desktop Hacks" put out by O'Reilly have really been valuable.
My copy of "PHP Phrasebook" by Christian Wenz is in need of repairs already. It just came out two months ago. (Apache Phrasebook is due to follow soon).
"Css Pocket Reference 2e" by Eric Meyer (O'Reilly) is not organized very well, but again, I've used it so much already that it needs to be rebound.
How about a subscription to a magazine like "Linux User & Developer" or "Linux Magazine". (Oh, can somebody tip my wife off on that idea, please!)
And there is a fantastic book that I really want for Christmas, "Linux Toys: 13Cool Projects for Home, Office and Entertainment " by Christopher Negus. "Projects include transforming an answering machine into an e-mail converter, building an MP3 music jukebox, building a car entertainment center, and creating a TV video recorder/player."
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.
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.
Required reading for internet skeptics
Second edition. A good general reference with specific implementation notes for Perl, Java, .NET, etc. It is by far the most thumbed-through book on my "shelf" (aka, "The pile of books on the corner of my desk"). Good for beginners or experts needing a handy reference.
You wouldn't think so, but it's also a good cover-to-cover read, provided you're interested in that kind of thing.
By Jeffrey Friedl
My sig sucks.
Design Patterns: Elements of Reusable Object-Oriented Software, Gamma et al
Refactoring: Improving the Design of Existing Code, Fowler et al
Domain-driven Design: Tackling Complexity in the Heart of Software, Eric Evans
Test Driven Development: A Practical Guide, Dave Astels
Working Effectively with Legacy Code, Michael Feathers
And slightly off the wall...
Object Thinking, David West
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.
I see he hasn't returned his (right between his Postscript reference and his Oracle 8 DBA handbook) LISP book to the library just yet. And I gotta love arranging all his ORA in chromatological order.
This is not my sandwich.
I've found "Tricks of the UNIX Masters" helpfull in all sorts of ways. Great book, good layout, and easy reading.
Javascript - the Definitive Guide
Definitively!
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.
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.
Treasure, indeed! My wife makes fun of me when I read it, but it is quite good. It's certaintly not as dry as the title might suggest to some... very interesting and well-written.
Now, I took a class in college called "History of Math" - that WAS every bit as boring as the title suggests!
My sig sucks.
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.
Hmmm, well, I would ask them a few questions first!
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
If you're going to do any OpenGL programming, get the OpenGL Red Book and the OpenGL Orange Book. These two are definitely the most heavily-used books on my shelf. Another great OpenGL book is Advanced Graphics Programming Using OpenGL by McReynolds and Blythe. Of course, if you don't do any graphics programming, these books will be useless.
Don't buy books for someone. It presumes you know what they want to do in the future enough to avoid expensive duplication or uselessness. How about this instead, invite them over for a good dinner and company.
If your friend has lots of books - gift him a bookshelf.
Jeffery Friedl (sp?)'s Mastering Regular Expressions.
I have the first edition; if I had to throw away all but one of my O'Reilly books, that would be the one to stay.
I am still missing the books on Object Oriented Programming, which fill most of my book-shelf.
My most favourite book is:
"Pattern Oriented Software Architecture" - "A system of patterns"
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Micheal Stal (of Siemans AG, Germany) - http://www.wiley.com
Anyone else with good OOP-books?
As a former collector of programming books, I have come to the realization in the past year or two that less is more. I know people with bookcases full of books. The probem is that they are dependent on them to the point that they can't think on their own. They are paralyzed if they can't look it up. Granted, we can't all remember the details of every API, but I'm talking about general algorithms (e.g., quicksort) and data structures (e.g., tries).
I've been culling my own collection of books, and I have it down to a very few titles: Introduction to Algorithms, Second Ed (Cormen et al); Pattern Classification (Duda, Hart, and Stork); Design Patterns (GOF); Nature of Mathematical Modeling (Gershenfield); Mythical Man Month (Brooks); and three Java books. I don't miss any other books
BTW, my opinion is that "The Art of Computer Programming" series by Knuth, while scholarly and respected, is of little to no use to most people. I don't believe people when they say they use it regularly.
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.
"Don't Make Me Think" is an excellent book for anyone who deals in web site design, or even basic interface design. I recommend anyone who is a programmer and doesn't think they need to consider ruddy things like coherent user interfaces to read this book. Very approachable and very interesting. Though I do not recommed visiting Krug's website as an example of a well designed web page ;).
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.
History of My Life (Volumes I & II)
U.S.S.
Body Language Secrets: A Guide During Courtship & Dating
The System: How to Get Laid Today!
Everything else can be looked up on the internet.
really, who needs all those HTML and web design books? there were umpteen books on an alphabet soup of programming languages, but only two database books representing only 2 (3 if you count msql) databases. a bunch of system admin type books. i don't think this is a great list. it could be pared down to some books on internet protocols, a few tutorial type programming books, and a few books on theory. really, everything else is better online in its constantly updated manual format, such as the books on mysql and programming language reference.
i *do* like real wood pulp format books, but it's mostly for data that isn't changing too much or too often. some things are better online, some are better on paper.
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.
Death March is sort of the modern-day Mythical Man-Month. I found it by accident a couple of years ago while involved in a Death March myself. Excellent book, and worth being on any developer's bookshelf.
But my mom was so happy she cried when I bought her a set of T-Fal cookware. If you've used T-Fal, you'd know why she was crying.
My work here is dung.
"O'Reilly - Mastering regular expressions" book missing, very important from my point of view. :P
But
In the spirit of the first post, the mention of Goedel/Escher/Bach, I've found that there's lots of math titles that are fun for us programming types to read. I don't mean the really seriously technical titles, the ones that come in plain covers where you can't comprehend the title and the first words are "Let x...". But there's lots of titles I've found to be fun that sort of skirt the periphery. A few that I've liked:
Knuth: things a computer scientist rarely talks about (not math, but lovely)
Surreal Numbers (also by knuth, does a sort of quasi-fictional walk through of "On numbers and games" (which I can't seem to get around to getting to far into)) Winning ways for your mathematical plays(combinatorial games, really amateur math. In a similar vein collections by Martin Gardner are also fun).
Conway s "The book of Numbers" really about numbers and their character, can't reccomend to highly (although a professional mathematician might get bored.
Mind Tools (Rudy Rucker)
There's also a few other books by Hofstader, there's an article collection that's very nice (Mathemagical Themas, I think? something like that, don't have the time to look it up). Also your avg. geek might like more general science writing, any of the collections of Stephen Jay Gould make good reading as well.
I keep one at Amazon and ThinkGeek. I'm surprised at how many people don't check to see if I have a wish list, frankly.
I just have a bookmark... it gives me every book I need =)
perl -e "eval pack(q{H*},join q{},qw{70 72696e74207061636b28717b482a7d2c717b343 637323635363534323533343430617d293b})"
>>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!
In no particular order:
0 09521-6775228?v=glance&n=283155). His sister is the musician Poe, who has an album out (Haunted) which features a few songs inspired by this book (5 1/2 minute hallway, for example). His father is a film maker, and I guess was a major inspriration for this book. This book was originally a hyperfiction available online (or so it says and so some rumors have said, but I have not found a copy of it online).
-1984 (one of the best dystopian novels ever written, and the Mac commercial inspired by it isn't bad either). This would also go great coupled with a copy of Beyond Good & Evil for whatever system your friend prefers to play on.
-House of Leaves by Mark Z. Danielewski this is an avant garde horror novel that is both one of the most interesting, most challenging (not in terms of figuring out what's being said, but in terms of navigating through the multiple layers/plots of the story), and most enjoyable book I have read. (Amazon: http://www.amazon.com/gp/product/0375703764/002-6
-See Under: Love by David Grossman is another superb avant garde literary work. It's Holocaust fiction and tells the tale of a child of survivors trying to come to terms with his family's past (it starts out with him trying to find out what the "Nazi Beast" was and how it came into being; the second part explores trying to uncover the mystery of his grandfather; the third part is the telling of his grandfather's story who in turn is telling a story to a Nazi Commandant; and the final part is in encyclopedia format, alphebatized by the Hebrew alphabet, telling the ending of the story his grandfather had been telling to the Commandant).
If you're going to give somebody a dense book, give them a book that's dense to a tangled plot with multiple levels of interpretation rather than dense due to older forms of writing. Classics are great to read and own copies of, but unless your friend is a fanatic about the classics, try to find something less than 100 years old as he is more likely to read it and will be more likely to enjoy it. I also recommend a collection of Sherlock Holmes because geeks should like logically deducing stuff. Holmes goes well with a nice adventure game (many of which can be purchased for less than $10).
Enjoy!
Read my blog posts on usability.
Some others that should be read by most programmers:
The Dragon book
Some modern compiler book, like one of Appel's, or possibly the new Aho, Sethi, Lam, and Ullman book when it's released.
Purely Functional Data Structures by Chris Okasaki
possibly Algorithms : A Functional Programming Approach by A. R. Fethi, though it's a bit light
SICP, which has been mentioned a couple of times
and does anyone know if there's a book out there on how to get off your ass and write some good documentation to accompany your code.
-30-
This book has become my gold standard in terms of Software Engineering Theory and best practices. While it is made by the evil corporation (we all know who that is, no need for a flame war), it has some of the best ideas collected into one book. I would definitely recommend it on any programmers bookshelf.
What Einstein Told His Cook (Both volumes), by Robert Wolke. For those geeks who have strayed into the kitchen [like the ones who follow Him, errr... Alton Brown], the book provides insightful tidbits into debunking common kitchen fallacies, and answering some of the "whys?" of kitchen science.
--You will rephrase your request for me to go to hell. Goto statements are not acceptable programming constructs
www.google.com is all I need.
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.
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.
I bet that one is in pristine condition :-)
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...
That's an interesting perspective. IME, a lot of people speak highly of these books in particular precisely because among all the good books out there, these are the ones many people actually have read. YMMV, of course.
Incidentally, I think the first edition of Code Complete was better than the second. The principles in the first were timeless, and every bit as applicable to OO code as to anything else. I felt that the second edition, for all its OO-friendliness and trendy language examples, lacked the depth of understanding based on real experience that made the first volume so good.
Even after several years in the business, I picked up plenty of helpful ideas from the original. I rarely found anything that actually contradicted my own experience.
In contrast, I found little extra value in the new edition. I strongly disagreed with some of the "conventional wisdom" it presented on things like OO and exceptions, and I found it telling that the suggestions I disagreed with were often presented without citing case studies and real world experience to justify the position the author recommends.
The original was a classic. The newer version is still worth a read, but IME most of its value is inherited, and it's more like Code Complete Lite (+ a big splash on the cover that says "Now with OO stuff!").
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
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.
Try Notes from Underground. It's only ~150 pages, so it's lighter in that sense; it's still fairly tragic but is incredibly worthwhile reading.
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.
PS I think you meant Also Sprach Zarathustra.
I want to drag this out as long as possible. Bring me my protractor.
C++ Coding Standards
101 Rules, Guidelines and Best Practices
by Herb Sutter & Andrei Alexandrescu
80% of the items are fairly common knowledge but the other 20% are worth the price of the book.
A book on secure programming by Microsoft?
Quite honestly, I think most books that go on a programmers shelf should be gotten by the programmer depending on whatever they are working on. Avoiding specific languages and such unless you KNOW they want something for a specific language for a specific task, in which case you should probably check around amazon.com to see what might be best. My favorite gift book for would be programmers or to those that have been in the business for only a couple of years is The Pragmatic Programmer. It's a great read and is chock-full of useful information and if you don't agree with everything they have to say, and I dare say that most won't, their reasoning behind things is pretty solid and after 10 years as a programmer, I can really appreciate most of their advice. There are just some things that aren't taught in college and this book, in my opinion, contains a solid number of them.
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.
I was heartened to see the Stevens networking books...but what about Advanced Programming in the UNIX Environment? This book is W. Richard Stevens' masterpiece on UNIX programming -- it's the bible. It's the ONE book that you can expect every programmer to have.
This thread made me think of my own book shelf. You know...if your house caught on fire, how you would try to grab your most precious possessions....like your main computer that has everything on it (not just a backup :)), your important papers, etc. But come to think of it, I would have to grab my "out of print" copy of Topics in C Programming by Kochan and Wood--the single greatest book ever written on C programming. IMVHO :)
I would be remiss if I did not put in a plug for Edward Tufte's amazing series of books about Informaiton Design. These are not mathematical treatise but rather his views and theories about how to display multiple dimensions of complex information on two dimensions (computer screens, paper, etc.). It is more Do's and Dont's, Rules of Thumb and general advice than hard rules but it an amazing and enlightening journey through examples and discussions. He also is an amazing lecturer and does a tour every year to many magor cities.
His books are:
The Visual Display of Quantitative Information
Envisioning Information
Visual Explanations
If you ever put together a powerpoint slide deck or design a web page then you should acquant yourself with Mr. Tufte!
Those books are a little heavy to digest.
d ex.htm
Some of that line can be found online in compressed/abridged form, if you don't feel up to reading the whole text.
http://www.btinternet.com/~glynhughes/squashed/in
I'm a fan of books24x7 http://www.books24x7.com/. You get the searchable text of thousands of books. The cost of the service is modest if you consider what a good tech book can cost. I've found it to be a valuable resource, especially when I need a refresher on a topic.
...I have been looking for girls for my geek friends.
I agree with most of the comments including you must have Code Complete on your bookshelf, probably rapid development by the same Author too.
One suggestion however. While I love O'Reilly's books the MySQL book is not one of there best(It was a mistake combining it with mSQL[does anyone still use that?]) The New Riders MySQL by Paul Dubois is far better.
Choose your allies carefully, it is highly unlikely you will be held accountable for the actions of your enemies
I agree, get them something recreational! I'm sure I'm not the only one hoping for The Complete Calvin and Hobbes
You only use 2% of your DNA
As soon as I discovered Postfix I tossed my complicated sendmail books. M4 macros, yuck.
msdn.microsoft.com
groups.google.com
www.devguru.com
Thats about it. Plus the usual: google search (google.com)
Frog blast the vent core.
Why not get them gift cards? Why tell them what to read when you can enable them to read what they want?
"How to implement logging, useful exception handling, helpful error messages, and robustness to your program."
You can find it in the section labeled 'fiction'.
Is that we have to use books at all. I do have a few books, but they go out of date so quickly that I invariably get an electronic version where I can. As geeks we should pioneering the paperless office, but my experiance is we use more than most and I'm as guilty as anyone.
My pattern is that I download the manual/article that I want to read, skim it on the screen, then when I find a section that I want to read/refer to I'll print out a temperary copy. Once I've finished with it I'll throw it away. When I started with Linux / OS X, man -t was my best friend.
There is still no substitute for the paper inteface. I've tried two CRTs on the same system, but found that I just feel closed in. Then I tried a 20" LCD for work with a 12" laptop for reading. Much better, as I could read it in another room/forest but still not as confortable as a few sheets of A4.
Also, I've recently found myself asking this question. Paper, unlike most electricity, is a renewable resource. Am I doing more or less good to the environment by reading it from a power hungry laptop than I am by printing off a copy? The only thing I seem to be saving by not owning physical books is storage space and small percentage of the purchase price.
Scared of flying, pointy things snce 1979!
My own personal bookshelf includes a multitude of Java textbooks and references (I'm a high school CS teacher), one of which is programming.java by Decker and Hirshfield which was my college textbook in CS 141 and 142 and good ole HamTech. I also have my other college texts: Structured Computer Organization by Tanenbaum, Fundamentals of Sequential and Parallel Algorithms by Berman and Paul, Programming Languages by Sethi, Artificial Intelligence: A Modern Approach by Russell and Norvig and a handful of reference materials (Learning GNU Emacs, Java in a Nutshell, C++ for Java Programmers, The Practice of Programming, and Learning the UNIX Operating System). But by far, the two books that I have in my collection that I would recommend are Zen and the Art of Motorcycle Maintenance by Persig and Soul of a New Machine by Kidder. Both were required reading in college CS courses, the profs in the dept thought that if we were to graduate with a CS degree, these were two books that we needed to read, they were right. Excellent books, and something more interesting as a gift than a reference book. The third book to suggest would be Just For Fun by Torvalds and Diamond. While I haven't read it myself yet, I thought it would be helpful to include two suggestions of books that I have read and one that is on my wish list...
Oops, the subject should have read... Motorcycle Maintenance, New Machine, and Just For Fun
I've got the entire Idiot's Guide collection, but I haven't been able to get through any of them.
They're so fucking confusing!
BDR Gear
Outdoor gear, MREs, and more!
You may actually want to hit your local library before signing up for Books24x7 - most libraries that I've been to in recent years have subscriptions there as part of their online presence.
If you have a library card, you have a free subscription!
Doesn't he/she probably already have many books? And really--while books like Stevens' UNIX programming books may make good references, just reading them is not too exciting or useful. It depends on the person. Why not buy the person some dance lessons or something? Group classes are usually only $10 or $15 per hour at most. Get the person out of his/her comfort zone! Give them an incentive to try something new! Reading is awesome, but there are other things in life too!
In my experience, it is fairly common for good software developers (working in industry), to read no less than one book per month. What you need to remember (and what other posts have already emphasized) is that these books shouldn't only include "flavour of the day" books on particular languages or tools; they need to include the broader stuff, those things that stretch your understanding and make you a better problem solver.
+ Spiderfood
He left several seminal books off the list. But I really just wanted an excuse to say SEMINAL!
Translucent Databases, David Weyner
Python Programming on Win32, Hammond & Robinson
Inside Windows 2000,
The Perl Cookbook,
Learning Python,
Design of the UNIX Operating System, Maurice Bach
The Design & Implementation of the 4.4 BSD OS, Kirk McKusick
The Design & Implementation of the FreeBSD OS (now)
Principles of Digital Audio
Linux IP Stacks Commentary
Linux Core Kernel Commentary
Secrets & Lies + Applied Cryptography + Beyond Fear, by Bruce Schneir
The Mythical Man-Month, Fred Brooks
MySQL, Paul Dubois (the O'Reilly mSQL+MySQL book is CRAP)
Developing Apache Modules in Perl & C
Advanced Perl Programming, Sriram Srinivasan
The Practice of Programming, Kernighan & Pike
PowerPC Computing, Jerry L. Young
Motif Programming, Marshall Brain
An Introduction to Database Systems, C. J. Date
Algorithms in C, Robert Sedgewick
Lions's Commentary on UNIX, John Lions
sed & awk, Dale Dougherty & Arnold Robbins
DNS and BIND, Paul Albitz
Graphics Programming Black Book, Michael Abrash
OpenGL Programming Guide, OpenGL ARB
Programming Windows 95, Charles Petzold
Zen of Graphics Programming, Michael Abrash
Mastering Turbo Assembler, Tom Swan
Tricks of the Game Programming Gurus, LaMothe
(just for how bad it is)
by Jan Gullberg
A mathematics book written by a non-mathematician (a surgeon by trade) with a real passion for the topic. An impressive tome (better than 1,000 pages and heavy enough to brain a sewer rat) it is printed in a double galley format with wide margins (Fermat would have loved it), making it easy to read. I find it an enjoyable reference book, easy to pick a chapter for a good read. And if you get confused by a topic, just go back a few chapters.
My book shelf mostly contains books that do not get old. That means: they do not focus on a certain API or technology. They are on object oriented design and general programming. All the "implementation details" I read online as they just change too frequently. And honestly, why do people recommend books on "how to write compilers" when most developers never have to do that? Oh, and did anyone actually *understand* Knuth's work?
These nerdy books were highly recommended by my cat:
http://www.flickr.com/photos/axello/69859723/
http://www.amazon.com/gp/product/0887308589The Dilbert Principle. He'll love it, I did.
- We are the slashdot. Resistance is futile. Prepare to be moderated -
Hi all, it appears someone has slashdotted my bookshelf. Hope you got something useful from it :-)
A quick note that the original idea behind this was to assist some of our customers in the embedded arena by showing what books we used. Yes there are a number of "classics" missing (they were mostly on the shelf below ;-) but the idea was for a representative "sample" not a definitive booklist. If I were to create such a list it would include at least
- The Pragmatic Programmer by hunt
- Code Complete by McConnell
- Engineering mathmatics by K A Stroud
and the non programming booksSome people have noted they dont use their knuth much, personally I would often be lost without it, although there are many other good books on practical algorithms out there now (I am and old fart and years ago knuth was *it* ;-)
I have a computer on my bookshelf. It has many ebooks.
http://www.amazon.co.uk/exec/obidos/ASIN/02016162
http://www.amazon.co.uk/exec/obidos/ASIN/02016336
http://www.amazon.co.uk/exec/obidos/ASIN/01359744
http://www.amazon.co.uk/exec/obidos/ASIN/09745140
http://www.amazon.co.uk/exec/obidos/ASIN/03212786
http://www.amazon.co.uk/exec/obidos/ASIN/03211465
http://www.amazon.co.uk/exec/obidos/ASIN/01311770
For all the comments about programming books get outdated so quickly, the Design Patterns book is the exception to that rule. By focusing on logical concepts and problem solving techniques independent of the current programming fad (Ajax anyone?), Design Patterns will not "age," and has just as much benefit 10 years from now. I highly recommend it to any programmer.
Interested in Sports with a brain? --> http://dispatchesofj.blogspot.com/
Here is my bookshelf: with cover images, without cover images, and with cover images ordered by color.
For me to enter The Structure and Interpretation of Computer Programs. Everyone should have a Lisp book, and this one presents many insights about programming and data representation. I wish I'd had a copy when I was an undergrad.
Making your servers /. Proof: 2 weeks
Not getting you Amazon affiliate id into your hrefs before 1000s of willing geeks flood through your site into Amazon: priceless.
I actually wrote a /. journal entry about this a long time ago... maybe it would be a useful start?
/ journal/
http://developers.slashdot.org/~minotaurcomputing
-m
Yes, I know the text itself is public domain and can be D/L'd from project Gutenburg. But the real value here are the extensive historical end-notes that put things in context and explain things you would miss otherwise. It's a good view into the thoughts and training of those who seek power so that you know what you're up against.
*** Sigs are a stupid waste of bandwidth.
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 agree with the "Godel, Escher, Bach" recommendation. Another book by Hofstadter which is in a similar vein is "The Mind's I", which I highly recommend to anyone who enjoyed GEB.
I don't like the other selections, though (or were you joking and my sense of humor is just off). Not really all that interesting to a geeky, kinda guy.
For holiday gifts, the Dilbert books may be your best bet.
"Five Jim Davis's -- creator of that unfunny cartoon cat, where 20% of the jokes are about how Monday sucks and the rest are about how much the cat likes lasagna (and those are the punchlines!) ... five Jim Davis's could spend the rest of their lives writing comedy and never, ever produce the Soup Nazi episode of Seinfeld." Link
Aluminum Book
Common Lisp: The Language by Guy Steele
ISBN: 0131515071
Blue Book
PostScript(R) Language Tutorial and Cookbook by Adobe Systems Inc.
ISBN: 0201101793
Camel Book
Programming Perl by Wall, Chistiansen, and Orwant
ISBN: 0596000278
Cinderella Book
Introduction to Automata Theory, Languages and Computation by John Hofcroft and Jeffrey Ullman
ISBN: 020102988X
Devil Book
The Design and Implementation of the 4.3BSD UNIX Operating System by Leffler
ISBN: 0201061961
Red Dragon Book
Compilers: Principles, Techniques and Tools by Aho, Ullman, and Sethi
ISBN: 0201100886
Green Dragon Book
Principles of Compiler Design by Aho and Ullman
ISBN: 0201000229
Green Book
PostScript(R) Language Program Design by Adobe Systems Inc.
ISBN: 0201143968
Orange Book
Trusted Computer System Evaluation Criteria, DOD standard 5200.28-STD, December, 1985
Pink Shirt Book
The Peter Norton Programmer's Guide to the IBM PC by Peter Norton
ISBN: 0914845462
Purple Book
UNIX System V Interface Definition
ISBN: 0201582252
Red Book
Postscript Language Reference Manual by Adobe Systems Inc.
ISBN: 0201101742
Smalltalk-80: The Interactive Programming Environment by Adele Goldberg
ISBN: 0201113724
ISO 9945-1 Portable Operating System Interface (POSIX) -- Part 1: Base Definitions
"The Ugly Red Book That Won't Fit On The Shelf"
Silver Book
Pascal User Manual and Report by Kathleen Jensen
White Book
Adobe Type 1 Font Format
ISBN: 0201570440
Wizard Book
Structure and Interpretation of Computer Programs by Abelson and Sussman
ISBN: 0262010771
Yellow Book
The New Hacker's Dictionary by Eric Raymond
ISBN: 0262680920
-m
... can anyone explain to me why every 5th post on this forum has the expression "Joel on Software" in it? I really can't believe that Joel, however intelligent and insightful he may be, is worth all the publicity he gets here. I don't look at Slashdot every day, so maybe I'm overestimating a bit.
I'm not a programmer, but I am a general geek, who works tech support. I have a lot of non-fiction, non-technical geek books, like "Just for Fun" by Linus Torvalds, "Ginger", the book about the Segway, Harry Potter and Lemony Snickett books, an Al Franken book, US History for Dummies, Sign Language for Dummies, Poker for Dummies, the Star Trek Technical Manual, just to name a few.
For one thing, utterly scratch UML In a Nutshell; the 2.0 version is much, much better, the first edition is one of the worst computer-related books I've ever read. I'm not kidding. (I also tend to stay away from most Sams books, and stuff like "Learn Foobar in 32 Milliseconds.")
Next, add Structure and Interpretation of Computer Programs. I try to re-read this every five years or so. Once you get over the fact that the book is based on Scheme (and a little math-heavy), the abstraction and design techniques it teaches are well worth it, and applicable in most languages (even Microsoft ones :-) ). Mention it in an interview with me (along with some intelligent commentary) and that's an extra point in your favor.
Finally, I can't recommend strongly enough joining the ACM and taking advantage of its online reference library. This will be the best money -- the equivalent of two or three textbooks a year these days -- that you'll ever spend keeping your "library" and your skills up to date.
Any sufficiently advanced technology is insufficiently documented.
I find it suprising nobody has mentioned The Cathedral and the Bazaar by Eric S. Raymond. Such a great book about open source and its benefits, it should be on everyones bookshelf.
This is a defintie read for anyone who needs to understand how programmer's (especially Open Source developers) work. Best Computer related history I have ever read !
Rebel Code: Linux and the Open Source Revolution
http://safari.oreilly.com/
Buy them a bookshelf there. You can't go wrong with these guys.
The ultimate network admin tool needs HELP!
Is that:
Redundant: Somebody already said it.
or:
Redundant: Any good programmer's already got a stack of pr0n, so it goes without saying.
<muttering>Asshole mods.....</muttering>
"City hall" in German is "Rathaus" Kinda explains a few things......
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.h tml, and is endorsed on the back cover by Rob Malda. (Disclaimer: I wrote it.)
It was reviewed on Slashdot http://books.slashdot.org/books/04/02/21/228241.s
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.
If I seem short sighted, it is because I stand on the shoulders of midgets
I'm surprised that no one has mentioned "Advanced C++, Programming Styles and Idioms" (James Coplien). Picks up where Stroustrop leaves off, I think.
Ye olde "Numerical Recipies in C", if you're doing anything mathematical. This book seems to stir a bit of controversy among practitioners but it covers an immense amount of ground, including: interpolation and extrapolation, random numbers, finding minima/maxima and zeros, the Fourier transform, modeling/fitting (least squares and such), just to name a few topics!
I find it interesting there are no stickies pointing out of the books and those spines don't look very cracked and worn to me. Mmmm, and the links all point to Amazon.com... Fishy fishy
Of course, there's also the standard programming texts by Stevens, Kernighan/Ritchie, and others. But these four books are ones which can give insights into programming beyond syntax and method.
In particular, Godel, Escher, Bach is my all time favorite for training the brain to think like a programmer. Yes, it's long and convoluted. But it takes the reader on a personal journey which I've not experienced from any other source. If GEB is not on your bookshelf, it should be.
The others are along the same line, but more directly approach the solution of problems. Any programmer should have them on his or her bookshelf as well.
I learned Java from Core Java and I still think it's a good intro. For C++, after you've gone through an introduction, you definitely want to get The C++ Programming Language by Bjarne Stroustrup. It has everything about C++, and you need it for that reason.
One of my favorite books that I think is a bit underappreciated is The Computational Beauty of Nature by Flake. There's just so much neat stuff in it, all across the spectrum of math and computer science, and it's quite accessible, yet with enough meat to satisfy.
I waited forever to read it, thinking it was just history or some such, but Stroustrup explains where every single feature of C++ came from, the concerns, earlier attempts... it's a great great work.
Stroustrup is brilliant... this book will help you understand C++ certainly, but also, computer science issues as they impact real software engineering and standards processes, even if you don't use, know, or even loath C++.
-pyrrho
It's amazing what you can do with an awk one-liner, and this is the book to get you going on it.
one must read it.
also worth it, out of print (though I ordered one for our library from Amazon anyway and got it), and ironically published by Microsoft, "Debugging the Development Process" is also excellent allong a similar vein.
-pyrrho
they put porn in magazines?!
PS: what's a magazine?
-pyrrho
true in general... information I used to be willing to buy a lousy book to get some of are dead to me, the net is better.
However, there are classics, things that are timeless, things of value even if some details become obsolete.
Design Patterns (just the original, not the waste of space Pattern Publishing Industry)
The Mythical Man Month (written in the mid 70's)
Sedwick's Algorythm books (or Knuth's too... but honestly, I never refer to them)
The C++ Programming Language
I also happened to like Jachson's stuff... e.g. "Problem Frames" which ironically I found through Amazon's "people that likes this..." when I was buying a known classic (forget what it was).
And a dictionaries is nice, so you don't put a "y" in "Algorithm" but dictionary.com does take care of that, and fuck it, I'll put a "y" in there if I like.
-pyrrho
LAN Times Guide to SQL (Tought myself SQL with this book 12 years ago, and still use it to this day!)
Oracle PL/SQL Programming (OReilly)
Extreme Programming Explained
Code Complete
Applying Use Cases
. .
Anyone else noticed the IV injector with some red fluid between the "Oracle 8 DBA Handbook" and "Linux FNS..." books? (Zoom in the JPEG if you're using Firefox)
Not sure what he's into, if that was a red pill, I would say he's into Matrix or something...
The purpose of life is to find the purpose of life.
Since I gave the talk, Code Complete has a 2nd edition.
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.
Ochin spasiba!
Does anyone have a mod point for xitology? Something in 'Informative' or 'Interesting' would do nicely. TIA!
I want to drag this out as long as possible. Bring me my protractor.
Jakob Nielsen, anybody? Linux Torvalds? ;-) Thinking in Java? Gang of Four Design Patterns for distant sophisticated? Perl of Wall? Any Unix book? Oh, boy - every good tech book can tell a story, anything about digital of Olsen and afterwards would make it, too. Kur[d]t Cobain's diaries? Tom Peters' imagine!!!? Just yesterday bought "the book of 2004" = eats, shoots and leaves. Just make it a book, so much pleasure inside, still...
Title: Computer Waiting Games: Things to Do While Uploading, Downloading, Processing or Crashing - Activities for the Impatient
Author: Hal Bowman
This book could be entertaining for virtually any computer user.
I'm a fan of the ACM http://www.acm.org/ which gives you both a books24x7 membership, and a Safari books membership http://safari.oreilly.com/. All for under $100/year, less if you are a student.
Dude! Where's all the Windows for Dummies books!?
Wanted: witty unique signature. Must be willing to relocate.
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".
/ theantipatterngr/103-3030967-9900659
http://www.amazon.com/exec/obidos/ASIN/0471197130
The list is great for programming but has nothing about software. What I mean by this is the end product of programming - the software that our users (and we programmers) use.
In my view this one of the great failings of programmers. They concentrate on the writing code side but don't take enough interest in how the users will interact with the programs they produce.
Not to mention the risible "arguments" for strong AI that the book makes. Like the part where Hoftstatdter states Lucas' argument against strong AI, and then proceeds to just say that he doesn't think it's right, without even bothering to address it...
Are you adequate?
Aside from the well known tomes that have already been praised here, I'm a big fan of this: (1-55860-576-2) Joe Celko's "SQL for Smarties".
--- These are not words: wierd, genious, rediculous
personally, I suggest "The Way Things Work: An Illustrated Encyclopedia of Technology" volumes 1 and 2, translated by C. van Amerongen. I would have loved it if someone would have bought these for me. instead I had to go dig them up myself.
okay, so they are out-of-print and out-of-date (last published in the 70's), but where else can you find lucid and succinct explanations of everything from ball-point pens to nuclear reactors. I often just grab one these off the shelf, turn to a random page and start reading.
Don't forget the 4th here
CLG[Of course it's client-server; it runs on a LAN]
... it looks just like mine (right down to "The Art of Electronics"!) I've got nearly every one of these (except the "Food for thought" section, that's pretty quircky)
:-)
Nice to get some validation now and then
1000 years of nonlinear history, 1000 plateaus, guns gems and steel, web of life, &c &c. All the good systems theory junk. Godel Escher Bach &tGB.
Must like reading, all hefty reading, but its really good stuff.
Further suggestions in this vein would be appreciated.
For a little bit of Sci Fi meets Classics, Ilium was really damned good. I've ahd the sequel sitting on my desk for two weeks and I'm too afraid to pick it up because I know it wont be cant be could never be as good. There's actually a bit of a renisance of really good Sci Fi stuff coming out... Alistar Renolds, Richard K Morgan, &c. I havent read these, I still have to finish 1000 plateaus first, but they're sitting on my desk, reviews are very solid, and I'm confident it'll be agood time.
Myren
2nd edition, that is. Also know as 'The pickaxe', from the cover picture.
"...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
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.
I'm not an avid reader, but I happen to have read the exact three books you just mentioned, plus a few Alan Watts books. If you enjoy books that get you thinking outside the box, you should check him out too.
If you want to understand Godel, then read his own work or texts about his work (like Godel's Proof by Ernest Nagel (thankfully only edited by Hofstadter, though I fail to discern why) and skip GEB.
I read GEB over 20 years ago, was bored silly and have regretted it ever since. It was perhaps the single most remarkable waste of time in my entire life.
Sure, if you're 12-14, it's a good read.
Any self-respecting adult geek will have already thought about the concepts presented in the book; I finally picked up a copy when I was 19, and just about cringed. It's slow paced, tediously presenting simple concepts as if they were difficult to understand; and entirely self-hyping throughout. It's like each chapter cries out "pretend I'm difficult! Pretend this is a great insight, not something you figured out four years ago on your own. Pretend this isn't obvious from first principles!"
The interesting ideas could have been reduced to a handful of pages, and for me, I'd either already thought of them, or found they followed rather obviously. It's a kids book; like the Silmarillion or the Planiverse, or other young proto-geek fare.
For an adult, it's not worth it; you know it all and though of it all years ago. Read something with a better information density, like your favourite RFC this Christmas!
--
AC
...I recently found a simple page with one person's bookshelf...
uhhh. yeah.. this was on popular
The bookshelf given only had Dilbert and Garfield, neither of which are insightful or humane.
Not a thick book, but really thought provoking. It starts off REALLY simple and builds and before you know it you realize you're learning about neural networks. Vehicles, Experiments in Synthetic Psychology.
This is a good book for anybody dealing with data management issues. It's a quick overview of relational theory, which is the fundamental model for data management. It's VERY well written, very crisp and clear, and roughly 200 pages.. shorter than the average programming book, yet the information contained will be just as relevant 50 years from now as it was 30 years ago. The knowledge in the book applies to SQL, XML/hierarchical, Object/network, whatever, databases.
And if you give someone this book you'll increase the chance that there's one less person in this world who's clueless about data management. Heck, even if your recipient is already an expert, this book will surely clarify and untangle his or her knowledge of data management.
"Mamma! mamma! ah! how nice it is here!" cries her little boy to her.
Understanding Media by Marshall McLuhan
Modern Compiler Implementation Using X by Appel
Term Rewriting and All That
Modern Computer Algebra by Von Zur Gathen and Gerhard
Design Patterns
Any of The Essentials of or Schaum's Books
Any book on SmallTalk
Copies of whatever academic papers catch your eye
Sift through as many "underground" books you can find and pick and choose
I'm anonymous. My Slashdot ID is 9.99E100. Be mean to me.
Relax, aren't you lucky that it is only my Opinion?
1. A user's guide and a reference manual for desktop publishing application (framemaker, word, openoffice whatever..)
2. user's guide and ref-manual for your source code management system
3. scripting languages - I have books and find them more useful than the web. I use awk, sed, flex&bison, Perl, Csh, bash, Tcl and Expect for various automation purposes. Like me, if you don't use them often enough, you are likely to forget the syntax and start over every time you need to write a script. O'reilly books are great and cheap. Buy one set for every cube or every aisle in your office.
4. What you also want in your locked cabinet is a digital camera. A computer sucks for illustration purposes, although it is great for presentation. So you write down and draw on paper or white-board and you take pictures of it and keep it around. Handy when you file for patents or for inclusion in documents for quick turnaround.
5. For increased productivity, know how to use your company phone, instant messaging and other conferencing facilities. The reference cards are probably lying around near the admin's office.
The rest depends on your actual stream of work and area of expertise.
I find the Frame Maker user's guide and reference manual absolutely essential for creating neat documents with all tricks for easy reading. As a project lead, you are likely to need all tips/tricks to create your clean and professional templates for specifications. I think every incoming project member must be handed a user's guide and reference manual for the documentation software in use. I am quite sick of seeing badly written documents with not enough attention paid to it.
Another book that is of immense use is a reference manual for your source code management system (Clearcase, Subversion, Perforce, CVS whatever...). I actually use a couple of them. You don't want to have to hunt for your buildmeister all the time. Every programmer eventually needs to develop strong skills on managing one or more the source code management systems, over time.
I use two monitors... the left one is dedicated strictly for writing documentation and for reading online documents. The right one is for programming (well... and for web-browsing and reading news).
I have books up the wazo, but still no J.O.B. If I had friends I would ask them to buy collectible CS books, like The Java Language Spec. now there is a book that will never loose its value. But I will accept any old Peanuts on DVD, for my DVD collection.
Why are only two of Knuth's books in the photograph? I've been using Seminumerical as a nick for over a decade. Where is Seminumerical Algorithms?
In wartime... truth is so precious that she should always be attended by a bodyguard of lies. (Churchill)
I'm not a programmer but I think anyone of a geek persuasion should read Buckminster Fuller. Critical Path is essential, but pretty much any of his books are exceptional mind food, especially Synergetics. Others would include Benoit Mandelbrot - The Fractal Geometry of Nature; any of Albert Einstein's writings; Bart Kosko's books on Fuzzy Logic; any Feynman book; John C Lilly - The Centre of The Cyclone...man this could go on and on!! :-)
What modern computing lacks is a culture.
The oldbies had all that Gandalf/Chewbacca stuff to wallow in.
New times call for new surroundings.