Computer Books For A Library?
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?
- The Art of Computer Programming -- Knuth
- Advanced Programming in the UNIX Environment -- Stevens
- C/C++/Java How To Program -- Deital & Deital stupid titles, good beginning books
- The Practical SQL Handbook -- Bowman
- Joe Celko's SQL for Smarties
- Essential System Administration -- Frisch
- TCP/IP Network Administration -- Hunt
- Modern Operating Systems --- Tanenbaum
- The Mythical Man Month -- Brooks
- The C++ Programming Language -- Stroustroup
- Generic Programming and the STL... -- Austern
- Computer Networks -- Tanenbaum
- Upgrading and Repairing PCs -- Mueller
- Applied Cryptography -- Schneir
- C Programming Language -- K&R
- Internetworking with TCP/IP 1, 2 & 3 -- Comer
- Unix Network Programming 1&2-- Stevens
Nothing else comes to mind offhand...--
Addison-Wesley's "Design Patterns" tends to be language-agnostic and focuses on actual object designs which have survived the test of time. Very useful for anyone involved in OO work.
Absolutely Life-Changing..., December 27, 2000
;)
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...
How about all the back issues and a subscription to Dr Dobbs? There have been hundreds of articles by notable programmers over the years, not to mention Jon Bentleys columns that eventually became the two editions of Programming Pearls
my blog: good times, man, good times
Refactoring: Improving the Design of Existing Code
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
Free as in "the Truth shall set you..."
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++ by Bjarne Stroustrup. 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's Writing Solid Code and Scott Meyer's pair Effective C++ and More Effective C++ . 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.)
Search 2010 Gen Con events
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.
CJ Date's "Introduction To Database Systems"
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?
-- My Weblog.
> 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 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 (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 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 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.
Brooks, Fred, The Mythical Man-Month -- Because it woke the world up to how to build big systems.
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.
That no one has suggested
Code Complete
and
Rapid Development
they are two of the most important computer (programmer) books out there...
LetterRip
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
avoid everything from Microsoft Press or written by Microsoft employees
You are mostly correct - one notable exception is Steve McConnell, author of two very notable books - "Code Complete" and "Rapid Development".
-jerdenn
"The Art of Programming Vol. 1-3" by Donald Knuth. The definitive guide to theoretical and practical Computer Science. Check it out.
Numerical Recipes in C: The Art of Scientific Computing, 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
For some reason I have this image of the 'library computer book' with a bunch of black-and-white photos in the middle:
- Man with glasses and polyester short-sleeved shirt sitting at terminal on expensive computer desk. Caption:The smart terminal allows users to interact with the computer in real time. Courtesy Lear-Seigler corporation.
- Woman in skirt and heels is crouching to change a tape on a filing-cabinet sized computer. Caption:Minicomputers are becoming increasingly powerful. The unit pictured here can perform hundreds of mathematical calculations per second. Photo courtesy Honeywell Corporation.
Anyhow, I'm glad libraries keep old irrelevant junk. It gives us a way to measure the passage of time. The commercial world constantly erases and rewrites the past. This is a large part of what DMCA is about - the right of the wealthy to erase the past and rewrite it in their own image, versus the right of the commoner to retain information.New (relatively) References:
The Java Prgramming Language, 2nd ED.
Effective Java
Java Platform Prformance: Strategies and Tactics
New Tutorial:
The Java Tutorial.
Older reference:
Effective C++.
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"
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.
The Structure And Interpretation of Computer Programs
TAOCP (Knuth) and SICP (Abelson, Sussman). Both are a must. They bear fruit even on several rereads. Fun stuff!
It's a slim, expensive tome, but absolutely indispensable. It's almost impossible to not come into contact with C, especially if you are an Open Source user. It's also practically a part of the geek heritage, both in the style in which it is written, and in the impact it has had on generations of coders. It is truly one of the underpinnings of a great part of Information Technology history.
get the K&R ansi C book.
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.
The Kruger Dunning explains most post on
while it may not be an "applied" book, G.E.B. 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 :)
Don't blame me - I voted for Howard Dean. http://dean2004.blogspot.com
I would recommend using the books that have become old standards over the years for teaching undergraduates, the "Bibles" of their respective fields:
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.
The Art of Computer Programming by Donald Knuth is a must have.
"Perl 6 will give you the big knob." -Larry Wall
...you should get lots of books on the Apple II and programming VGA graphics.
OS/2 Warp for Dummies
Netscape Time : The Making of the Billion-Dollar Start-Up That Took on Microsoft
Enterprise Development Using Microsoft Visual Basic 6.0
Geeks (By Jon Katz)
Rationale: it's best to learn from your mistakes.
This is one programming book that has stood the test of time... Bjarne Strousrup.
The first inclination of /. readers will be to suggest manuals, or more generalized reference works such as are published by O'Reilly & Associates. This is an extremely bad idea. These works not only have a short shelf life, but are also of a nature which is not conducive to use in a library, in that people who refer to them will want to do so continually, and at a moments notice, rather than saying 'Gee. I have this problem with the syntax of this Perl function. Let me go to the library and check out the camel book', users will want to own such works durring the time in their lives when they are actively pursuing the subjects those works would relate to.
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'.
--CTH
--Got Lists? | Top 95 Star Wars Line
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.
Also, for Visual Basic, the Microsoft Refernece library for VB is quite extensive and well written, combine that with the VB Programmers guide
Top Most Bizarre/Disturbing Error Messages
Suggestions:
"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.