Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The first three chapters are an alternate-history computer science 101. There's nothing in there you haven't seen before, but reading what you might have thought were modern ideas in such an elegant presentation from the 80s/90s is a trip. It can get tedious though.

Chapter 4, on interpreters and alternative languages, is where in many readers' estimation the real payoff lies. Scheme itself is constructed in a very elegant way from few primitives. My Programming Languages course did an ML interpreter in Standard ML, but I found SICP's scheme interpreter more satisfying and more enlightening - especially when you see how an impossibly small "toy" implementation easily sustains all the modern conveniences, complexities, and artifice described in the previous three chapters. Then the next two sections were totally new to me: I had heard passing mention of logic programming and nondeterministic programming on HN, but never seen them in college or in practice. It's really impressive how elegant certain solutions can be under those paradigms.

Leetcode is an entirely different track and aesthetic on computer science, obsessed with doing things optimally, efficiently. SICP is the polar opposite of that: it tries to make things nice, organized, clean, elegant, intuitive. Even trivial optimizations are left on the floor, like I'm at the end of chapter 4 and we've been using linked lists in place of maps and vectors the whole time.

Depending on what you're doing, you need some of both. But some programmers are temperamentally more interested in the "ugly but optimal" track, and enjoy SICP less.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: