TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

How to Design Programs 2nd Edition

200 pointsby noob_engabout 2 years ago

5 comments

catamountabout 2 years ago
This book should really be called &quot;How to Design Functions&quot; -- not &quot;Programs&quot; -- because it sidesteps the most difficult and interesting topics in making software programs, namely the work of a) separating a task into simpler subtasks and then b) composing smaller functions into a program that performs the task. IIRC the most complicated example in this book pertains to calculating the optimal price of movie tickets. There is merit in some of the book&#x27;s recommendations. But overall this material could be condensed into the 25-page intro of a much more interesting programming textbook. As it stands, HTDP is a buzzkiller.<p>Speaking of which, here&#x27;s a 2010 blog post about how Georgia Tech stopped using HTDP, featuring an argument in the comments between the author of HTDP and Alan Kay.<p><a href="https:&#x2F;&#x2F;computinged.wordpress.com&#x2F;2010&#x2F;05&#x2F;11&#x2F;playing-the-cards-youre-dealt-a-story-of-gt-and-htdp&#x2F;" rel="nofollow">https:&#x2F;&#x2F;computinged.wordpress.com&#x2F;2010&#x2F;05&#x2F;11&#x2F;playing-the-car...</a>
评论 #35497764 未加载
评论 #35495083 未加载
preservesabout 2 years ago
This book supported the curriculum of my introductory computer science course at Tufts University back in 2013. It was hard but amazingly valuable. By the end of the semester, we were doing natural language classification using binary search trees and higher-order functions [1]. I think learning a Lisp-based language first gave me some very powerful foundational problem solving skills that have made me a successful software engineer today.<p>[1] <a href="https:&#x2F;&#x2F;www.cs.tufts.edu&#x2F;comp&#x2F;50PSS-2013f&#x2F;homework&#x2F;trigrams.html" rel="nofollow">https:&#x2F;&#x2F;www.cs.tufts.edu&#x2F;comp&#x2F;50PSS-2013f&#x2F;homework&#x2F;trigrams....</a>
michidkabout 2 years ago
I read the abstraction chapter, but I really have a hard time translating those concepts to different languages like Rust. Seems like this book is very specific to this Racket-based teaching language?
评论 #35492520 未加载
评论 #35492400 未加载
评论 #35492297 未加载
评论 #35494091 未加载
评论 #35492507 未加载
Al0neStarabout 2 years ago
theres also a follow up book called &quot;how to design classes&quot; a draft versions is available here <a href="https:&#x2F;&#x2F;felleisen.org&#x2F;matthias&#x2F;htdc.html" rel="nofollow">https:&#x2F;&#x2F;felleisen.org&#x2F;matthias&#x2F;htdc.html</a>
评论 #35492171 未加载
agomez314about 2 years ago
How does this book compare to SICP?
评论 #35492053 未加载
评论 #35491909 未加载
评论 #35492438 未加载