1. 23

  2. 7

    I like this article a lot. Two particular insights that really resonated with me:

    1. “The most important thing in software design is problem framing” (and all of its presented corollaries e.g. assuming you’re working with an ill-defined problem, etc.).
    2. “Knowledge about design is hard to externalize” (and therefore most learning is done through apprenticeship).

    These two stood out to me because they both align strongly with my experience, and seem like they’re not really taught in a standard CS curriculum. School definitely taught me a lot about how to program, but very little about how to solve problems with software.

    It feels almost like my university curriculum was missing a finishing course in actually solving real problems (although I can imagine designing such a course would be really difficult since it would need to effectively be an apprenticeship - maybe this is the role that internships are intended to fill?).

    1. 3

      I like the “direction” (probably not the best word) of this article a lot, but it’s not very concrete. Doesn’t really seem to give much actual direction as to directions we might be able to investigate.

      Edit: every time I say “direction”, drink :-/

      1. 3

        Yeah, this is a difference I noticed almost as soon as I appeared here! Where I come from, this [the idea that the best programmers are in their 20s] is completely ridiculous. The most important thing in software design is problem framing and you need a lot of expertise for that. The best software designers in our world are often in their 50s or 60s!

        I enjoyed this article and I can’t help but feel it was written just to make the above point.