Hacker News new | ask | show | jobs
by Confusion 5829 days ago
However, do skip some of the more difficult/theoretical exercises, if you feel they are over your head. As usual, doing half of the exercises probably provides 80% of the benefits. As an example of a question you may want to skip: the proof question 1.13 asks you to give requires some mathematical background knowledge concerning how to go about proving something. Don't let those questions demotivate you if you lack that knowledge.
2 comments

Strongly disagree. You should be able to do exercise 1.13. Knowing how to prove something is very valuable. I remember spending several hours trying to do exercise 1.13 and when I finally got it I had learned a great deal about proving, induction (altough I didn't know its name) and manipulation of exponentials.

The exercises that are hard for you are exactly the exercises that you'll learn a lot from.

Hm, the way I read it, "Confusion" wasn't suggesting to skip the exercise because it's hard, but because it assumes specific mathematical knowledge which, strictly speaking, is unnecessary to master SICP concepts.

As you point out, it may still be useful to have that knowledge, and if you have the time and the mathematically-inclined brains, it may be a skill worth learning... but I feel that it shouldn't be required to successfully learn the concepts in SICP. SICP is hard enough as it is, no need to get sidetracked if you don't absolutely have to.

(I realize this comment may bring all the "programming is math" fans out of the woodwork, but so be it. :-)

Learning what a proof is is valuable for programming too. Many people don't see a difference between a proof and an argument. It is valuable to learn the difference between "This is why this program is correct" and "Here are some reasons why this program is probably correct".
It's been 10 years, but I do distinctly remember an SICP exercise which stated that a proper solution was worthy of a phd thesis. So I'm going to agree. :-)