Computer Books For A Library? 509
Basalisk asks: "I've been asked to come up with a list of suggestions for books covering computer subjects that would be appropriate for a public library. Ideally, the books suggested would have a fairly long shelf life and cater to as many different audiences as possible, from the absolute beginner to an experienced geek. What books dealing with computer subjects should a library have on it's shelves?" Considering that library books need to have lasting and generalized value, not just programming fads of the month, what books would you recommend for a desert-island library collection? What books won't you give up on your tech-library?
Re:Good god, since when does Computers = Systems?? (Score:2)
Perhaps you are knowledgeable enough in one of the aforementioned fields that you can give knowledgeable recommendations, beyond 'my professor said this one is really good'?
--
Re:Kernighan and Ritchies's C Programming Language (Score:5)
--
Not technical, but still good (Score:2)
by Steven Levy
by Cliff Stoll
by Douglas Coupland
Re:Kernighan and Ritchies's C Programming Language (Score:2)
Please tell me you're joking. This is probably one of the worst books on the subject I have ever read. The algorithm descriptions themselves aren't bad, but the code examples are horrendous. There are countless examples of bad coding style, not the least of which is the use of the letter "ell" as a variable name. Sure, it's compact, but it makes understanding the code very difficult. Often it's tough to tell whether a variable or numeric constant is being used.
Rivest, et. al. have a much better algorithms book. The writing style is clearer and it covers more material. The section on complexity alone makes the book far superior to Sedgewick.
--
Python (Score:2)
programming Python
, both featuring Mark Lutz, and published by O'Reilly.
Learning python is a very good book to introduce someone to python programming, and programming in general. Python as a language is easy to get to grips with, and free.
Programming Python is a good reference work to go along with python's online documentation and is a great book to have. Both are well written and easy to read.
Design Patterns (Score:5)
Fred Brooks (Score:2)
Re:Knuth (Score:2)
I have read the whole tome, 2nd edition. I did make it past the first 100 pages. But I also 100% agree with you that it is hard to read, heavy on the maths, and the style of writing is definitely dull.
Knuth can write well (TeXBook proves that) but TAOCP isn't an easy read. I certainly wouldn't recommend it for a public library. It is far more appropriate for a specialised library (eg, the university library).
Amen. /. is full of posers. And I'm no role model because I've just been a poser too by admitting to having read all of TAOCP. It's an easy trap to fall into.
Amazon response (Score:3)
Reviewer: Paul Sorano (see more about me) from Ft. Lauderdale, FL
OH MY! I am so glad I purchased this guide. I went from hardly knowing how to turn my computer on to making $1000's of dollars in weeks, just by simply running a website on the internet. Thanks so much for introducing this easy to follow guide. Nothing could have been easier! You have truly outdone yourselves!!
I'm a bit skeptical: this comment was written during the dot.com boom.
-----
If Bill Gates had a nickel for every time Windows crashed...
dr dobbs back catalogue (Score:3)
Refactoring (Score:4)
By Martin Fowler.
What I love about this book, is that it starts with bad code and transforms it into good code. The book defines what is and is not good code, with clear examples. As many new developers start out maintaining bad code, this is a must for new OO developers.
In the Java course I teach I recomend the Refactoring book followed by the Design Pattern book.
-Peace
Dave
Simple... (Score:2)
The Mythical Man Month is another good book.
ephemeral and lasting (Score:2)
Danny.
Re:Knuth (Score:2)
In the imaging sector: (Score:2)
- PostScript Language Program Design
These are the so-called Green, Red and Blue books. In a tutorial fashio, a highly- recommended PostScript book is:PostScript Language Reference manual
PostScript Language Tutorial and Cookbook
- Real World postScript
All of the abovefrom Addison-Wesley.A somewhat antiquated 2/3D graphics programming book is called
- Computer Graphics Software Construction
(ISBN 0-13-162793-7) published by Prentice Hall. it is not very current, but is a respectable work that will get you aquainted with graphics primitives, all the way up to basic 3D surface spline calculations.And if you're interested is learning how Holywood does it,
describes this fantastic retained rendering language. This one, too, published by Addison-Wesley.
Karma karma karma karma karmeleon: it comes and goes, it comes and goes.
Re:Kernighan and Ritchies's C Programming Language (Score:2)
I'd add Tufte's "The Visual Display of Quantitative Information," "Envisioning Information," and "Visual Explanations." Also Laurel's "The Art of Human-Computer Interface Design," Tognazzini's "Tog on Interface" and "Tog on Software Design" and Raskin's "The Humane Interface."
Programming is great - but these are books you'll want if you want people to want to use your program, and to enjoy doing so. Most of the world's not propeller heads, and even said heads can see their lives improve with good UI. (do you still punch cards and program with switches?)
I'd also add Flack and Wiese's "The Story About Ping" for a nice high-level explanation of ping(8).
C++ Picks (Score:3)
C++ may not be "timeless," but it's here now, and will be here for many years. Besides, improving yourself in one language helps reveal patterns and designs in other languages. C++ will be influencing language design for a long time.
So, here are a few C++ oriented books that I'm very fond of. All of them helped me improve as a programmer, not just in C++.
If you're working in C++, you probably want The Design and Evolution of C++ [bestwebbuys.com] by Bjarne Stroustrup [att.com]. If you're a C programmer considering C++, you need this book. It really helps get your mind wrapped around the language. C++ may be a mess, but at least you'll understand why it's a mess, and why it really couldn't have succeeded any other way. By understanding why C++ is C++ (and not, say, Java or C#), you'll write faster, cleaner C++. Even if you don't see C++ as the future, armed with the knowledge in this book you can better judge other languages.
For useful ways to improve your coding right away, I'm fond of Steve Maguire [microsoft.com]'s Writing Solid Code [bestwebbuys.com] and Scott Meyer [aristeia.com]'s pair Effective C++ [bestwebbuys.com] and More Effective C++ [bestwebbuys.com]. Both will give you little improvements that will improve your code tomorrow, next year, and in five years. Parts of all of these books apply to any language. (My copy of Effective C++ is going on 10 years old, and I still find it helpful to reread occasionally.)
It may seem that it doesn't apply... (Score:2)
But A Pattern Language [amazon.com] is a good book for thinking in terms of "greater than the sum of the parts". It talks in terms of architecture, but it can apply in multiple fields. It's a tough one to slog through, and definitely not the first book for a programmer-in-training, but good to round off the top of that sharp CS peak you might get from a daily dose of Knuth.
Another, very very important book to add (and all geeks and nerds should buy and read) is Strunk & White's Elements of Style [amazon.com]. Imperitive to learning how to write clearly and concisely, which is terribly important when it comes time to document.
Re:Kernighan and Ritchies's C Programming Language (Score:2)
Seconded. I picked up a copy at my local B&N and had to specifically ask for it. Shocked that a volume as important as this wasn't out on the shelves, it was explained to me that this particular book had a habit of growing legs and running off. I hope the library in question has a good theft-prevention system.
My must-have (Score:2)
W. Richard Stevens, "Advanced Programming in the UNIX Environment".
Re:Undergrad textbooks: Algorithms, H&P, Dragon, e (Score:2)
Tanenbaum, "Structured Computer Organisation" - a very well written, accessible volume explaining how computers are actually organized.
Rich, Knight, "Artificial Intelligence" - a good introductory text to this field.
Glassner, et. al., "Graphics Gems" - a series of volumes that (if you can afford them) collects everything you need graphics-wise in an encyclopedic, rather than narrative, format.
Boolos, Jeffrey, "Computabgility and Logic" - Another introductory text that is great reading for anybody interested in the field of computability (and you even get to prove Gödel's theorem!).
There are others that are true classics (the Cinderella book comes to mind) but as you are asking for titles for a general-interst library they might be a bit too obscure.
/Janne
you kids dont know how good you have it (Score:2)
(from which I gained much knowledge.) That was
1977. A few years later, they had a shelf of similarly obsolete texts, but never anything really enlightening. I'm referring to the central
library in Dallas, Texas, a library designed by Frank Lloyd Wright that probably housed several million books.
Today, I would still not expect to find the whole Addison-Wesely catalog or even a single O'Reilly
book in any library east of California. (IN California, I expect to see these books at the convenience store, or rather, have seen, in Mountain View at least!)
I wonder how many W. Richard Stevens texts are available at your average public library? How about the Sun Java series, or even the Solaris System Administrators Guides? Knuth? Booch?
Jacobsen? Rumbaugh?
Hard computer science books, starting with Cormen Leiserson and Rivest: Introduction to Algorithms,
and Knuth: The Art of Computer Programming.
O'Reilly books seem to find themselves neither on library shelves nor as primary texts for university classes. I wonder if it is because of the marketing niche that ORA has carved out as more of an independent publisher. At least, recent years have seen the availability of these types of books at chain bookstores.
If I could have put my hands on Introduction to Algorithms and on various Automata texts when I was at my peak of mathematical aptitude, I would be much further along academically than I am now.
Re:Based on what my local library has... (Score:2)
Actually... well... no, but I had to
pause to think about it... I still refer, not infrequently, to the Programmer's Guide to the IBM
PC, by Peter Norton.
Every time I'm tempted to move it from my bookshelf to storage, I end up referring to it,
so it stays.
I keep an old 2-volume Solaris book around, knowing that Sparc's DON'T COME WITH MANUALS,
and the manuals you do get aren't particularly useful.
I'd love to have a copy of David Ahl's 101 Basic Computer Games, but even I tossed things that old.
Strategy guides to some of the old games? Sure,
(not to mention the abandonware issue!)
I suppose the list goes on. Let's see, I can donate my extra copy of Stevens Unix Network Programming I, a whole shelf of Java 1.x books,
"The Teachings of Buddha" which was in a hotel room instead of Gideon's Bible(!), the novelisation of Girl, Interrupted, an english-spanish dictionary with no cover, and *maybe* my extra Programming Perl-2nd-ed.
That's about all I can part with, and I just might
hoof them down to my local library.
I'm finding that in my community, in these economic good times, the used bookstore has taken the role traditionally filled by the library.
I realize that doesn't really bring literacy to the poor, but it is a phenomenon that I've observed. Books change hands from peer to peer and through such a vehicle as a used book seller, and these are the very people who would, in other circumstances, be a frequent library patron.
I don't mean to diminish the other services that are provided by libraries of course. I just tallied up the CS books I still want to buy this year, and I'm over $1000. Not counting what adding a shelf will cost!! A library might let
me try-before-I-buy or even read-instead-of-buy.
The costs of these books doesn't bother me at all
though, and I wish this could somehow be a datapoint in the whole copyright/artist-gets-paid misunderstanding.
thank you for your pixels
Re:Kernighan and Ritchies's C Programming Language (Score:2)
I had a college class with this as the textbook, and an instructor who was programming industrial robotics (day job) while teaching our class. Outstanding book!
I still go here first, if presented with questions about operator precedence or multidimensional pointer arithmetic, it's always on the shelf right next to K&R, and makes a good complement to it.
I also heartily recommend Bruce Eckel's Thinking in C++.
In the C++ textbook department, a local University teaches an intro programming course with Gary Bronson, _A First Book of C++: From Here to There_ 0-314-04236-9; If I were teaching
such a class, I'd enjoy using this text, although
it does speak from a procedural design standpoint in the early chapters.
Another 2 cents (Score:2)
For the practical, replace-every-3-years, people-will-find-them-useful shelf:
In general, I'd skip all but the most elegant half dozen or so books on programming languages because of the shelf-life issue. Think Kernighan and Ritchie on C and maybe things like Bruce Eckel's Thinking in Java, which is as timelessly abstract a Java book as I've seen. But Java will be unrecognizable in 5 years, so tread lightly here.
Get nothing on web development other than an HTML book or two. Those are useless after one year, never mind five.
Recommendations too specialised (Score:2)
Some books for system administrators would be a very good idea (I'd imagine there's some O'Reilly guides which would be a good place to start), a user's guide to Linux or two would be appropriate, and a smattering of books on Windows, MacOS, and popular applications for each would be appropriate.
In addition, some "perspective" books would be appreciated by library users. A couple of suggestions to start with - The New Hacker's Dictionary (the print version of the Jargon File), In The Beginning Was The Command Line by Neal Stephenson, and The Emperor's New Mind by Roger Penrose (not that I agree with a lot of what he says, but it's still a great read). Others?
Go you big red fire engine!
Redo of above list with more on Sys Admin (Score:2)
Essential System Administration [amazon.com]
Computer Networks [amazon.com]
Interconnections, Second Edition [amazon.com]
TCP/IP Illustrated, Volume 1: The Protocols [amazon.com]
Structure and Interpretation of Computer Programs [amazon.com]
The Mythical-Man Month [amazon.com]
Modern Operating Systems [amazon.com]
The Art of Computer Programming, All 3 Volumes [amazon.com]
Programming Perl (3rd Edition) [amazon.com]
Applied Cryptography [amazon.com]
Recommended Books (Score:2)
Most of them are practical experience books, ie no "pure" research books.
Addison-Wesley
"The Practice of Programming" Kernighan Pike
"The C programming language" Kernighan Pike
"Writing MS-DOS Device Drivers" Lai
"Compilers Principles, Techniques, and Tools" Aho Sethi Ullman
"Algorithms in C" Sedgewick
"Multithreading Applications in Win32" Beveridge Wiener
Coriolis Group Books
"Graphics Programming Black Book" Abrash
Morgan Kaufmann Publishers
"Joe Celko's SQL for Smarties: Advanced SQL Programming" Celko
SQL Puzzles by Celko as well, can't find my copy
Prentice Hall
"Internetworking with TCP/IP Volumes 1-3" Comer Stevens
"C How to Program" Deitel/Deitel
Microsoft Press
"Writing Solid Code" Maguire
"Code Complete" McConnell
Wiley
"Applied Cryptography" Schneier
O'reilly
"Encyclopedia of Graphics File Formats" Murray & Vanryper
"Practical UNIX & Internet Security" Garfinkey & Spafford
"Essential System Administration" Frisch
"Programming Perl" Wall Christiansen Schwartz
"Mastering Algorithms with Perl" Orwant Hietaniemi Macdonald
QUE
"Linux Socket Programming by Example" Gay
Sam's
"TCP/IP Blueprints" Burk, Blight, Lee, et al
"The Mythical Man Month" Lent out at the moment
Out of print books
"Peter Norton's guide to the PC" Norton
OOSC II (Score:3)
Ack! I can't believe that no one has mentioned Object Oriented Software Construction (2nd Edition) by Bertrand Meyer.
Though you may not always agree with what he says, he brings a rigor and thoughtfulness to OO design. This book can help you understand how stuff like multiple inheritance should work. He also gives some interesting ideas on things like parallel programming in an OO world... something beyond just threads and semaphores.
Even if you don't (or can't) program in Eiffel (the language used in the book) I believe this hefty tome (1000+ pages) can improve your design ability.
poor old pascal (Score:2)
A modern classic (Score:2)
CJ Date's Database Book (Score:3)
Great book.
All of the O'Reilly books.
Mythical Man Month.
Surely You're Joking, Mr. Feynman.
The K & R C book.
Knuth.
That would do it for me...
Cheers,
Jim in Tokyo
Have no clue about firewalls? [mmdc.net]
Textbooks || Data Mining Helps You! (Score:2)
Perhaps you could generate some usage reports using the online catalog, see what the people are checking out, and buy more in that direction. If you bought a sampling of books from many different subjects, and then looked on the catalog to see which ones are out the most, you could tailor your library to what the local interest seems to be.
From the "Laugh-it's-funny-dept" (Score:2)
Re:Core Programming Books (Score:2)
On a similar note you should have "Rapid Development" by Steve McConnell. This is a great book on how to apply the lessons learned by Fred Brooks in the real world.
Dave
My (not too) short list (Score:2)
You should be able to find some very nice deals on a number of these books at used bookstores. Some of the books are out of print, so this may be your only real option. Amazon has links to used bookstores, and many of them have their own websites if you are still mad at Amazon over the one-click patent stuff. I'd suggest Powell's Books [powells.com] in Portland, they've got a better selection than I've seen almost anywhere else, and they deliver.
Re:Not yet mentioned (Score:2)
I also thought of a few more books that deserve to be mentioned: A number of books by Edward Yourdon (Structured Analysis and Design The Decline and Fall of the American Programmer and The Rise and Resurection of the American Programmer should pretty well cover Yourdon) are good to have, even if his theses are no longer much in vogue. Similarly, the OO books by Grady and Booch are worth having, along with some UML, Use Cases and Patterns related texts.
Finally, there was a little hippy-trippy book I ran into back in college in the early nineties, but was never able to find again later. The title was Digital Memory and was some kind of treatise on Peace, Love, and Interactive Computing. It actually had a few interesting things to say, even if the tone was a bit on the too-much-THC-in-my-bloodstream side.
1 Recommendation: SICP (MIT Press) (Score:2)
One of the most eye-opening and amazing books on CS. It's based on scheme ('the' elegant dialect of Lisp) and takes a no-holds barred approach to introducing oversimplifications (e.g., data + program) and then turning them on their heads for great instruction.
A (so far) timeless classic.
= Joe =
Re:for TCP/IP... (Score:2)
And it's not Linux specific - it's pretty much POSIX, and does talk about some of the differences between implementations where they matter.
An excellent and comprehensive set of books.
Torrey Hoffman (Azog)
Windows Programming Books (Score:2)
Some of the long shelf-life Windows programming books:
And a non-Windows goodie I haven't seen mentioned:
Re:A good few books... (Score:2)
I think the goal of libraries should be to drum up interest for the topic in question, not necessarilty provide hardcore reference books. Extrapolating to physics Six Easy Pieces [fatbrain.com] and the two Feynman [fatbrain.com] pseudoautobiographies [amazon.com] do a fantastic job at getting people interested in science, while his berkley lectures have a lot less appeal, even though they're probably better for your local physics majors.
Consider this. Say you're interested in physics. Would you want to read Six not so easy pieces [fatbrain.com], a relatively easy book that deals with relativity, or the chapter on relativity in Classical dynamics of particles and systems [fatbrain.com], which i can barely understand, even after using it in class for a year?
This is exactly what we're doing when we recommend things like Halabi [fatbrain.com] or most [fatbrain.com] random [fatbrain.com] O'Reilly [fatbrain.com] books [fatbrain.com]. Why do we like O'Reilly? because when i need to know the name of the object that controls blabla, then I can look it up. Quickly. Having a book that tells you that ListCellRenderer has 1 method called getListCellRendererComponent really has limited value to most people.
Learning Perl [fatbrain.com] is great, because it's an introductory book (but even that is a lot easier to read if you already know C). O'Reilly does have a lot of good books that cover introductory topics (incidentally, i own none of them), but just because it's on your bookshelf and probably is the most kickass book on it's topic, that doesn't mean it's entirely suitable for your public library.
Re:Recommendations too specialised (Score:2)
Why hasn't anybody mentioned any good photoshop books? i sure as hell wish i knew photoshop in highschool, i may not have owned it, but my computer lab had it. In my experience, having photoshop experience is way way way more pratical on a widescale than say, what you learn from the dragon book. Books on popular programs, like Photoshop don't only appeal to the geeks, but also the artsy people, and even just random people who say, have to design a small advertisement at work or something.
I'm sure every book that every person has suggested is a good book. I own a lot of them as well. I do not think my public library necessarily should though, in the grand scheme of things how many people really care about compiler design?
It's not like these books are entirely inaccessible, that's what your local state college/university's library is for, because they already have these things. Imho the goal of a public library should be to cater to mass appeal, and not very many of these suggested books do this. Mass appeal is introductory and intermediate books on HTML and javascript, not on compiler design and BGPv4.
Re:books (Score:3)
> is that they are tailored for one version of
> any particular subject without really
> explaining the fundamentals of what's happening
Yes. But imho, that's exactly what we want for libraries. I think the idea should be to drum up interest for different things, and the "For dummies" books do these things quite well. They are (or at least try to be) mildly entertaining (in contrast you cannot read Java in a Nutshell [fatbrain.com] as evening reading material.
While we shouldn't just limit ourselves to shallow books, we do not need the most expert books either. Someone earlier suggested Halabi [fatbrain.com] (which i treat as my bible), but it really has limited use in a public library, anyone who needs the book will purchase it because they need it 24/7. A more reasonable book would be TCP/IP Network Adminstration [fatbrain.com] which allows people to learn the basics, and points them in the right direction if they desire to learn more. I even think the Cricket book [fatbrain.com] is inappropriate because although it really explains dns well, it also explains why you cannot point an MX to a CNAME (and if i didn't administer a couple DNS servers, i wouldn't care in the least why this was), when a book on how the general internet works could supply so much more pertinent information for the money.
> In a couple of years they will be out of date,
> and you'll have to buy a new set.
Probably true, but i don't think they go out of date any faster than any other programming book (especially html/javascript variants). Also "For dummies" books are comparitively cheap. Last I checked Dummies books went for $20, now they're going for anywhere from $25~40. With the notable exception of O'rielly, most books now go for ~$50~60, so you are able to get a broader scope of things with the Dummies books.
My personal library is almost exclusively O'Rielly and Cisco Press, i don't think there is very much of a debate that these are probably the best reference books out there, but imho it's not what my local public library needs.
Core Programming Books (Score:5)
Schneier, Bruce Applied Cryptography -- Because libraries should have the books THEY don't want you to read.
DeMarco, Tom, and Timothy Lister, Peopleware: Productive Projects and Teams -- How programmers working in teams actually get things done.
Gamma, Helm, Johnson, & Vlissides, Design Patterns -- Landmark book on developing with objects
Knuth, Donald, The Art of Computer Programming, Knuth -- Landmark classic
Alexander, Christopher A Pattern Language, ChristopherAlexander, et. al., and Timeless Way of Building -- Thinking about programs that people can actually use.
I'm sure I'll get some flaming for this, but... (Score:2)
...I'm going to recommend a book from (gasp!) Microsoft Press. If ever they institute some sort of formal test before people are let loose on poor innocent computers, Code Complete should be the programmer's equivalent of the Highway Code.
It's full of good advice, and there's nothing in there that's particularly language-dependent. My one complaint would be the lack of solid OO coverage - a book that addresses the same sort of issue for OO languages would be great as well.
Code Complete at Amazon [amazon.com]
For more specific information on MS systems, I think the one text book that covers everything you need to know in sufficient detail is Mr Bunny's Guide to ActiveX [amazon.com] - if you haven't read this book and are currently developing for MS platforms, stop now. You can read the book too, but that's entirely optional.
And before I'm inundated by anti-Microsoft zealots accusing me of only putting forward pro-MS books, might I also recommend the remarkable Mr Bunny's Big Cup o' Java [amazon.com], which will teach you everything, something, or even less about Java, and possibly a little about rabbits.
Re:Small Minds, Small Worlds (Score:2)
Libraries are also commonly supplied with computers for web surfing, which helps get lower-income people involved in this whole great digital playground.
And which would you rather read in bed: a book or a laptop?
Some books IN a library may be obsolete, certainly I never read computer magazines any more, but libraries themselves-- not for a long time yet.
Nice troll.
Some great Java books... (Score:2)
I wish I could think of some better books to learn programming from scratch, as there don't seem to be many suggestion in that area. Perhaps "Scheme and the Art Of Programming"? That coupled with a simple scheme implementation to learn from would be great - I think suggestions of Ruby and Python to learn are also good.
Along those lines - Design and Evolution of C++ (Score:2)
Go ahead, mod me down for non-techie books, but... (Score:2)
1) High Tech Heretic : Reflections of a Computer Contrarian
By Clifford Stoll
Do we need computers everywhere, particularly in schools? Nope. Not necessarily. Although some of us have made them the be all and end all of our lives, it's not normal, and shouldn't be expected.
Easy to read, easy to understand, tough to refute.
2) In the Beginning...Was the Command Line
By Neal Stephenson
You don't need to program Apple Basic (or mainframe Fortran, or other archaic things) to be able to use computers. But this book is another nice, non-technical addition to a complete computer bookshelf.
My picks for books that will last some time (Score:2)
Lamport: Latex, a document preparation system
Goosens et al: The Latex Compation
Nemeth et al: Unix system administration
Gamma et al: Design patterns
Butenhof: Programming with Posix threads
Meyers: Effective C++
A good data structures book in C/C++ (unsure, I haven't yet found one I'm completely comfortable with)
The X windows series from O'Reilly, since even if GTK and Qt are the flavor of the moment, if one learns how to program in Xlib/Xt/Motif, one can pick up pretty much anything.
TAOCP (Score:2)
A good few books... (Score:2)
This was actually a text for a few Penn State compsci courses (though it was optional).
I also liked Peopleware by Tom Demarco and Timothy Lister
I can't belive... (Score:3)
Code Complete
and
Rapid Development
they are two of the most important computer (programmer) books out there...
LetterRip
Dorset House Press (Score:2)
Artificial Intelligence - A Modern Approach (Score:2)
I really enjoyed this book and think it is a great buy.
Re:Can't go wrong with O'Reilly (Score:2)
here is the website you'll want,
http://libraries.oreilly.com/ [oreilly.com]
Re:Knuth (Score:2)
1. There's much more to TAOCP than linked lists, and I doubt you would claim to know every technique presented therein - or even half of them.
2. The idea is to get books for a library, where people who are learning programming might check them out, and be exposed to the fundamentals of computer science.
3. What is with your attitude?
History... (Score:2)
There are a few good recently published "History of Computers" books, but honestly, the best way to get a history of computers is to find older computer reference books (ie, books which when sold presented "state-of-the-art" information about computers - I have some real interesting ones from the 40's and 50's).
Books on Babbage, Pascal, Lord Kelvin, Ada Lovelace, Alan Turing, etc - would also be welcome additions to such a section. Throw in books on Hollerith, as well. Add recent stuff (hacker history - like the Jargon File, etc - and others), as well as more "popular" stuff - like "The Media Lab" and Steven Levy's "Hackers"...
Gotta know where all this came from, and where are roots are, as well...
Worldcom [worldcom.com] - Generation Duh!
A few (Score:2)
The Dragon Book (Compilers, principles, techniques and tools) by Aho, Sethi and Ullman
The Cricket Book (DNS and BIND) by Albitz and Liu
The Bat Book (Sendmail) Allman and co-conspirators
The BGP Book (Internet Routing Architectures) Sam Halabi
A whole bunch of William Stallings books (Cryptography and Network Security, High Speed Nets and ATM Design, SNMP)
The whole series of Roger L. Freeman's Reference Manual for Telecommunications Engineering.
Telecommunications Engineer's Reference Book, by Mazda
At home, I have the classics, Knuth's Art of Computer Programming volumes I to III, The Mythical Man Month, Godel Escher Bach, and many others I can't remember in this inebriated state.
For a lending library, I'd add the whole of the O'Reilly series, a bunch of Cisco Press, Dilbert and of course User Friendly [computergear.com]
the AC
Re:You'll want both (Score:2)
You will probably buy one to keep. You certainly would know the worth of a good reference book, and remember those funny animal sketches.
the AC
Jon Bentley's Programming Pearls (Score:2)
---
I once heard of.... (Score:2)
this publisher who puts a different animal on the cover of each book. The name escapes [oreilly.com] me at the moment, but I'd try there genius.
Re:Design Patterns (Score:2)
Not absolutely neccessary reading, but very useful.
(BTW, I concur with whoever posted to get the first edition with examples in Smalltalk alongside C++. Smalltalk owns, one of the coolest languages I ever learned in college.)
Some unix and security suggestions (Score:2)
TCP/IP Illustrated Volume 1 [amazon.com]
TCP/IP Illustrated Volume 2 [amazon.com]
Unix Network Programming Volume 1 [amazon.com]
Secrets and Lies [amazon.com]
Building Internet Firewallws [amazon.com]
Practical Unix and Internet Security [amazon.com]
Design and Implementation of the 4.4BSD Operating System [amazon.com]
Unix System Administration Handbook [amazon.com]
C++, Graphics, Game Programming (Score:3)
Advanced C++
Graphics
Game Programming
Software Engineering: (these are the BEST ones, not the long boring ones that put you to sleep)
Math:
Enjoy !
~~~~~
"The issue today is the same as it has been throughout all history, whether man shall be allowed to govern himself or be ruled by a small elite." - Thomas Jefferson
for TCP/IP... (Score:2)
My Top Three Books (Score:2)
1. Code Complete by Steve McConnell -- A briliant text on all aspects of software creation, language neutral
2. Software Project Survival Guide, also by Steve McConnell -- All you wanted to know about the best processes for executing a software project and getting it shipped with your career in one piece
3. Advanced Programming in the Unix Environment by W. Richard Stevens -- no intro necessary.
Re:Design Patterns - the FIRST edition (Score:2)
Patterns of Software by Richard Gabriel (Score:2)
For more info visit his web site [dreamsongs.com], and particularly the part on Worse is Better [dreamsongs.com]
Re:Core Programming Books (Score:2)
Oh? The world is awake when it comes to the issues concerning how to build big systems?
I hadn't noticed.
I do agree with the choice, I'm just disparing at how few project managers and executives I've known really understand something as simple as "adding people to a late project makes it later".
Re:The C++ Programming Language (Score:2)
-------------
My list (Score:2)
James O. Coplien
It's a great book for novice C++ programmers. It explained a lot to me. Unlike other books of its kind, it's completely OS-independent.
Code Complete : A Practical Handbook of Software Construction
Steve C McConnell
This is one of those "how to write code that can be maintained by anyone" books. A library can't have too many books like these.
--
Lord Nimon
Scott Meyers books (Score:2)
The first is organized as 50 tips (really concepts) to improve your code.
The second is 35 more.
The latest is on STL. I haven't read that one, but based on his previous ones and how long he took to write it, I trust it's also a good read.
Numerical Recipies in XXX (Score:2)
There are C, Fortran, Pascal, and Basic versions. Obviously you don't need all. Any one will do. Although the Fortran version has the advantage that it would be contiguous with NR in F90 which is not like any of the others in that it focuses on parallel programming. I'd have to say that NR in F90 isn't nearly as essential as any one of the standard NR texts.
Re:O'Reilly books (Score:4)
You are mostly correct - one notable exception is Steve McConnell, author of two very notable books - "Code Complete" and "Rapid Development".
-jerdenn
Get the extremes (Score:2)
The most important things to teach students about any subject is diversity. I can't believe how many college grads that I had to interview that thought they were good candidates because they knew all Microsoft stuff. I hired the one who had experience with at least three different environments, and could tell me the pros and cons of each. Give me someone who knows 10 years of A, and someone who knows 5 years of A and 5 years of B, and I'm more likely to hire the latter.
So I would pick at least O'reilly's "Unix in a Nutshell" [amazon.com] so you always have your reference.
And then get "AppleDesign: The Works of the Apple Industrial Design Group" [amazon.com] to remind you that computers should be more than boring boxes and uninspired designs.
Re:Undergrad textbooks: Algorithms, H&P, Dragon, e (Score:2)
Concrete Mathematics (Score:2)
The book unvails the wonderfull world of Mathematics that goes into computer programming. It is a must have in any library, especially if you want to understand TAOCP.
bash-2.04$
Must have Donald Knuth series ... (Score:3)
Numerical Recipes (Score:3)
Numerical Recipes in C: The Art of Scientific Computing [fatbrain.com], by William H. Press,Brian P. Flannery,Saul A. Teukolsky,William T. Vetterling.
To paraphrase the Planet of the Apes star: Anyone who wants my copy can pry it out of my cold, dead hands.
-Renard
Re:Based on what my local library has... (Score:4)
For some reason I have this image of the 'library computer book' with a bunch of black-and-white photos in the middle:
New classics and an old one (Score:3)
The Java Prgramming Language, 2nd ED.
Effective Java
Java Platform Prformance: Strategies and Tactics
New Tutorial:
The Java Tutorial.
Older reference:
Effective C++.
Computer Networks -- Tanenbaum (Score:3)
But I'd put Computer Networking by Andrew Tanenbaum ahead of K&R. It's well written - not too much like a textbook, humourous in places, with good thought provoking examples (e.g. at what point does a station wagon full of tapes speeding down the highway become a higher bandwith carrier than a T1 cable?). And my copy is a few years old and still relevant (which, as we all know, is a very rare thing).
Good for beginners, good for experts. Buy this book.
ANSI Common Lisp (Score:4)
Paul Graham
ISBN: 0-13-370875-6
Not only is just up to date when it comes to the ANSI standard for common Lisp, but it tackles many issues of learning functional programming. Good examples and lessons in recursion, macro writing and much more.
Only need one... (Score:4)
Fundamentals... (Score:3)
Books that will be read 100 years from now... (Score:3)
Kernighan and Ritchies's C Programming Language (Score:5)
K&R (Score:3)
I would consider any book that deals with the core part of a language neccesary.
Most O'Rielly books have a desent shelf life. I have a 5 year old html book which is still perfectly valid HTML, although not the latest.
I wonder if you could get publishers to donate a copy of a book as it goes into a final press?
Any book you can get I would imagine wold be good.
Godel Escher Bach (Score:5)
while it may not be an "applied" book, G.E.B. [amazon.com] is an important text because it has a high-level description of concepts that scientists and engineers should make part of their worldview. Don't discount the importance of philosophy :)
Undergrad textbooks: Algorithms, H&P, Dragon, etc (Score:5)
Aho, Sethi & Ullman's "Compilers: Principles, Techniques and Tools"
Cormen, Leiserson & Rivest's "Introduction to Algorithms"
Patterson & Hennessy, and Hennessy & Patterson.
Lewis & Papadimitriou, "Elements of the theory of computation."
Gamma, Helm, Johnson & Vissides, "Design Patterns."
And "The Mythical Man Month."
All of the above are about the fundamentals, the theories, and should be part of anyone's library who is serious about computers from a Computer Science perspective, IMHO. Some of them have survived basically unchanged for many, many years, without losing their relevance.
Knuth (Score:5)
Re:Kernighan and Ritchies's C Programming Language (Score:4)
Goedel, Escher, Bach -- Hofstadter
For the theory.
Code -- Charles Petzold
Yes, I know he's the Programming Windows guy, but this is one of the best explanations of how a computer works that I've ever seen.
The Lions Book
This is how to write an OS. Similarly, Coriolis' Linux and Apache source commentaries.
Win32 API Reference
4.4BSD manual set
Macintosh Human Interface Guidelines
Kernighan and Pike
Some of the basics of what a working system looks like. There might be a couple of others I'd throw in.
Include a bound copy of the most important RFCs.
Language references
K&R C
Stroustrup (3d edition)
Common Lisp: The Language
Programming Perl
Python references
Visual Basic Language Definition
The Dragon Book (for compiler writers)
Essentially this collection is the basics of how to build a computer system after the apocalypse.
/Brian
Based on what my local library has... (Score:3)
...you should get lots of books on the Apple II and programming VGA graphics.
The books I'd choose: (Score:5)
OS/2 Warp for Dummies [amazon.com]
Netscape Time : The Making of the Billion-Dollar Start-Up That Took on Microsoft [amazon.com]
Enterprise Development Using Microsoft Visual Basic 6.0 [amazon.com]
Geeks [amazon.com] (By Jon Katz)
Rationale: it's best to learn from your mistakes.
The C++ Programming Language (Score:4)
You'll want to buy histories rather than manuals (Score:5)
Instead, you should concentrate on aquiring for the library's collection, books which cover a broader scope of aspects of computer science and the history of computing. This would include such books as 'Alan Turing: The Enigma [slashdot.org]'.
--CTH
Applied Cryptography (Score:3)
This is becoming the end-all, be-all textbook on cryptography (both composing and cracking message) in the wild.
One of its more valuable contributions is the fact that it sets down a common language for various cryptographic terms and practices we all sorta know about, but can't really bring clearly into a conversation. Having the common vocabulary that Bruce brings to security is as powerful as the common language that the Gang of Four book brought to object-oriented design.
Can't go wrong with O'Reilly (Score:3)
Also, for Visual Basic, the Microsoft Refernece library for VB is quite extensive and well written, combine that with the VB Programmers guide
Categories & Suggestions (Score:3)
"The C Programming Language"
"The C++ Programming Language"
"Programming Perl"/"Learning Perl"
"Design Patterns: Elements of Reusable Object-Oriented Software"
"Data Model Patterns: Conventions of Thought"
"Designing Web Usability"
Categories:
A book on Discrete Mathematics
A book on set theory
A book on cryptographic theory
A book on problem solving ("How To Solve it" is a good example)
A book on the design and analysis of algoritms
Somewhat OT:
A machine with a CD-RW drive and links to www.linuxiso.org, promo.net/pg/ (project guttenburg), and similar sites. Let people BYOB (Bring Your Own Blanks) and let them burn CDs for stuff that is FREELY available on the net. Sell blank discs at cost+handling, like libraries do with other supplies.