
Ask HN: Why is SICP generally preferred over HtDP? - cenazoic
Hi all,<p>New member, longtime lurker here.  As someone who knows almost nothing about programming, I've recently decided to rectify that by starting out with HtDP. I'm just curious why many people seem to recommend SICP over HtDP, not only for newbies, but in general.  The impression I've gotten from various sources is that HtDP is a better starting point. (Of course, this is probably relative to the viewer.)<p>Any comments on why you've chosen SICP over HtDP would be appreciated and enlightening.
======
ericlavigne
I have recommended SICP to friends that already have some programming
proficiency. I have recommended HtDP to friends that are just getting started
with programming.

HtDP is easier to study. It is also designed to be used with Dr. Scheme, which
is a good learning tool for beginners. I recommend reading HtDP first, and
SICP later.

Your choice of book, however, is much less important than the amount of time
that you spend studying and practicing. Choose whichever book you want, or
choose both and switch back and forth, or read HtDP first and SICP later. Just
get started and don't worry about if you made the perfect choice. Keep
studying and practicing. It is not easy, but you can do it if you spend enough
time trying.

------
cenazoic
Appreciate the feedback, guys. In particular, the progression of
HtDP->SICP->CTM by Kaizyn is helpful; I'd been wondering how these 'big 3'
stacked up in terms of difficulty.

Edited for future reference:

HtDP: How to Design Programs at <http://www.htdp.org> SICP: Structure and
Interpretation of Computer Programs at <http://mitpress.mit.edu/sicp> CTM:
Concepts, Techniques, and Models of Computer Programming at
<http://www.x-crew.com/crew/apollo/ProgrammingText.pdf>

------
Kaizyn
SICP and HtDP have different audiences. HtDP was designed for people who know
nothing about computer programming, particularly students who would not be
pursuing a degree in computer science. SICP was used in a first CS course.
Because they both use Scheme, they're complimentary. If you are starting out
trying programming for the first time, then HtDP will certainly be a better
choice. When you finish it, you should proceed to read SICP, followed by
Concepts, Techniques, and Models of Computer Programming.

------
mechanical_fish
HtDP appears to be eight years old, and SICP is 25 years old. Therefore, the
number of people who have been exposed to the one is likely to be several
times larger than the number exposed to the other. That may explain why one
seems to be recommended much more often than the other.

That certainly applies to me: I read SICP about ten years ago after MIT-
educated bloggers recommended it [1], but I was on vacation from the field
when HtDP was published and this is the first I've heard of it. Thanks for the
recommendation! Perhaps someday I will manage to read it and will then be in a
position to recommend it in the future.

\----

[1] Though they weren't called bloggers at the time.

