Online courses recommended by Hacker News users. [about]

How to Code: Simple Data

edX · University of British Columbia · 6 HN points · 10 HN citations

Learn systematic program design to write programs that tell a clear story about what they do, are well-tested and are easy to improve.

View on edX
The vast majority of the courses listed here on HN.Academy are available from their providers for free. Many courses offer a completion certification for a fee. A few courses and specializations require an enrollment fee. HN.Academy receives a referral commission when you visit course pages through links on this site and then purchase courses and completion certificates. If you decide to purchase a certificate or course the commission does not increase the cost of the course and helps support the continued existence of HN.Academy which is much appreciated.

Hacker News Comments about How to Code: Simple Data

All the comments and stories posted to Hacker News that reference this course.
Dec 12, 2018 juniusfree on Ask HN: How do you transfer the knowledge from HtDP to ReactJS?

I'm currently taking the course "How to Code: Simple Data" ( which is based on the book "How to Design Programs" (

If you have taken this course (or read the book), can you share how you used the recipes in designing a React program? A concrete example will be very helpful.


Oct 27, 2018 charlysl on Not Lisp again (2009)
SICP, although an excellent book, is not a good introduction to programming.

[1] thoroughly explains why

[2,3] based on How To Design Programs [4] is a much better intro; you should read SICP after completing this





Oct 16, 2018 specializeded on How Lisp Became God's Own Programming Language
DrRacket IDE [0] + the SICP compt language [1] and you can start writing it instantly in a well built and maintained environment that’s racket based and pretty fleshed out library wise, certainly nothing compared to Clojure but among the rest, it’s the best (imo), I recall Carmack writing a server in Racket for fun and praising the experience a few years back.

[0] -

[1] -

Additionally, if SICP proves too slow going or difficult math wise [3] you can always use drracket for HtDP [4] and it’s corresponding misnamed edX course(s) [5] and later on, PLaI [6].

[3] -

[4] -

[5] -

[6] -

Oct 01, 2018 charlysl on Ask HN: What are the best textbooks in your field of expertise?
I am not an expert, but maybe because of that I believe that I can offer valuable advice to those who are totally new to functional programming (or feel that they are missing something), and want to get the core basics down cold without getting drowned in accidental complexity, do yourself a favor and start with edx's free moocs "How To Code" [1] [2], which are based on "How To Design Programs" [3]. After that, you will cruise through the recommended classics above.

If interested in why if you are an FP newbie said material is superior to SICP , read the pdf paper "The Structure and Interpretation of the Computer Science Curriculum" [4]





Sep 26, 2018 tosh submitted Racket: How to Code (2 points, 1 comments)
The course is taught by Gregor Kiczales ( prvsly at Xerox Parc and co-author of the CLOS specification.
Sep 06, 2018 tosh submitted How to Code (Racket with Gregor Kiczales) (1 points, 0 comments)
Sep 02, 2018 charlysl on How to teach yourself hard things
For learning how to program, How To Code [1] (based on How to Design Programs [2]) is tragically underrated given that it's hands down the best approach to learn how to program (actually, more importantly, how to think about programming) of the many I have looked at. Wish I had known this years ago. Rarely the best learning resources are widely know, so sad.

I decided to give this course a go after reading the eye-opening paper The Structure and Interpretation of the Computer Science Curriculum [3], and then discovered the edx course in HN [4] [5].

Although having programmed for many years it totally changed the way I look at programming; I followed this with the sadly unfinished but still excellent How to Design Classes [6], which consistently extends this initially FP approach to OO. To check how this approach is language neutral, have a look at Design Recipes in C [7].

Another neglected but wonderful resource is MIT OCW Elements of Software Construction (the 2008 version) [8], which, like the above, is centered around design rather than coding.

What did I get out of all this? A systematic approach to programming.









Aug 24, 2018 modernerd on On HtDP
Thank you for adding that — I didn't know the edX courses were still online under a different name! The links from wikibob's comment for those interested:

I also love Gregor's teaching style and philosophy. It clicked with me and felt obvious and natural in a way the book never did.

Aug 24, 2018 wikibob on On HtDP
Just wanted to note that HtDP is the best pedegogy for teaching the foundations of CS that I've ever found.

However, the book really needs professional editing.

Instead, take a look at the Intro CS classes from University of British Columbia [0][1].

They are taught by the excellent Gregor Kiczales, and directly follow the course structure from HtDP, in an extremely learner-friendly way. Absolutely the best online course I've ever done, Gregor really put an enormous amount of effort into doing this right.

[0] [1]

Mar 11, 2018 WillPostForFood on How to Design Programs, second edition
Just to note, while the classes are part of a paid program at EdX, you can enroll in the individual classes for free. I went through the first one a few years ago and really enjoyed it.

Feb 24, 2018 albertvila on Learn Physics by Programming in Haskell
You can take a look at the book How To Design Programs (HTDP) [1]. It's similar. The 2nd edition printed book is going to be released soon [2]. There is a paper from the authors of HTDP comparing it to SICP [3]. By the way, there is an couple of online courses at EDX that covers content of HTDP [4][5].






Oct 21, 2017 tosh submitted How to Code: Simple Data (3 points, 0 comments)
Aug 05, 2017 wikibob on How to Design Programs, Second Edition
The approach in this book is incredibly important and deserves far wider awareness than it has had so far.

Unfortunately the book itself is less than ideal for working through directly, it would benefit greatly from the polish of professional editing.

However, Gregor Kiczales of University of British Columbia has a absolutely top notch class he teaches based on the book. It's available free on EdX: Don't be put off like I was at first by the mass-market title ("How to Code").

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
HN.Academy is an independent project and is not managed or owned by Y Combinator, Coursera, edX, or any of the universities and other institutions providing courses.
~ [email protected]
;laksdfhjdhksalkfj more things ~ Privacy Policy ~