Live data from Hacker News

How to Design Programs (2014)

htdp.org

41–50 of 141 posts

Re: How to Design Programs (2014)

#41
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 edX that used this system. I think it was called Systematic Program Design, but I could be misremembering. Anyways, the courses were incredible. I completely credit them with beginning to turn me from a coder into a software dev. The system they provide just locked into my brain like it had always been there.

I almost didn't take it because it used Racket, and I questioned its general applicability for that reason. I'm so glad I pushed those concerns aside, because in addition to introducing me to software design principles, it introduced me to Lisp in a way that also completely changed my thinking about what programming itself could be.

I've now been a paid dev for 2.5 years. I don't really explicitly use the system from the course in my daily work, but the knowledge contained within it has molded my entire understanding of the field.

The course literally changed my life.

Re: How to Design Programs (2014)

#42

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…

Once a SE discovers that they can learn, quite significantly, in a language that may have very little practical day to day use, it's a powerful moment.

Sometimes the best tools for teaching aren't the tools we need in our day to day work, and that's ok. When you're in learning mode, it's about discovering those foundational blocks upon which all else is built. Those fundamental blocks are never the actual programming language itself.

Re: How to Design Programs (2014)

#43

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 excited again. To give you an example, I'm on vacation with my family and took with a me a book in logic programming in scheme which introduces the logic programming concepts, solves a few problems using the learned techniques then it goes on to to implement minikanren in less than 300 lines of code. The whole book is a mere 50 pages. The knowledge and understanding blow my mind.

Re: How to Design Programs (2014)

#44
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.

Re: How to Design Programs (2014)

#45
post #42

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…

Once a SE discovers that they can learn, quite significantly, in a language that may have very little practical day to day use, it's a powerful moment. Sometimes the best tools for teaching aren't the tools we need in our day to day work, and that's ok. When you're in learning mode, it's about discovering those foundational blocks upon which all else is built. Those fundamental blocks are never the actual programming…

I've had that moment and it's a paradigm shift in thinking. I'm still on my first leg of my journey as I started learning Racket/Scheme relatively recently but I've already started seeing things in a different light. I almost don't care about performance (at this point) as I know that could be attainable somehow once a solution is fleshed out but I simply enjoy the understanding of the concepts and the patterns that arise. At this moment I see possibilities all around and feel quite electrified.

Re: How to Design Programs (2014)

#46
post #42

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…

Once a SE discovers that they can learn, quite significantly, in a language that may have very little practical day to day use, it's a powerful moment. Sometimes the best tools for teaching aren't the tools we need in our day to day work, and that's ok. When you're in learning mode, it's about discovering those foundational blocks upon which all else is built. Those fundamental blocks are never the actual programming…

Well said.

On the day job, I wish for the level of expression of a different paradigm.

I sigh at the entanglement of information that is presented to my kind.

And when comes the evening, I’m relying on cheap tricks and iterative steps because I’m fried and human.

That’s a bitter sweat thing, that you describe.

Re: How to Design Programs (2014)

#47

Earlier quoted context omitted.

I see two sides: the numericals and the algebraists. I've talked with people who also see these two sides but call them differently. As I see it, this book is closer to the algebraists side. Thus, you probably lean closer to the nuemerical side. I also like to think about it as the Turing perspective (numerical, algorithmic) and the Chruch outlook, which is more algebraic-symbolic. At the end of the day, it's both "c…

The part about the two mindsets sounds vaguely familiar. Is there an article or blog post that lays this out in more detail?

This might be what you're thinking of:

https://en.wikipedia.org/wiki/Worse_is_better

Re: How to Design Programs (2014)

#48

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…

Absolutely. I went through the same thing.

Re: How to Design Programs (2014)

#49
The interesting previous threads appear to be:

How to Design Programs, second edition - https://news.ycombinator.com/item?id=16561815 - March 2018 (30 comments)

How to Design Programs, Second Edition - https://news.ycombinator.com/item?id=14932552 - Aug 2017 (40 comments)

How to Design Programs - https://news.ycombinator.com/item?id=12768134 - Oct 2016 (3 comments)

How to Design Programs, Second Edition - https://news.ycombinator.com/item?id=8778569 - Dec 2014 (39 comments)

How to Design Programs, Second Edition - https://news.ycombinator.com/item?id=6150967 - Aug 2013 (26 comments)

How to Design Programs, Second Edition - https://news.ycombinator.com/item?id=2958108 - Sept 2011 (18 comments)

How to Design Programs: An Introduction to Computing and Programming - https://news.ycombinator.com/item?id=2049477 - Dec 2010 (17 comments)

How to Design Programs - https://news.ycombinator.com/item?id=637152 - June 2009 (4 comments)

Re: How to Design Programs (2014)

#50

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…

Back when Felleisen was at Rice, he was the faculty sponsor for the Houston Java User Group. I attended some of those meetings, and Prof. Felleisen was mostly sitting quietly in the back of the room. Then a few years ago I ran across HtDP, and I am kicking myself for not noticing what I was missing. I should have dumped the Java meetings and sat in on his classes...
Post reply on HN