Live data from Hacker News

Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

news.ycombinator.com

81–90 of 103 posts

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#81
post #27

SICP is a great and mind-expanding book; but I came to it fairly late, at a time when (I think, I hope) I was already decent at "elegant" programming, so it's hard for me to say if it'd help you program elegantly. Probably, but I don't think that's one of its chief concerns. On the other hand - HtDP is explicitly focused on teaching you patterns of thought that will help you create well-structured programs. It's also…

Would you recommend HtDP to a non-beginner? Like SICP, it seems to cover fairly basic concepts and aimed at first-year CS students.

I always feel like I'm missing out on some sort of magical programming secrets that will expand my mind like a spiritual retreat when I'm in these threads. But it's just CS 101 except you use Lisp? I don't get it.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#82
post #4

The concepts in SICP are timeless. There's nothing to be lost going through that book. There are video lectures you can use to accompany the book: https://youtube.com/playlist?list=PLE18841CABEA24090 Also, I highly recommend the courses How to Code: Simple Data amd How to Code: Complex Data on edX that are based on HtDP.

This.

That was my journey as a self-taught programmer who at one point realized had to learn the timeless foundations.

And then MIT's 6.005 [1], where you will apply all this with a realistic language (Java, although the concepts carry to any language), and learn how to design, code and test programs that "have no bugs, are easy to understand and ready for change".

And also learn a bit about algorithms, I don't think that one can design and understand properly without. And what is O(2^n) today will still be that in 100 years. MIT's 6.006 is amazing, both professor and TA [2].

I've seen Knuth's TAOCP recommended around here. Don't even consider that, do a course like 6.006 first, the Everest shouldn't be the first mountain you climb. Likewise favour HtDP over SICP at first, I've been there.

If after all this you are still interested in LLMs, I recommend EdX's "Large Language Models: Application through Production" [3]

[1] https://ocw.mit.edu/courses/6-005-software-construction-spri...

[2] https://ocw.mit.edu/courses/6-006-introduction-to-algorithms...

[3] https://www.edx.org/course/large-language-models-application...

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#84
post #22

SICP gets challenging in the very first chapter. You should aim to do about 1/3rd of the exercises, knowing that you can come back and do more later. The first chapter will certainly improve your ability to reason about recursive code. If you lose motivation later in the book (like I did), you will still have gained something.

This. I wish I learned it earlier in my life. Before I realized what you said, I procrastinated on so many books and never started many I wanted to read. After I realized this, I finished way more books, and learned many new things even when I didn't finish books. You don't need to finish books to learn new things that make you better. Even you read four chapters of a book, you are still those four chapters wiser tha…

I agree wholeheartedly. Admittedly I am a bit compulsive about buying books. It's mostly focused on history and computer science. But once I realized the goal was not to read as many books as possible but to read as much of books as possible (especially compared to other sources like random blogs/news), a big weight lifted from my shoulders. I no longer feel bad about having many books I haven't/won't ever finish. But I have many sources on topics that interest me, and physical books are random access. I can always check the index or the chapter list and just read a bit on some topic that comes to mind. Invariably I end up expanding my world view a little bit.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#85

A great book by one of the auhors of HtDP is DCIC and it uses a programmimg language called Pyret and chapter 3 covers a transition from pyret to python. https://dcic-world.org/2023-02-21/index.html Do you have any examples you can share of GPT4 being degraded?

re: GPT4 degrading --

From this recent study: https://arxiv.org/pdf/2307.09009.pdf

> For example, GPT-4 (March 2023) was very good at identifying prime numbers (accuracy 97.6%) but GPT-4 (June 2023) was very poor on these same questions (accuracy 2.4%).

There is more in the study but I just grabbed a short snippet as an example.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#86

Since, astonishingly, neither full title is mentioned in the post or the comments: SICP = Structure and Interpretation of Computer Programs: https://mitp-content-server.mit.edu/books/content/sectbyfn/b... HtDP = How to Design Programs: https://htdp.org/ Sometimes I think gratuitous use of acronyms (initialisms for the pedants) has been the biggest impediment to learning throughout my career.

Some things just become so well-known and ingrained in the culture (in certain circles) that writing them out fully feels excessively long, especially when mentioned several times in a conversation. Most software engineers do not expand abbreviations like RAM or GPU or RDBMS.

OTOH it's really important to spell them out at a right time, to help people not yet in the know understand them. So thank you!

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#87
post #7

SICP is an amazing book that will make you a better programmer, but might not help you with the task of writing better professional Python programs. If you aspire to understand computing systems from first-principles, there's no better resource that SICP. I've read it multiple times and I learn something new each time. Do the exercises too!

Somebody said: "I studied Lisp and Haskell to write better Python and Javascript"; I find it extremely applicable to my daily practice.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#88

Since, astonishingly, neither full title is mentioned in the post or the comments: SICP = Structure and Interpretation of Computer Programs: https://mitp-content-server.mit.edu/books/content/sectbyfn/b... HtDP = How to Design Programs: https://htdp.org/ Sometimes I think gratuitous use of acronyms (initialisms for the pedants) has been the biggest impediment to learning throughout my career.

At least it's not as annoying as military fans, who will write whole sentences of acronyms and euphemisms, glued with the minimum of words, as if it was some secret war transmission. I think IT reached bottom when we started using numeronyms like L10n (localization) or K8s (Kubernetes).

> I think IT reached bottom when we started using numeronyms like L10n (localization) or K8s (Kubernetes).

I agree. That practice is the worst.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#89
post #27

SICP is a great and mind-expanding book; but I came to it fairly late, at a time when (I think, I hope) I was already decent at "elegant" programming, so it's hard for me to say if it'd help you program elegantly. Probably, but I don't think that's one of its chief concerns. On the other hand - HtDP is explicitly focused on teaching you patterns of thought that will help you create well-structured programs. It's also…

Would you recommend HtDP to a non-beginner? Like SICP, it seems to cover fairly basic concepts and aimed at first-year CS students. I always feel like I'm missing out on some sort of magical programming secrets that will expand my mind like a spiritual retreat when I'm in these threads. But it's just CS 101 except you use Lisp? I don't get it.

HtDP isn't really mind-blowing the same way SICP can be. It basically just tries to give you a mental framework and tools for breaking problems down into simple, composable, testable pieces - in terms of the work you're doing it's CS 101, but it's a particularly good implementation of CS 101. There's "senior" engineers at my company that I think would benefit from reading and absorbing HtDP. But, if I'm being honest, yes, an experienced developer would likely find it tedious.

SICP's big mind-expanding thing is that it teaches CS 101 through the process of building, from within a computational system, an entirely new computational system - various kinds of programming languages and later even a machine and compiler. In this sense it kind of peels away a lot of the magic of how computers and programming languages work. For lots of CS students - and even professionals - who've never really thought about what makes their Python interpreter tick, that's a big discovery. It's also a real pedagogical feat.

Post reply on HN