Settings

Theme

The Computer Science Book (2020)

thecomputersciencebook.com

185 points by r4victor 3 years ago · 24 comments

Reader

agomez314 3 years ago

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!

[1] https://www.maa.org/external_archive/devlin/LockhartsLament....

  • bambataa 3 years ago

    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!

  • 082349872349872 3 years ago

    compare https://news.ycombinator.com/item?id=34296702

    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)?

    lagniappe: http://www.willamette.edu/~fruehr/haskell/evolution.html

    [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)?]

bambataa 3 years ago

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”.

Happy to answer any questions.

tinytorus 3 years ago

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).

harshalaxman 3 years ago

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

Alifatisk 3 years ago

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?

  • quibono 3 years ago

    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.

    • Alifatisk 3 years ago

      Thank you for your input, I am planning on getting an engineering degree in computer technology or electrical engineering.

      I've heard people saying that comp-sci is oversaturated and other stuff, but I don't know.

jam3sn 3 years ago

This looks great and covers a lot of interesting areas.

Frummy 3 years ago

I skimmed it all and found it very interesting and will probably read it multiple times.

gnull 3 years ago

Good to see that it starts with Computability and Complexity.

shaftoe444 3 years ago

This looks really good. The further reading sections in themselves contain some gold.

  • r4victorOP 3 years ago

    Indeed! I found this book completely accidentally via google and it seems to be largely unknown. Let's fix it!

    It's really hard to attack such a vast subject and produce something valuable. The author did a great job.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection