Hacker News new | comments | show | ask | jobs | submit login
Graph of SICP chapters (ocks.org)
55 points by anodes on Nov 30, 2014 | hide | past | web | favorite | 11 comments

As an outsider, I am trying to learn the basics of computer science. I was recommended this book along with the ones listed below. Do I need to study them all or can I do one r two of them and move on?

Introduction to the Theory of Computation by Sipser.

Programming Language Pragmatics by Michael L Scott.

Compilers: Principles, Techniques, and Tools by Aho et al.

Concepts, Techniques, and Models of Computer Programming by Van Roy.

Intro to Computing Systems by Yale Patt & Sanjay Patel.

Computer Systems: A Programmer's Perspective by Randal Bryant & David O'Hallaron.

How much programming do you do? If you're a non-programmer who wants to write software, there are probably better things to do than read a bunch of CS textbooks.

I've been trying to understand programming for a while now. I know some Python and Clojure, but don't consider that programming knowledge mostly because its just syntax and syntax is just a triviality. So, instead I am trying to gain a better proficiency through programming close to hardware because I heard there are programs(for example, Assembly) that are in one-to-one correspondence with the underlying hardware they are written for. I've been recommended the books(and many more), but I am not sure how to group them thematically. I am not scared of math parts - just there's an huge volume of text to digest for just an intro to "programming done right". I am not in a rush to learn JAVA and go dev somewhere. Thanks.

The books you've listed are all excellent, but are not direct paths to 'better proficiency through programming close to the hardware'. I believe that SICP might be your best bet from among the books you've listed. Work through it first, then decide where to go next. A caveat: SICP spends much of its time approaching computation from a hardware-independent perspective (expressed in the old quip 'Computer Science is no more about computers than astronomy is about telescopes'.) Don Knuth takes almost the opposite approach in 'The Art of Computer Programming', defining a machine language (for an imaginary machine) to be clear about implementation details and time-space tradeoffs. Both perspectives dig much deeper than 'just syntax'.

> just there's an huge volume of text

Think of how CS students are going to approach these. They'll watch lectures, skim the text, and do exercises. Few students would sit down and read these like a fiction novel, and if they do, they follow it with exercises because reading retention was low. So I'd do some google searches with "site:.edu" and find powerpoints and homeworks to follow from courses that use these books.

Add in a algorithms text book (and perhaps a lecture series) and an OS book. And you would probably have something more comprehensive then a lot of undergrad CS degrees.

You mentioned and more about the books recommended to you, what are some of the others?

I am not sure I understand this graph. When is there in an edge between two chapters? What is the "weight" of an edge?

This is essentially a bag-of-words comparisons. Edges are computed with tf-idf similarity.

It would be great if anyone has a suggestion on which text to perform this graph analysis on. Ideally the ones with succinct text like SICP, licensed openly, and with less dependency on visual diagrams. This is so that the model is closer to the actual "abstract-syntax-tree" structure of the book.

This is really cool, I recently finished chapter 1 and this really puts in perspective how much there is left to explore.

As you may discover from the graph, section 4.1, where the "Maxwell equations of software" resides in, is among the nodes with the most number of connections with other nodes.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact