Settings

Theme

The Computer Science Book (2020)

thecomputersciencebook.com

185 points by r4victor · 24 comments

Reader

9 threads
agomez314

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

    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

    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

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

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

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

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

    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

      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

This looks great and covers a lot of interesting areas.

Frummy

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

gnull

Good to see that it starts with Computability and Complexity.

shaftoe444

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

  • r4victorOP

    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