5 ms·
What would one recommend after HtDP (for someone who is a complete beginner)? As I've just about come to the end of the wonderful course on edx using this book
by l_l_bauers 8y ago
What would one recommend after HtDP (for someone who is a complete beginner)?
As I've just about come to the end of the wonderful course on edx using this book, I have been considering what I should use for the next step.
SICP seems to be a common recommendation however I've read a few comments on the difficulties with math and other things seeing as the book was originally written for MIT students.
Seeing as how highly regarded SICP is should I try it even though I consider myself to be weak at math?
- noelwelsh 8y agoHave you done both courses (https://www.edx.org/course/how-code-complex-data-ubcx-htc2x https://www.edx.org/course/how-code-complex-data-ubcx-htc2x is the second)? Your comment suggests you're only gone through one. Beyond the courses, it depends on your goals and interest. I would stick with functional programming (FP) to avoid confusion right now, rather than moving to an imperative language. I would first go through PLAI (see http://racket-lang.org/books.html http://racket-lang.org/books.html for a link and other Racket books) because I think understanding some programming language theory is super-useful. If you understand PLAI you're well ahead of most programmers IMO, and there is no need to read SICP. Learning a typed language such as Haskell, Scala, or O'Caml might be a useful next step. My own book, Creative Scala, is very much in the HtDP tradition (http://www.creativescala.org/ http://www.creativescala.org/) though it might be a bit basic at this point. Beyond that, whatever takes your fancy. A quick note on SICP: I don't believe in great books, more the right book at the right time. When I read SICP it was at exactly the right time for me, but I can see with retrospect the presentation is a bit old-fashioned in many ways. If you can work through PLAI you'll have learned most of the big lessons from SICP.
- deleted 8y ago[deleted]
- l_l_bauers 8y agoThank you for taking the time to write such a detailed response. I will absolutely be looking at your recommendation and hold off on SICP until it is the right time.
- atopos 8y agoI agree with Noel about PLAI. It might be an excellent follow-up. You could also look into the Racket Guide for transitioning to Racket. If you want to keep working on more complex interactive programs, instead, the lux module (https://docs.racket-lang.org/lux/index.html https://docs.racket-lang.org/lux/index.html) might be more efficient than 2htdp/universe. The latter is just amazing, but not intended to be used in contexts where performance may matter, at least in its current implementation.
- kod 8y agoYou might want to consider the draft of how to design Classes http://www.ccs.neu.edu/home/matthias/htdc.html http://www.ccs.neu.edu/home/matthias/htdc.html I haven't read it, so can't fully vouch for it. noelwelsh's suggestions (and book) are good as well, seconding those.
- l_l_bauers 8y agoOh, that looks great. Thanks for the recommendation. This seems like it would be a great continuation from HtDP to OOP languages.