It's nice to see the author spent a great deal of time and effort to share with others his learnings. However it's important to note his intention at writing this book: "I’ve chosen to focus on topics and concepts that I’ve encountered in my programming career – things that I know are important." Thus it's not an overview of Computer Science per se (which in my opinion is a fuzzy subject without clear boundaries) but subjects the author frequently encountered and perhaps heard as important things in the field.
I would also caution in how the book presents its chosen subjects as "Computer Science." Like the adage goes, "Computer Science is not so much about computers like petri dishes are about biology, or telescopes are about astronomy." There's so much beauty and variety in the field that it's really hard to just pin down in a curriculum. See "A Mathematician's Lament" [1]
I also challenge the notion that some of these subjects logically proceed from the other (some, not all).
I've got no problem with anyone reading the book, they'll be certainly much more informed about the field of computers in general. I especially appreciated the Further Reading sections to let the reader expand his learning. Thanks for sharing this post!
At one point I had the idea to tag each section or paragraph with a topic ID and list the topic IDs directly referenced. Then you could build a graph with the referenced topics as edges. After refactoring it into a DAG, you could do a topological sort to get a linear sequence of topics And chop it into chapters.
I took that as an indication I was procrastinating, but I think it would be a fun way to structure a book!
Inspired by the title "Sketches of an Elephant", I wonder if practitioners might be interested in a CS book that would be the equivalent of Körner's "The Pleasures of Counting" ( https://books.google.ch/books?redir_esc=y&hl=de&id=wUdtVHBr-... ) which is structured more like a cookbook (inductive presentation) than a textbook (deductive presentation)?
[Edit: come to think of it, what is HN but an institution that throws up a transect of species which may be found within the general —open— interval (CS theory, MBA case studies)?]
Author here! Thank you to whoever posted this. My 2023 resolution was to market it better so this is a great help :).
The overall intent was to create a single, fairly concise volume sketching out the main areas of computer science so that developers from non-traditional backgrounds (boot camps etc) have at least some kind of map of the territory.
When I started working as a dev I really struggled with the idea that there were so many things that I should know about but I wasn’t even aware of until they blew up in my face in some way.
agomez314’s comment is very valid — my framing was “CS stuff that you will encounter as a developer”.
You're welcome! I'm collecting learning resources on tech topics at https://bestresourcestolearnx.com and I was looking for a book on CS like this one for a long time. Further readings are especially good – I'm going to steal some of your recommendations ;)
This book seems perfect for me. I have a CS bachelors but didn’t always do well in some classes. I’ve been thinking about doing teach yourself cs .com but this book seems better for me because it’s more shallow which means I can get a broad refresher of my degree in a few months instead of a year or two or three.
Like another commenter said, studied CS and didn't do well in every class, so excited to refresh my knowledge this year. Curious if anyone knows of a similar resource for cybersecurity (also a huge field, but ig looking for a broad overview of the landscape for a curious layperson).
I did a joint major in math and computer science for undergrad so I missed out on a lot of subjects like computer architecture, operating systems, and compilers.
This looks like the perfect depth for me to get up to speed at a relaxed pace over a few months: simpler than a textbook but more robust and instructive than blog posts, Wikipedia etc.
A few cents:
- not sure if it's already nestled in some chapters, but cryptography is the most important missing topic imo
- if there ends up being a print copy I would happily purchase it
- the name makes it hard to find: a google search for "computer science book" doesn't have a first page result
I don't have a computer science degree and probably won't get one but I would love to study it on my free time, which book or books would you all recommend that covers it well?
Computer Science is very broad so the answer will be different depending on what you'd like to focus on. Algorithms, data structures, systems, graphics, networking, more theoretical CS etc.
That said, for algorithms I could recommend CLRS, Dasgupta's Algorithms, Kleinberg's Algorithm Design.
For theoretical CS: Models Of Computation by J. Savage, Sipser's Introduction to the Theory of Computation.
For OS: Computer Systems A Programmer's Perspective by Bryant and O'Hallaron, Operating Systems - Three Easy Pieces by Arpaci-Dusseau.
I would also caution in how the book presents its chosen subjects as "Computer Science." Like the adage goes, "Computer Science is not so much about computers like petri dishes are about biology, or telescopes are about astronomy." There's so much beauty and variety in the field that it's really hard to just pin down in a curriculum. See "A Mathematician's Lament" [1]
I also challenge the notion that some of these subjects logically proceed from the other (some, not all).
I've got no problem with anyone reading the book, they'll be certainly much more informed about the field of computers in general. I especially appreciated the Further Reading sections to let the reader expand his learning. Thanks for sharing this post!
[1] https://www.maa.org/external_archive/devlin/LockhartsLament....