Live data from Hacker News

SICP: The only computer science book worth reading twice? (2010)

simondobson.org

51–60 of 189 posts

Re: SICP: The only computer science book worth reading twice? (2010)

#52
I took cs61a at Berkeley as my very first computer science class I couldn't program I never tried to so scheme was my first language.

My ta told me that everybody should take the class twice when you first come in and when you're graduating.

When you first take it especially if you know other languages like C at the time you don't get the full depth of the problems you're given a great introduction and you think you understand everything but you don't realize the depth of complexity. Message passing the metacircular evaluator, continuations as the basis of all flow control, etc

You think they are neat tricks that you understand the curriculum because you can do the homework you don't understand how those neat tricks are really the basis of everything else you'll do.

When you're graduating you've had time to go through all your classes you realize just how foundation was principles are and you get so much more out of the book.

Well I didn't take the class a second time I need help grade and TA for a couple semesters.

I work as a quant developer and in trading now and even though my field has nothing to do with that I still think it's the basis of me as a developer.

Re: SICP: The only computer science book worth reading twice? (2010)

#53
post #27

Earlier quoted context omitted.

I think in the context of the book 'procedural epistemology' encompasses all programming, not just what you'd call procedural programming.

Hmm, I don’t think so. Functional programming is definitely based on the “declarative point of view taken by classical mathematical subjects”.

I disagree since the book is using a functional programming language to advance the idea that CS is about procedural epistemology as opposed to the declarative stance of maths.

The idea that a 'procedural programming paradigm' exists in contrast with a 'functional programming paradigm' is blogspeak imho.

Re: SICP: The only computer science book worth reading twice? (2010)

#54
post #37

Curious to hear folks opinion on the newer Software Design for Flexibility: How to Avoid Programming Yourself into a Corner ( https://www.amazon.com/gp/aw/d/0262045494 )?

It’s a much, much denser successor to sicp. I hadn’t succeeded in self-studying with it despite strong lisp/scheme chops and strong affinity for sicp.

Re: SICP: The only computer science book worth reading twice? (2010)

#55

I took cs61a at Berkeley as my very first computer science class I couldn't program I never tried to so scheme was my first language. My ta told me that everybody should take the class twice when you first come in and when you're graduating. When you first take it especially if you know other languages like C at the time you don't get the full depth of the problems you're given a great introduction and you think you…

My same experience. For much of the rest of the cs curriculum I felt like we had already to some extent covered the main ideas in 61a with sicp.

Re: SICP: The only computer science book worth reading twice? (2010)

#56

It’s interesting, SICP and other many other “classic” texts talk about designing programs, but these days I think the much more important skill is designing systems. I don’t know if distributed systems is consider part of “Computer Science” but it is a much more common problem that I see needs to be solved. I try to write systems in the simplest way possible and then use observability tools to figure out where the de…

Well CS and software dev in trenches moved a bit.

There are still jobs where people write frameworks, database engines or version control tools. Those jobs require heavy CS and algorithms, data structures day to day. But there are less of those jobs nowadays as no one is implementing db engine for their app they just use Postgres.

Other jobs that is vast majority is dealing with implementing business logic. Using database with understanding how it works in details is of course going to produce better outcomes. Yet one still can produce great amount of working software without knowing how indexes are stored on disk.

Also a lot of CS graduates fell into a trap where they think their job is to write a framework - where in reality they should just use frameworks and implement business logic- while using CS background to fully understand frameworks already existing.

Re: SICP: The only computer science book worth reading twice? (2010)

#57
post #17

I don’t quite get the cult status of SICP. I read it and it’s a fine beginner programming book, but nothing more.

I don’t understand this comment. If you master the material you know more than 90% of engineers in the field.

> If you master the material you know more than 90% of engineers in the field.

Telling someone that he/she is smarter than 90% of the people is not a praise. :-)

Re: SICP: The only computer science book worth reading twice? (2010)

#58

Earlier quoted context omitted.

I don’t understand this comment. If you master the material you know more than 90% of engineers in the field.

> If you master the material you know more than 90% of engineers in the field. Telling someone that he/she is smarter than 90% of the people is not a praise. :-)

amen… just look at 90% of people at the DMV :-)

Re: SICP: The only computer science book worth reading twice? (2010)

#59
My favourite part of SICP and something that has stuck with me for years is the idea of "wishful programming". That is where you build something top-down by simply wishing you had the lower-level routines. Then, of course, you actually go and build those lower-level routines until you reach the bottom. I find this way of thinking works really well with test-driven development. Write a test against functionality you wish you had, then go and fulfill that wish. Most developers seem to build stuff bottom-up and then end up with something that isn't really what anyone wished for.

Re: SICP: The only computer science book worth reading twice? (2010)

#60
post #56

It’s interesting, SICP and other many other “classic” texts talk about designing programs, but these days I think the much more important skill is designing systems. I don’t know if distributed systems is consider part of “Computer Science” but it is a much more common problem that I see needs to be solved. I try to write systems in the simplest way possible and then use observability tools to figure out where the de…

Well CS and software dev in trenches moved a bit. There are still jobs where people write frameworks, database engines or version control tools. Those jobs require heavy CS and algorithms, data structures day to day. But there are less of those jobs nowadays as no one is implementing db engine for their app they just use Postgres. Other jobs that is vast majority is dealing with implementing business logic. Using dat…

> while using CS background to fully understand frameworks already existing.

Most frameworks today are so complicated that you typically cannot understand them fully, and even understanding them somewhat partially is more than a full-time job.

Post reply on HN