Live data from Hacker News

How to Design Programs (2014)

htdp.org

51–60 of 141 posts

Re: How to Design Programs (2014)

#51

My undergrad intro class used this. At the time I found it patronizing and silly and artificially limiting, having coded before (the design recipe, the different "levels" of scheme). But I saw some of the wisdom in the approach when I later tutored the class. People would try to rush into coding problems without doing real analysis of what the cases would be, and had a foggy notion of different parts of program havin…

Matthias Felleisen was my professor at Rice 2 decades ago and I can still hear his distinctive voice clearly in my head! I too was resistant at first having done some programming in high school, but I wish I could go back and tell myself to pay attention more. Now I know Matthias was both wise and passionate and that combination doesn’t show up in every CS class, so to this day I’m nostalgic for the way he introduced…

I must be the black sheep of this thread, because I had a completely different experience. Professor Felleisen was never my professor directly, but he did oversee a few of the introductory courses I took, and was very present and had a heavy hand in many of the advanced courses. I also went to him for a number of office hour sessions.

He came off as incredibly self-absorbed and at times, borderline hostile. A sibling poster quoted him as saying "don't put your ego in your code", but in the 4+ years I dealt with him, he was nothing but ego.

I don't doubt his intelligence and obviously he's a very accomplished individual, but I just don't see what everyone else saw in him.

Re: How to Design Programs (2014)

#52
post #15

Oh wow. I love SICP. I still pick it up every now and then—just for the poetry. The intro CS course I had taught from SICP (but the course was python, & scheme, & sql). I wasn’t so interested. I didn’t read or see the book until months after the course ended, but by then I was hooked. I’ve never heard of HTDP, I can’t wait to read it.

When I was self-teaching, I found SICP a bit hard to really get into, luckily someone in comp.lang.lisp recommended HtDP, and I was golden, going to SICP after HtDP was a lot easier.

Re: How to Design Programs (2014)

#53

I don’t mean to crap on something that might be great but... has anyone tried to make this usable on a phone or for even moderately poor vision? I barely noticed there was actually content to be accessed at all, just a tiny “next” black on darkish grey link.

This is basically just Scribble (docs for Racket). If you have input, I'd venture to guess contributions are more than welcome!

https://docs.racket-lang.org/scribble/

Re: How to Design Programs (2014)

#54

I am self taught, I worked as a lawyer for six years and four of those were spent prepping for a career change - self-teaching comp sci and software dev in the evenings, then working as a volunteer a few years in. (I come from an engineering family and should have just done it from the start, but oh well.) I'm not sure if it's still on the platform, but about a year into my self studying I took a series of courses on…

I think these are the 2 courses OP is talking about:

https://www.edx.org/course/how-to-code-simple-data

https://www.edx.org/course/how-to-code-complex-data

Re: How to Design Programs (2014)

#55

Earlier quoted context omitted.

> To caricature SICP-style instruction a bit, I'm imagining someone learning that recursion is useful (Scheme peeps seem to love it) without also being taught it generally has poor performance characteristics. SICP teaches that recursion can have bad performance and how to use it without blowing the stack or wasting time with unnecessary computations. Scheme, the language, requires tail call elimination so compilers…

Yes, I agree, that is a caricature. More seriously, I think leaning on this language-specific feature in a book that's supposedly teaching "general programming 101," or whatever, is in bad taste. As it says: > One reason that the distinction between process and procedure may be confusing is that most implementations of common languages (including Ada, Pascal, and C) are designed in such a way that the interpretation…

Tail-call elimination / optimization is not a Scheme language-specific feature though.

Other popular languages have TCO to varying degrees, like C and C++ when using fairly standard compilers like MSVC, GCC, Clang, or ICC [1]. Destructors do get in the way though sometimes.

Java/JVM doesn't support TCO, but Kotlin and Clojure make do with special syntax to support tail-recursion (i.e. tailrec, recur).

Apparently JavaScriptCore supports TCO for JavaScript [2].

The book makes it sound like TCE is language-specific, but since that book was published, it's spread to many other mainstream languages too.

[1]: https://stackoverflow.com/questions/34125/which-if-any-c-com...

[2]: https://dev.to/rohit/demystifying-tail-call-optimization-5bf...

Re: How to Design Programs (2014)

#56

I am self taught, I worked as a lawyer for six years and four of those were spent prepping for a career change - self-teaching comp sci and software dev in the evenings, then working as a volunteer a few years in. (I come from an engineering family and should have just done it from the start, but oh well.) I'm not sure if it's still on the platform, but about a year into my self studying I took a series of courses on…

[deleted]

Re: How to Design Programs (2014)

#57

I am self taught, I worked as a lawyer for six years and four of those were spent prepping for a career change - self-teaching comp sci and software dev in the evenings, then working as a volunteer a few years in. (I come from an engineering family and should have just done it from the start, but oh well.) I'm not sure if it's still on the platform, but about a year into my self studying I took a series of courses on…

I see you as fortunate. I battled for years with frustration and loss of passion for coding until I ran into LISP/Scheme/Racket. I like how you put it that it "locked into my brain like it had always been there", I felt the same when I finally got to it. I also discovered this accidentally but much later in my career and only after I started lurking on HN few years ago. I am learning and toying frequently and am very…

What would be your advice to someone who's going through that frustration? I would love to get in touch to talk more about this. Thanks.

Re: How to Design Programs (2014)

#58
post #53

I don’t mean to crap on something that might be great but... has anyone tried to make this usable on a phone or for even moderately poor vision? I barely noticed there was actually content to be accessed at all, just a tiny “next” black on darkish grey link.

This is basically just Scribble (docs for Racket). If you have input, I'd venture to guess contributions are more than welcome! https://docs.racket-lang.org/scribble/

I didn’t know! My time is pretty full right now, but I’d like to get some time with Racket and I’ll take a look if I get some space for it.

Re: How to Design Programs (2014)

#59

I am self taught, I worked as a lawyer for six years and four of those were spent prepping for a career change - self-teaching comp sci and software dev in the evenings, then working as a volunteer a few years in. (I come from an engineering family and should have just done it from the start, but oh well.) I'm not sure if it's still on the platform, but about a year into my self studying I took a series of courses on…

I see you as fortunate. I battled for years with frustration and loss of passion for coding until I ran into LISP/Scheme/Racket. I like how you put it that it "locked into my brain like it had always been there", I felt the same when I finally got to it. I also discovered this accidentally but much later in my career and only after I started lurking on HN few years ago. I am learning and toying frequently and am very…

Do you remember which book that was? Sounds interesting.

Re: How to Design Programs (2014)

#60

I am self taught, I worked as a lawyer for six years and four of those were spent prepping for a career change - self-teaching comp sci and software dev in the evenings, then working as a volunteer a few years in. (I come from an engineering family and should have just done it from the start, but oh well.) I'm not sure if it's still on the platform, but about a year into my self studying I took a series of courses on…

Hello, this might be a bit personal but I am a fellow lawyer having practiced law for 3 years. How did you take the plunge after six years of doing law? Were there any external circumstances? How did you get over worrying about finding a job, losing status etc.?

I dream of getting into legal tech and combine my passion for computers with my hard earned law knowledge at some point. But it's just a dream at this stage as I can see no way out.

Post reply on HN