Slashdot Mirror


Your Favorite Tech / Eng. / CS Books?

chris_eineke writes "I like to read and to collect good books related to computer science. I'm talking about stuff like the classic textbooks (Introduction to Algorithms 2nd ed., Tanenbaum's Operating Systems series) and practitioners' books (The Practice of Programming, Code Complete) and all-around excellent books (Structure and Interpretation of Computer Programs, Practical Common Lisp). What's your stocking-stuffer book this Christmas? What books have been sitting on your shelves that you think are the best ones of their kind? Which ones do you think are -1 Overrated? (All links are referral-free.)"

69 of 517 comments (clear)

  1. TCP/IP Illustrated, Vol 1 by W. Richard Stevens. by whistl · · Score: 5, Informative

    The classic IP networking book

  2. Best books? by librarybob · · Score: 5, Insightful

    As I'm a librarian I'm extremely interested in what people will suggest. The opinion of practitioners is a lot more relevent than that of book reviewers.

    1. Re:Best books? by MightyMartian · · Score: 4, Interesting

      Introduction To Algorithms 2nd Edition was by far the most useful book I've ever delved into. Back in the olden days when I was stuck coding in a borrowed copy of QuickBASIC, I developed one helluva binary search routine that could search through about 50,000 records in tolerable time on an PC-XT, and that book saved my ass.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    2. Re:Best books? by Workaphobia · · Score: 3, Interesting

      Then let me reply directly (read: a poor excuse to top-post).

      Michael Sipser's "Introduction to the Theory of Computation." It's easily the best textbook I've ever owned, and had me paging through it well ahead of the pace of the course. It of course doesn't serve nearly the same purpose as K&R and all those other books on practical topics, but for someone who's never been exposed to the theoretical side of CS, it's a wonderful eye-opener.

      Apparently the same opinions are shared by most of the other CS students I've talked to.

      --
      Evidently, the key to understanding recursion is to begin by understanding recursion. The rest is easy.
    3. Re:Best books? by SlashDotDotDot · · Score: 4, Informative

      Effective C++, Scott Meyers -- I own the 2nd Edition, but there may be a newer one. This is the best book I've seen for really making sense out of C++. It is well-organized, covers its chosen topics thoroughly, and is fun to read.

      --
      /...
    4. Re:Best books? by ed1park · · Score: 2, Informative

      This is my favorite and a must for anyone for interested in computers. Puts all the other excellent books recommended here in perspective.

      Computer Science by Brookshear

      http://www.amazon.com/Computer-Science-Overview-Glenn-Brookshear/dp/0321524039/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1230062205&sr=8-1

      PC architecture, cpu design, programming paradigms, TCPIP, np complete, neural networks, etc. Excellent explanations. Brief but dense. Wonderful starting point.

      You get to see all the beautiful forests instead of getting lost in a few groves...

    5. Re:Best books? by 0xABADC0DA · · Score: 2, Informative

      The Computer and the Brain.

      There is no book that says more what computing is all about, from the historical perspective of appreciating how genius the founders of computer science were to the zen of how digital computers actually operate and to a different perspective on analog computing.

      This book is only 110 pages and is 50 years old, but it is still worth more than any other book mentioned.

    6. Re:Best books? by sakonofie · · Score: 2, Informative

      When the two overlap (which they mostly do), I prefer "Introduction to Automata Theory, Languages, And Computation" by Hopcroft, Motwani, and Ullman* over Sipser's "Intro to Theory of Computation". http://books.google.com/books?id=pvPeAwAACAAJ

    7. Re:Best books? by NovaX · · Score: 2, Informative

      Then you might like "Algorithm Design" (2008). Its a superior, imno, but has slightly less coverage with better depth. My personal favorite algorithm book is "The Art of Multiprocessor Programming".

      --

      "Open Source?" - Press any key to continue
  3. The Art of Computer Programming by larry+bagina · · Score: 3, Interesting

    (personally, I think it's overrated, but I'm still proud to own the set).

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

  4. Switching Power Supply Design, Abraham I. Pressman by digitalunity · · Score: 3, Interesting
    --
    You can't legislate goodness. Let each to his own destiny, by will of his freely made choices.
  5. K&R2 by dprovine · · Score: 5, Insightful

    Still the standard for programming language books, IMHO. I tell people to work all the way through it, from start to finish, and do every exercise until it works exactly as it should.

    C isn't a perfect programming language, by any means -- no language is -- but writing lots of programs in it gives you a feel for the low-level things a computer has to do.

    1. Re:K&R2 by Amazing+Quantum+Man · · Score: 2, Interesting

      Add a vote for K&R2, and one that may seem off the wall:

      "Oh! Pascal", by Cooper and Clancy. It's probably out of print, but it had the most lucid, understandable explanation of pointers that I have ever seen in my life.

      --
      Fascism starts when the efficiency of the government becomes more important than the rights of the people.
  6. Modern C++ Design by abigor · · Score: 4, Informative

    Possibly the most mind-expanding "C++" book ever written, and certainly the most poorly-named. It's all about template programming and will really change how you think about generic programming.

    There's also Schneier's "Applied Cryptography" and Norvig's "Paradigms of Artificial Intelligence Programming" and "Artificial Intelligence: A Modern Approach" to satisfy the urge one sometimes gets to skip syntax and write software directly as a parse tree.
     

    1. Re:Modern C++ Design by Slicebo · · Score: 5, Funny

      Minor correction to your post: It actually refers to parsing the leaf level (the lower ridge) of a B (binary) tree.

      Or (to put it more concisely):

      A parse-ridge in a pair tree.

    2. Re:Modern C++ Design by mpsmps · · Score: 2, Interesting

      I actually taught a class with "Modern C++ Design" as a primary text. Perhaps surprisingly, it turned out to be a great success. While the actual techniques in the book are not always suitable for use in most professional C++ programming shops, the revolutionary thinking and skills in it will serve you well whatever programming you do, even if it is in a different language, which is a hallmark of classic texts.

  7. Most Excellent Book by D+Ninja · · Score: 2, Funny

    Teach Yourself C++ Programming in 21 Days

    What? No? Alright then...

    The C++ Programming Language, 3rd Edition is pretty excellent.

    1. Re:Most Excellent Book by zieroh · · Score: 2, Insightful

      The C++ Programming Language, 3rd Edition is pretty excellent.

      Ugh. He may have invented the language, but that book is as long as it is awful. There are *much* better (and more accessible) texts on C++.

      --
      People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
  8. The Camel Book by happy_place · · Score: 2, Interesting

    Programming Perl (by O'Reilly) is a classic, imo. I know it's language specific, but it's also very funny and really defined the iconic symbol of the camel and Perl, and at least for me made O'Reilly a publisher worth its salt... --Ray

    --
    http://www.beanleafpress.com
  9. Applied Cryptography by Bill+Wong · · Score: 2, Insightful
    1. Re:Applied Cryptography by fm6 · · Score: 3, Interesting

      Here's a criticism of that book from its own author: it supports the illusion that all you need to secure a system is the right technology.

  10. Effective Java by Josh Bloch by SpuriousLogic · · Score: 4, Informative

    I love this book. Many times I run into developers that program the exact same way they learned in school, without ever really knowing why they do things a certain way or question if something can be done better. Effective Java is basically the knowledge that a mid-level and higher developer should have learned codified into book form. The organization is great (broken into topics - you do not need to read from front to back), and has clear and easy to understand examples. It is a great book to move a junior Java developer up to a mid-level Java developer very quickly. It is now available in a second edition that is even better and with more content than the first edition. It is also a Jolt award winner.

  11. My very favorite by dzfoo · · Score: 5, Informative

    My very favorite technical book is Programming Perl, a.k.a. The Camel Book, by Larry Wall et al. It is indeed a rare gem to find a book with such complex technical concepts, that is so much fun to read, you can take it with you on the train commute, or on holiday, and read it from cover to cover.

              -dZ.

    --
    Carol vs. Ghost
    ...Can you save Christmas?
  12. Best Project Management Book Ever by Reality+Master+101 · · Score: 5, Insightful

    Mythical Man Month. A classic. There are no silver bullets! As true now as then.

    --
    Sometimes it's best to just let stupid people be stupid.
    1. Re:Best Project Management Book Ever by sbeckstead · · Score: 2, Funny

      9 women x 1 month != Baby
      classic

    2. Re:Best Project Management Book Ever by SuurMyy · · Score: 3, Insightful

      While it's a classic, and has good things here and there, I wouldn't say it's the best book. Peopleware is, IMHO, much better, and the book I'd recommend everyone reads at least once.

      --
      The lyf so short, the craft so long to lerne
  13. Digital Computer Analysis by James F. Turner by lq_x_pl · · Score: 2, Informative

    Some of the "technology" discussion is VERY dated (the book was published in 1968), covering things like magnetic drums and punchcards.
    BUT, The rest of the information covering logic gates and binary math takes the reader down to the fundamentals of the fundamentals.

    --
    An internal system operation returned the error "The operation completed successfully.".
  14. text processing in python by bugs2squash · · Score: 2, Informative

    David Mertz

    --
    Nullius in verba
  15. Nonlinear Dynamics and Chaos by orzetto · · Score: 4, Informative

    Nonlinear Dynamics and Chaos by Strogatz. The one and only book about math that I ever read without ever being bored nor puzzled, and I actually learned something at the end of it.

    --
    Victims of 9/11: <3000. Traffic in the US: >30,000/y
  16. Dragon Book by hal2814 · · Score: 4, Insightful

    "Compilers: Principles, Techniques, and Tools" by Avo, Sethi, and Ullman.

    To be fair, I'd like to point out that the 2nd Edition just came out when I picked it up and that's what I'm basing my opinion on. I've never read the 1st Ed (though it has a much cooler cover).

    Honorable mentions:
    The C Programming Language
    Any of Tannenbaum's OS books (I'm kind of partial to the Design and Implementation one that uses Minix as a case study)
    Deitel & Deitel's Java book (To be fair, it is good but overpriced if you don't already have to buy it as a textbook.)

  17. The Art of Computer Programming by Donald Knuth by Christopher_Olah · · Score: 5, Insightful

    It's good. I'm going to have to disagree with you on it being overrated. It's dense and long but it has lots of good things. I've learned a lot, despite only having started reading it recently.

    1. Re:The Art of Computer Programming by Donald Knuth by TravisO · · Score: 3, Insightful

      Don't forget that by using bold it makes your text more important.

  18. Design Patterns by MozeeToby · · Score: 5, Informative

    http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1230057946&sr=8-1/

    If you're doing oject oriented, there's no better place to start looking when you you're trying to learn good software design. I know, some people say patterns are overused, but they are essential to understanding and designing complex software.

    1. Re:Design Patterns by Rary · · Score: 5, Informative

      Agreed. And I would add: Refactoring by Fowler and friends.

      --

      "You cannot simultaneously prevent and prepare for war." -- Albert Einstein

    2. Re:Design Patterns by timewasting · · Score: 3, Interesting

      GoF --> -1 Overrated. Not because of the book, but because of most of the idiots who didn't conceptually understand the applications after reading. Half the people who try to talk in patterns don't understand the difference between Command, Visitor, Chain of Responsibility, etc. They understand Singleton, and that's it. Of the people who can talk in patterns, a good 50% don't really know how to appropriately use them together in system and software architecture. Meaning, at best, 1 in 4 of those who reference GoF patterns are actually using the work to help in communication and design.

      I think it's probably an important book in the history of Software Engineering (not to be confused with CS). The book unfortunately spawned at much bad design as it did elegance.

  19. Introduction to Computing Systems (Patt/Patel) by characterZer0 · · Score: 2, Interesting

    "Introduction to Computing Systems: From Bits and Gates to C and Beyond"

    http://highered.mcgraw-hill.com/sites/0072467509/

    This is where every programmer should start.

    --
    Go green: turn off your refrigerator.
    1. Re:Introduction to Computing Systems (Patt/Patel) by David+Greene · · Score: 2, Interesting

      Simply awful. The book was written with the hairbrained notion that students should learn about transistors and CMOS first and only at the end of the semester should they actually program in a reasonable language.

      I had the misfortune of working with students as a teaching assistant in that course and, predictably, students struggled. There's a reason it's a good idea to learn concepts first and then approach the implementation details later. The concepts are much more important.

      The theory was that students should learn what's going on under the hood when they program. A better approach would be to require all CSE students to take computer architecture, compilers and operating systems courses.

      --

  20. Code by Charles Petzold by CorporateSuit · · Score: 3, Interesting

    The first few chapters of Code will turn you from a know-nothing cubscout into a 2nd-year electrical engineering major within an afternoon. The book scales from understanding morse code to binary to logic gates to flipflops to RAM to assembler to constructing your own bios and operating systems with nothing but a hearty supply of semiconductors, batteries, plywood, wire, and solder, if you wanted to. The jumps between one level and another are made so they appear completely contiguous. It helps a CS student understand how software can truly run on hardware (instead of just looking at the magic boxes and saying "DO AS I SAY, PATHETIC PROCESSOR!")

    I've never read a book that taught me so much in so few words so fluidly. I picked it up in a Barnes and Noble for like $20 (Skeptical from the logo on the back) and have never been so pleasantly surprised with a dead tree.

    --
    I am the richest astronaut ever to win the superbowl.
  21. Re:TCP/IP Illustrated, Vol 1 by W. Richard Stevens by fm6 · · Score: 2, Insightful

    Everything by Stevens rates the word "classic". Pity the dude didn't live long enough to write more.

  22. Re:My Math Books by poopdeville · · Score: 4, Interesting

    I agree completely. Aside from language reference books (a dime-a-dozen) and the web, I primarily use Mathematics texts books as my primary reference works. Lattice and Category theory are very helpful for understanding database design and algorithms -- an inner join on database tables is join of "sub-tables" in the Dedekind-MacLane completion of the lattice of "sub-tables", for example.

    Combinatorics are helpful when analyzing algorithms in general. Category theory and some first order logic (quantifying over categories) gives you a sound and rich theory of types (or you can develop an equivalent one in about a million different ways). Never mind the domain specific problems I've worked on, including statistical analyses of large amounts of data.

    For most computing domains, a CS degree is overrated. A Mathematics degree gets you 90% of the way there, and gives you so much more.

    --
    After all, I am strangely colored.
  23. A short list by stonecypher · · Score: 3, Informative

    The Art of Computer Programming, Design Patterns, Domain Driven Design, Refactoring, Modern C++ Design, C++ Gotchas, The Mythical Man Month, Applied Cryptography, Introduction to Algorithms, Intro to Personal Software Process.

    --
    StoneCypher is Full of BS
  24. Thinking Forth by fwarren · · Score: 2, Informative

    Personally, for me is Thinking Forth by Leo Brodie. I re-read it at least once a year.

    A very lucid discussion of writing software and the philosophy that was often employed by very successful Forth Programmers. The hallmark of which was "elegance".

    In a nutshell, you can remember 7 items plus or minus 2. So any programming construct that had less than 10 commands (as opposed to syntax "noise") could be read and comprehended. When it comes to hiding data, what needs to be hid, is what can change. Build a program from small modules. Some are private, which are designed to deal with stuff that changes. Then there are more public modules that are the interface to those private modules that can change. A good program is built from lexicons of these private/public modules.

    The reason it is important to design lexicons of code around modules of "stuff that can change" is for correctness, elegantness and code-reuse. Control structures are superficial. Elegant designs can withstand change because they are not built around control structures, they are built around data and event transformations.

    There was plenty of stuff in the specific to how Forth really made this method of rapid prototyping software development work. Such as the implicit method of passing data and calling functions.

    If I had my way. No matter what language you end up working with. You should program in Forth for a few months first. Having to deal with a 64x16 character, 1024 byte blocks and a block file editor. The discipline in learning to factor code to fit in a standard screen is a good thing. Once you can start writing code that is small and elegant like that, you will be a better programmer in whatever language you eventually use. In addition you learn to use a simple IDE, program in both low level and high level functions. You get to work with a virtual machine that is simple enough to learn in an afternoon. You also get to learn such advanced techniques as building compilers, interpreters, and text parsers. Working with data structures such as threads, hashes, dictionaries, and vectored execution.

    --
    vi + /etc over regedit any day of the week.
  25. Re:come on by fwarren · · Score: 2, Funny

    Only if you start at the beginning and remember to stop once you reach the end of it.

    --
    vi + /etc over regedit any day of the week.
  26. Books I highly recommend by elnyka · · Score: 2, Interesting
    1. Pitfalls of Object Oriented Development by Bruce F. Webster. Too bad it's no longer being printed, BUT you can buy it used in Amazon for pennies. If you are serious at becoming not just a coder, but a good engineer, you must buy this book.
    2. Software Project Survival Guide by Steve McConnell.
    3. Affinity: Managing Java Application Servers by John M Hawkins - a must if you are a J2EE container admin.
    4. Unix for the Impatient by Paul W. Abrahams, Bruce R. Larson - nuff said.
    5. AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis by William J. Brown
    6. Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) by the GoF.
  27. Prices! by fm6 · · Score: 2, Insightful

    I followed some of the links, and was appalled at the prices. $100 for a simple summary of OS technology? That's a blatant, immoral cashing-in on the fact that students are are a captive audience.

    (What's really sad is that $100 for textbook is actually relatively cheap.)

    Even $70 for SICP is ridiculous. Fortunately, the authors are kind enough to provide a free online copy.

  28. Writing Solid Code by Rick+Genter · · Score: 2, Informative

    Following any of the advice in Writing Solid Code will guarantee that your code will become higher quality.

    --
    Don't underestimate the power of The Source
  29. More Good books for any Programming/Comp Sci by CircusTent · · Score: 2, Informative

    The 19 Deadly Sins of Software Security is a book that I would say is almost a necessity for any collection. It helps to show some of the issues that the different programming languages have and how to fix the problem.
    Hacking : The Art of Exploitation is another great book that I would say you should have to bring more knowledge about how to prevent and write better code.
    Outside of that I own a ton of Programming/Application design methodology books.

    --
    Pew Pew
  30. The Cuckoo's Egg by Zoxed · · Score: 3, Interesting

    Without doubt Clifford Stoll's The Cuckoo's Egg It had me gripped in a way that no programming book could have :-)

  31. Re:TCP/IP Illustrated, Vol 1 by W. Richard Stevens by geminidomino · · Score: 4, Informative

    Agreed.

    "Unix Network Programming" was a godsend.

  32. My Favorites by peterofoz · · Score: 2, Interesting

    How to Break Web Software
    Functional and Security Testing of Web Applications and Web Services

    Programming Pearls

    The Art of Computer Programming (3 vols)
    Donald E. Knuth

  33. In IT security field by hugetoon · · Score: 2, Informative

    "Security Engineering" by Ross Anderson http://www.cl.cam.ac.uk/~rja14/book.html/.
    The best book ever, truly enlightening.
    If you're young enough it will change your life.

  34. Norvig's Paradigms of AI Programming by slasho81 · · Score: 2, Informative

    Peter Norvig's Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp

  35. Yes, K&R2 is still the best. by L'homme+de+Fromage · · Score: 4, Informative

    Other CS books I like:

    • The Design and Analysis of Computer Algorithms, by Aho, Hopcroft & Ullman
    • Elements of the Theory of Computation, by Lewis & Papadimitriou
    • Computability, Complexity, and Languages, by Davis & Weyuker
    • Introduction to Automata Theory, Languages, and Computation, by Hopcroft & Ullman
    • The UNIX Programming Environment, by Kernighan & Pike
    • The AWK Programming Language, by Aho, Kernighan & Weinberger
    • Combinatorics for Computer Science, by Williamson

    For math, my favorites are:

    • Introduction to Geometry (2nd ed.), by Coxeter
    • Div, Grad, Curl, and All That, by Schey
    • A Course of Pure Mathematics, by Hardy
    • Introduction to Probability Theory, by Hoel, Port & Stone
    • Differential and Integral Calculus, Vols. 1&2, by Courant
    • A First Course in Numerical Analysis, by Ralston & Rabinowitz

    For physics, my favorites are:

    • Mechanics (3rd ed.), by Landau & Lifshitz
    • Mathematical Methods of Classical Mechanics, by Arnold
    • Spacetime Physics, by Taylor & Wheeler
    • Gravitation, by Misner, Thorne & Wheeler
    • Classical Electrodynamics (2nd ed.), by Jackson
    • Lectures on Quantum Mechanics, by Baym
    1. Re:Yes, K&R2 is still the best. by asciiduck · · Score: 2, Interesting

      I'm going to have to disagree with your choice in E&M book, I'm personally a fan of David Griffiths for E&M. I'm also a pretty big fan of his Quantum Mechanics book and I've heard good things about his Particle Physics book. Also, "Surely You're Joking, Mr. Feynman!" is an amusing book (pretty much anything by him will be good, but the book I just mentioned has no scientific value to speak of but is a good read).

    2. Re:Yes, K&R2 is still the best. by L'homme+de+Fromage · · Score: 2, Interesting

      I have to admit I've never cared for the Griffiths E&M book. His writing style put me off, plus there's a bit too much hand-waving. At that level of E&M (beginning/intermediate) I prefer Purcell's "Electricity & Magnetism" or "Foundations of Electromagnetic Theory" by Reitz, Milford & Christy. The math and the explanations are better in those books than in Griffiths', in my opinion, and both are better preparation for Jackson's more comprehensive book.

  36. "How to Think Like a Computer Scientist" by sgtrock · · Score: 2

    Dead tree version available soon. GPL licensed, electronic versions available here and here.

    I read an older edition of the latter a couple of years ago and found it to be an excellent introductory text. I have no doubt that the new paper version will be well worth adding to your collection. :)

  37. Re:How's about for Economics / Business / Marketin by geminidomino · · Score: 2, Funny

    Hey,

    I like the above suggestions. However how about some economics / business / marketing books also?

    Yes, because nothing appeals to CS/Eng geeks like reading books written for marketroids...

  38. favorite books by br00tus · · Score: 3, Insightful

    I'll start with the one I'm most qualified to know about, with many years of UNIX systems administration under my belt - the UNIX System Administration Handbook. It reads like a book written by a bunch of sysadmins who know what they're talking about, and then telling you what you need to know.

    Operating Systems Design and Implementation by Andrew Tanenbaum and Albert S Woodhull. Walks you step-by-step through Minix, a "POSIX conformant" Unix system designed primarily to teach students how operating systems work. You should probably have a *little* UNIX experience before going through it, but it will spell out in detail how things like pipes work beyond that they're STDOUT to STDIN, or how semaphores work and why it was necessary for semaphores to be invented in the first place. And so on.

    K&R - not only a classic, but a useful one to boot.

    Code Complete. Lots of the common wisdom, and theory to praxis to practice tried and true advice on how to right good programs - a preference for short functions that do one thing and do them well, with a limited number of variables, and with even more efforts to be conservative with regards to global variables.

    Richards TCP/IP book. I use it as a reference when I need to know how to do something.

    Knuth's The Art of Computer Programming is a reference book FOR reference books. You often see comments in kernel and critical software which says "Knuth's TAOCP says this is the best way to do this". He states how math underlies Computer Science which is probably why I'm still stuck on the first few pages of Volume 1. Maybe I'll go back to after I take a course in discrete math and calculus.

    These are the six I can think of. I can think of other books I have found useful as well - some books on assembly programming and how the processor and system works, lots of O'Reilly books like the PERL ones.

    And if you're looking for some light reading, Accidental Empires is good, as well as Hackers. You might also enjoy Just For Fun (by Linus Torvalds) and Free as in Freedom (about Richard Stallman) as well.

  39. Re:How's about for Economics / Business / Marketin by geminidomino · · Score: 4, Funny

    Yes, because the only people who read Slashdot are CS/Eng geeks, and I wasn't trying to get some information about other popular areas of study.

    Geez. There's not even an FA to Read, but you skipped not only the summary but the HEADLINE?!

    Where in "Tech / Eng. / CS" would you put "advertising wankery and asskissing?"

    Oh also, your use of the word "marketdroids" shows me that you could really benefit from reading some of these sorts of books.

    Fortunately, I don't have to. I actually possess a skill.

  40. Re:Switching Power Supply Design, Abraham I. Press by martin_henry · · Score: 2, Insightful

    I wouldn't call that computer science

    It's electrical engineering. The title of the article asked for Tech/engineering/CS books.

    --
    www.purevolume.com/martyd
  41. Practical Common LISP by DannyO152 · · Score: 2, Informative

    I would flag this as among the second-tier. Paul Graham's books, especially "On Lisp" are better.

  42. Re:My Math Books by z-j-y · · Score: 3, Funny

    When I was about to write my first "Hello World" program, I thoroughly studied the theory of computability. The I had to give up the project, because I couldn't find a way to prove the consistency of such a program.

  43. Dianetics by east+coast · · Score: 2, Funny

    Dianetics is one hell of a programming book.

    Oh, you meant computers... Sorry.

    --
    Dedicated Cthulhu Cultist since 4523 BC.
  44. Some tech books I enjoyed a lot by stsp · · Score: 3, Informative
  45. My favorites list by jlarocco · · Score: 2, Informative

    These are the books I most often find myself using as references:

    • Advanced Programming in the UNIX Environment
    • Advanced UNIX Programming
    • The C++ Standard Library, A Tutorial and Reference
    • Programming Perl
    • OpenGL Programming Guide
    • Numerical Recipes
    • Introduction To Algorithms
    • The Art of Computer Programming

    These ones are also good, but not as references:

    • The Pragmatic Programmer
    • How To Solve It
    • The Mythical Man Month
    • Code Complete
    • Design Patterns
    • Rapid Development

    I think other people have listed most of those already, but oh well.

  46. Security Engineering by Ross Anderson by plcurechax · · Score: 3, Informative

    Security Engineering: A Guide to Building Dependable Distributed Systems by Ross Anderson, professor at Cambridge University.

    It replaces and expands upon Applied Cryptography by Bruce Schneier, and Practical Cryptography by Ferguson & Schneier to make a more holistic approach to security encompassing the entire system, not just using the latest (coolest) encryption techniques. Most real-life systems are broken by going around or ignoring the encrpytion.

    Another classic is

    TCP/IP Illustrated by the late Richard Stevens
    Most people need/read only Volume I: The Protocols, but there is also Volume II: The Implementation which is wonderful albeit with a smaller following, though Volume III which is considered a big disappointment to many (I've never read the vol 3) isn't worry buying unless you're specifically interested in its contents.

    The only serious alternative to TCP/IP Illustrated is Douglas Comer's series Internetworking with TCP/IP which is the series I learnt about TCP/IP programming with. Still highly recommended.

    For Software development, The Mythical Man-Month by computing pioneer Frederick Brooks should be required reading, and Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister should be handed to every new IT/IM or software manager with their promotion or hiring (if they haven't read it already). Computing would suck so much less if we all held ourselves accounting to the basic ideas in these two books.

    For historic, 3 books + bonus item that would have to be included are:

    Algorithms + Data Structures = Programs by Niklaus Wirth

    Cybernetics: Or the Control and Communication in the Animal and the Machine in 1948 by Norbert Wiener

    Computing Machinery and Intelligence, by Alan Turing and published in 1950 in Mind

    Computer Lib/Dream Machines by Ted Nelson in 1974, is most often pointed to as the "birth" of hypermedia.

    The January 1975 issue of Popular Electronics, which featured the Altair 8800 on its cover.

  47. Re:TCP/IP Illustrated, Vol 1 by W. Richard Stevens by Fulcrum+of+Evil · · Score: 2, Insightful

    Tack on 'The mythical Man Month' - it should be required reading for anyone planning to make software for money.

    --
    "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  48. Software Engineering: A Practictioner's Approach by Amigan · · Score: 2, Interesting

    Written by Roger Pressman and has gone through 6 editions (that I'm aware of). It was first introduced in 1982, and I used it as a Senior during my undergrad - I have since used it repeatedly over the years as I've taught software engineering classes. 25yrs after graduating it is one of the books that I keep in my office.

    --
    "Software is the difference between hardware and reality"
  49. If you want to go by the list by Sits · · Score: 2, Informative

    You might want to take a look at Top 100 Best Software Engineering Books, Ever (if you want to go by what is popular) or The Best Programming Books (which seems to be more diverse).

    Personally I really liked the Mythical Man Month (one of the few library books I borrowed as an undergraduate and I've recently reread it and still like it) and Peopleware (very funny) but both of these are more about software engineering (and how it goes wrong) rather than practical hands on programming. However they are both short and entertaining. Code Complete is very authoritative (but big). These aren't books you are going to gravitate towards if you are just starting to program for the first time though so I'll just mention I found Java in Nutshell useful (but others are not so keen on it).

    Your borrowers are probably going to want those "Learn in 24 hours..." or "...for Dummies" though. It would be nice to know what the most loaned books turned out to be in year's time (might make a good Slashdot article : )