Settings

Theme

How to Design Programs (2023)

htdp.org

91 points by optbuild 2 years ago · 22 comments

Reader

blowski 2 years ago

This has been submitted many times before. Most substantial discussion is on these submissions.

* https://news.ycombinator.com/item?id=35784167

* https://news.ycombinator.com/item?id=35478871

* https://news.ycombinator.com/item?id=32146245

* https://news.ycombinator.com/item?id=16561815

kiitos 2 years ago

After more than 30 years of professional software engineering experience, I have to say that the software model described by this document is applicable and/or useful to only an extremely narrow subset of software in general. I would not recommend taking this advice too seriously.

  • jonjacky 2 years ago

    This is a textbook for the introductory programming course, the first programming experience for many students. Maybe it would be better titled, "How to solve the programming exercises in an introductory course"

    I see a lot of value in this. It gives a step-by-step method that students can follow, which often works. The prevailing alternative seems to be, "Look at a lot of examples, pick one that looks similar to the exercise, and change it around by trial and error until it kind of works." This does not generalize to professional level programming either.

    At this initial stage, the goal is to build the students' confidence that if they work systematically, they can solve problems. As their education and experience continue, they can take on more realistic problems and methods.

  • andric 2 years ago

    Which narrow subset in particular, and why do you say that?

  • w4lker 2 years ago

    What would you recomend to someone starting at this area?

    • kiitos 2 years ago

      John Ousterhout's "A philosophy of software design" and Fred Brook's "The design of design"

  • cuchoi 2 years ago

    Any other resources you recommend?

    • discreteevent 2 years ago

      John Ousterhout's "A Philosophy of Software Design". But this does prompt the question: If these two books about software/program design are so different then which is correct and why is there such a gap? In my experience (like kiitos above) I don't see much scope for HtDP for most industry programming and I have worked in few different domains.

pratik_kanthi 2 years ago

How would a working Software Professional find the time to read a whole book like this?

  • atoav 2 years ago

    If there is any profession that is built on the assumption that its practitioners constantly put aside time to stay up to date it is every profession that is even remotly connected to engineering.

    Maybe many software devs don't view themselves as engineers, but engineers can be held liable if their work doesn't live up to the current technological standards.

    I would say, regardless of what you do, sometimes you have to take some time for introspection, unless you plan to live with the consequences of not doing it. And reading books is part of that.

    If your employer is smart they consider that. If you are smart you also consider that.

  • zelphirkalt 2 years ago

    Option 1: Have a good employer, who values learning and having highly qualified developers.

    Option 2: In lack of option 1, I am afraid one will have to spend ones free time on it.

    Option 3: Take a "sabattical" or whatever it is called.

    Option 4: Quit job and find an option 1 employer.

  • layer8 2 years ago

    Easy: Stop reading HN until you finish the book.

  • curious16 2 years ago

    If you really care about learning, carve out time from your daily routine and progress little by little in chunks.

  • ofou 2 years ago

    8 hours free assumming you work 1/3 and sleep the other.

    • zelphirkalt 2 years ago

      *smallprint: Assuming that no eating or other recreational activity is required. Also faint echoes of "sleep a little faster" motivational speech

      • cjfd 2 years ago

        Well, one can also get through a book by reading a quarter of an hour a day.

    • mbork_pl 2 years ago

      How about non-coding-related hobbies, not to mention a family...?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection