4 ms·
I always see lists of like 100 MUST HAVE books for Computer Science. Is there like a top 5 must have books for Computer Science?
by october8140 9mo ago
I always see lists of like 100 MUST HAVE books for Computer Science. Is there like a top 5 must have books for Computer Science?
- throw-qqqqq 9mo agoIt’s very dependent on the type of work you end up doing IMO. Sort of like “which programming language should I learn?”. Not a great answer, I know..
- bmez 9mo agoGiven unlimited time, read all of them, learn all the languages. It will all help make you a better programmer in your preferred language. With limited time (as a normal being), start with the top 100 books. Any of them. The next will be simpler than the first... I have an M.Sc. in Comp.Sci. Flicking through books like these, all the chapter titles resonate with courses, exams, and problems we solved. It also makes me realise I have probably forgotten more than I like to think. On the other hand, bashing my head against graph theory and logic, has made me a much better programmer. Similarly, the hours spent in Van Roy and Haridi's fairly abstract and technically language-agnostic "Concepts, Techniques and Models of Computer Programming" made me primed to learn a lot of languages fast - because I had the primitives mastered.
- pipes 9mo agoNot sure what your goal is, but If like me you don't have a computer science degree, and want to fill some gaps, this site is fantastic. https://teachyourselfcs.com/ https://teachyourselfcs.com/ See the "still too much section". If you want the top two books they recommend if you don't have time for the rest.
- Jhsto 9mo agoI got no particular book recommendation, but this book seems more about the numbers than relations -- maybe my PDF search is broken, but both 'type theory' and 'category theory' return 0 results. I would recommend to also look into those if you are interested in mathematics of computer science.
- anthk 9mo agoConcrete Abstraction and next, SICP, both for Scheme. If you do these, you already understood most of the grounds of CS; learning another language will be a piece of cake.
- mgaunard 9mo agoIt's more useful to practice programming through projects. Then once you feel you're missing the knowledge for a particular problem you're trying to solve, read up about that one.
- criddell 9mo agoThats a little like saying if you want to learn mechanical engineering, fix things around your home and then do research when you get stumped. Building a bunch of software projects probably isn’t a very efficient way of learning computer science. You might figure out things like big-O or A* on your own, but a more academic approach is going to take you further, faster.
- mgaunard 9mo agoIt's well established that practical project work is what works best at producing tangible results, and most institutions that aim to produce the best programmers focus on that. I can understand this is not the approach preferred by academic types which is a strong community on hackernews. Most people are more motivated to understand the theory because it helps them solve a practical problem, rather than theory for the sake of theory.
- criddell 9mo agoI thought this thread was about computer science. Working on a programming project is related to computer science in the same way that welding together a shelf is related to mechanical engineering.
- mgaunard 9mo agoAn elitist view disconnected from reality. Even something like game theory was only developed and earned nobel prizes because of its applications to making money in finance.
- ghaff 9mo agoBeing "handy" around the house (or even more advanced tinkering) and a mechanical engineering degree--maybe especially from a good school--are absolutely not the same thing.
- maqp 9mo agoTop 5 will never cover the field. Here's my top 10 * Brookshear and Brylow - Computer Science - An Overview * Forta - Teach yourself SQL in 10 minutes * Stallings - Computer Organization and Architecture * Stallings - Operating Systems - Internals and Design Principles * CLRS * Kurose, Ross - Computer Networking - A Top Down Approach * Sipser - Introduction to The Theory of Computation * Stallings, Brown - Computer Security - Principles and Practice * Aumasson - Serious Cryptography * Russell, Norvig - Artificial Intelligence - A Modern Approach And even this fails to cover programming languages. Python is the lingua franca of the field. Most past recommended books are getting outdated, but perhaps Matthes' Python Crash Course 3rd edition.
- wlruys 9mo agoJust to add to this, I think John Levine's Linkers and Loaders is also a great reference.
- commandlinefan 9mo ago> * Kurose, Ross - Computer Networking - A Top Down Approach Over TCP/IP Illustrated?
- rchiang 9mo agoI'd make the argument that TCP/IP Illustrated Volume 1 covers the details of TCP/IP in a very "packet and fields" oriented way. Volume 2 goes into a lot of the "data structures and implementation" way. That makes for a very good supplemental reference, but makes for a less than ideal introductory textbook on the subject of computer networking. Kurose's book really does take the top-down approach from high level networking concepts through the application layer to the transport layer and downward. It provides just enough of the necessary details (here's a datagram with fields A and B) over a comprehensive list of all the details (here's every field, every field size, and a list of every field option).
- rchiang 9mo agoI agree that five books won't ever cover every discipline withing Computer Science. Just providing an introductory book, a university-level textbook, and an expert/graduate-level reference for each discipline turns into a long list. See if this blog post helps out with sorting through the various CS subjects: https://tolerablecoder.blogspot.com/2022/03/a-short-list-of-computer-science.html https://tolerablecoder.blogspot.com/2022/03/a-short-list-of-...
- segmondy 9mo agono, there's no such agreeable thing. everyone has their own idea. but if i was to recommend such today, i would say, go on a self discovery method and find your idea books for algorithms/algorithm analysis & data structure, automata theory, programming languages, operating systems & machine learning.
- louthy 9mo agoTAOCP