What are the best books for computer science undergraduates?

Question
Mudassir Ali 9 months 1 Answer 130 views

Answer ( 1 )

  1. Okay, this is a tough question. Especially considering there are a billion different directions that a Computer Science undergrad can move around in. Still, assuming we’re not going to talk about programming languages here (i.e excluding some absolute gems like Kernighan’s The C Programming Language, _Why’s Poignant guide to ruby, Crockford’s Javascript: The Best Parts, and many many other brilliant, but language specific books), this is a list I’d come up with:

    Compiler Design: Compilers: Principles, Techniques, and Tools (aka The Dragon Book) by Aho and Ullman
    Simply put, the best book out there for understanding what goes under the hood of a compiler.

    Computer Networks: Computer Networks by Andrew Tanenbaum
    Most of us just work at the application layer and *expect* any data we send across the network to just work. This book tells you how networks work, from bits passing through a cable all the way up to the WWW.

    Data Structures: Data Structures and Program Design in C by Robert L Kruse
    Again, you may want to find a book best suited to a language you’re working on, but my favorite Data Structures book is Kruse’s masterpiece

    Algorithms: Introduction to Algorithms by Thomas Cormen
    Another book which has a cult following for being the best resource for it’s topic. Data Structures and Algorithms go hand in hand, so make sure you know your data structures well a before and use the best one for the job.

    Operating Systems: Operating Systems Concepts by Silberschatz and Galvin
    A great book about the layer of abstraction which we all take for granted, the Operating Systems. A great resource for learning about processes, threads, locking, memory management etc.

    Language Concepts: An Introduction to Formal Languages and Automata by Peter Linz
    I know many people prefer Martin for this, but personally, Linz presents the subject in a much more interesting manner, making for an interesting take on the subject matter.

    Databases: Database Design for Mere Mortals by Michael Hernandez or Fundamentals of Database Systems by Elmasri and Navathe
    Both books teach you how to model data into databases. Yes, even NoSQL fanboys have a lot to learn from these books.

    Cryptography: An Introduction to Mathematical Cryptography by Jeffrey Hoffstein
    A brilliant book outlining the mathematical foundations of Cryptography. If you plan on entering the cryptography sphere, this is a gem for you

    If you’re ready for a challenge, read Donald Knuth’s The Art of Computer Programming. At least the first book of it. As Bill Gates himself said:

    If you think you’re a really good programmer. . . read [Knuth’s] Art of Computer Programming…. You should definitely send me a resume if you can read the whole thing.

    …. If you’re planning to get into Software Development, then other must read books include Clean Coder, Beautiful Code, The Pragmatic Programmer, The Mythical Man Month, The Design of Everyday Things etc.

Leave an answer