Live data from Hacker News

Paul Graham on SICP (2000)

amazon.com

131–140 of 141 posts

Re: Paul Graham on SICP (2000)

#131

Earlier quoted context omitted.

i you squint you'll see CLOS

What is CLOS? Is this an acronym? Google is failing me here.

> Google is failing me here.

Really? Indeed, if you search for just "CLOS" Google doesn't find it. Duckduckgo on the other hand, gives it in the 3rd link.

Re: Paul Graham on SICP (2000)

#132
post #47

Earlier quoted context omitted.

You can write lisp-y python quite easily. It's not good, pythonic or maintainable, but for learning purposes it is acceptable, especially on the 2.x series. Just start with list comprehensions. Lua and Ruby I fail to see how they are in any way lisp-y.

there's also "hy", which gives you lisp syntax and access to the python libraries. https://github.com/hylang/hy

I got the impression that Hy is stagnating. They removed 'let' in the recent releases (it's hard to imagine Lisp without 'let'). Also there is no support for async, which is pretty important for modern Python IMO.

Re: Paul Graham on SICP (2000)

#133

Earlier quoted context omitted.

What is CLOS? Is this an acronym? Google is failing me here.

> Google is failing me here. Really? Indeed, if you search for just "CLOS" Google doesn't find it. Duckduckgo on the other hand, gives it in the 3rd link.

I wish there was a way to compare Google searches of today with Google searches of years ago, I feel like they've been declining in quality and relevance even as I'm sure they've improved their algorithms and even with me letting them know more about me via remaining signed in when I search. Using the "date range" tool to set a maximum date on search results (in this case I just randomly picked "2006", which Google interprets as the end of that year) I get two CLOS results as the first two items and a third one a bit further down, so that method helps me sometimes, but it's not the exact comparison I want...

Re: Paul Graham on SICP (2000)

#134
post #105
post #103

Earlier quoted context omitted.

I worked through the book in my spare time some years ago, and yes it probably took me hundreds of hours. I don't know the exact amount of time, but it was definitely in that range. I did not have any CS or math background, but a lot of practical programming experience. I was absolutely worth it. I did not watch any of the lectures, just worked through the book, so I can't say if watching the lectures will make it ea…

Thanks, good to know how much time I need to apportion. I'm trying to find a way that I can fit it around work/family schedules and not let my concentration go too stale. I'm thinking of trying for an hour a day, but that feels so prescriptive...

This might be considered heresy but the first two chapters can go very quickly, and taken alone can be very impacting, so I'd recommend just them as an initial goal. Once you accomplish it (sooner than you might think!) you ought to use the momentum to continue on, just know it's a steep book for the last few chapters...

A quote I keep in mind: "The reader who has read the book but cannot do the exercises has learned nothing." -- J.J. Sakurai

I'm not quite as strict as Sakurai suggests -- sometimes it's helpful for me to plow ahead anyway and try to come back to the exercises later... Sometimes it's never, but if I do some exercises, integrate some of the non-exercises with other bits of knowledge, I still feel like I've learned something rather than nothing. "Gotten familiar with" might be the best phrase, and there's a nice technique Mike Acton made an infographic of for getting familiar with a stack of books on short notice: https://itsyourturnblog.com/you-cant-cheat-at-learning-quick...

Re: Paul Graham on SICP (2000)

#135
post #123

Earlier quoted context omitted.

But wasn't it used for introductory CS courses? Perhaps someone can chime in about how it worked.

It was used for introductory courses at MIT, but no longer. If we look st those who took it as a course, we have to consider that they are already taking a CS course, and at MIT, no less. Once again, correlation? Or causation?

I know correlation is not causation but come on... if a set of students follows as CS introductory course and ends up learning some CS during the span of course, it is overreaching to assume the CS course had something to do with it.

Re: Paul Graham on SICP (2000)

#136
post #123

Earlier quoted context omitted.

The cliché observation is that "correlation does not equal causation." It's interesting to think about that: Given that you have to choose to read SICP, and chosen to work your way through it, including choosing to use Scheme instead of whatever is popular today and so forth, and given that SICP is unlikely to get you a job ("Oh, you read SICP? You're hired, you awesome hacker!"), is it possible that you already have…

But wasn't it used for introductory CS courses? Perhaps someone can chime in about how it worked.

When the book was written it was not unusual for new students to arrive at MIT without any computer experience. So that book was often their very first exposure to computer programming.

Re: Paul Graham on SICP (2000)

#137
post #87

Earlier quoted context omitted.

CLOS (as well as a lot of other things in Common Lisp, like the error system) depends on CLOS being present. This is why writing a competent CLOS compiler that can bootstrap itself is very difficult. But it's so worth it.

How so? The canonical implementation (PCL) was written in pre-ANSI CL without CLOS. There's a number of things that are difficult there, but can't put my finger on any related to bootstrapping.

PCL is a perfect example of what I'm talking about. Search for the string "braid" in the sources.

Re: Paul Graham on SICP (2000)

#138
post #40

Earlier quoted context omitted.

Note that Norvig's and Graham's reviews are 12 days apart in the year 2000. Also, (2000) should be added to the title.

I've always found this especially amusing - there are so many different ways you can interpret this.

And just to stay meta, here's Peter Norvig's review on pg's "On Lisp" [1].

[1] https://www.amazon.com/gp/review/RRFAH7G81ASUL?ref=pf_vv_at_...

Re: Paul Graham on SICP (2000)

#139
post #106

Earlier quoted context omitted.

Even at MIT a lot of people struggled with it because they threw so much at you so quickly, and it's since been replaced with a Python-based intro course.

It is definitely challenging and I'm not sure it is appropriate for beginners unless they are geniuses. But the challenging part is not learning Scheme (which is even simpler than Python if not quite as nice to read), the challenge is it works through a lot of computational topics (implementing an interpreter, lazy evaluation, an object system, a logic language, etc.) in a quite compact format.

MIT EECS freshmen aren't exactly beginners.

It's not the right book for 19-year-olds who want to learn programming. It's the book for 19-year-olds who have been programming since primary school. A complete beginner will struggle terribly, and s/he'd still miss most of what the book is really trying to teach.

Lately, MIT has been investing heavily into obtaining a more cosmopolitan image, so ditching a course aims to scratch the itch of hardcore nerds -- while disappointing -- wasn't unexpected, I guess.

Re: Paul Graham on SICP (2000)

#140

Earlier quoted context omitted.

there's also "hy", which gives you lisp syntax and access to the python libraries. https://github.com/hylang/hy

I got the impression that Hy is stagnating. They removed 'let' in the recent releases (it's hard to imagine Lisp without 'let'). Also there is no support for async, which is pretty important for modern Python IMO.

Oh my, they removed 'cons' :(

    hy 0.11.1 using CPython(default) 3.5.3 on Linux
    => (cons 1 '(2 3))
    (1 2 3)


    hy 0.15.0 using CPython(default) 2.7.13 on Linux
    => (cons 1 '(2 3))
    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/hy/importer.py", line 199, in hy_eval
        return eval(ast_compile(expr, "", "eval"), namespace)
      File "", line 1, in 
    NameError: name 'cons' is not defined
Post reply on HN