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.
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.<p>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.<p>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.
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.
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.<p>Edited for future reference:<p>HtDP: How to Design Programs at <a href="http://www.htdp.org" rel="nofollow">http://www.htdp.org</a>
SICP: Structure and Interpretation of Computer Programs at <a href="http://mitpress.mit.edu/sicp" rel="nofollow">http://mitpress.mit.edu/sicp</a>
CTM: Concepts, Techniques, and Models of Computer Programming at <a href="http://www.x-crew.com/crew/apollo/ProgrammingText.pdf" rel="nofollow">http://www.x-crew.com/crew/apollo/ProgrammingText.pdf</a>
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.<p>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.<p>----<p>[1] Though they weren't called bloggers at the time.