from Hacker News

Things software developers should learn about learning

by jarmitage on 12/27/23, 12:32 AM with 164 comments

  • by wisemang on 12/27/23, 4:10 AM

    I appreciate the succinct detail they go into regarding how the concept of “learning styles” has been debunked. I’ve always considered myself more of a visual learner, and seeing posts here and elsewhere about this supposedly not being a thing has never sat well with me (though I never delved into the actual research).

    Turns out I do in fact agree with this explanation; that it’s more about what’s being taught that should dictate the how:

    > While learners have preferred styles, effective instruction matches the content, not learning styles. A science class should use graphs to present data rather than verbal descriptions, regardless of visual or auditory learning styles, just like cooking classes should use hands-on practices rather than reading, whether learners prefer a kinesthetic style or not.

  • by xjay on 12/27/23, 8:05 AM

    Warning from Daniel Kahneman on "System 1" and "System 2". [1]

    > I'm going to use "System 1" and "System 2", absolutely as homunculi. [...] They don't exist. [...] Don't look for them in the brain, because they are not two systems in the brain, of which one does one, and the other does the other. So why am I using this terrible language? I'm using it because I think it's helpful. It fits the way our minds work, and to explain the background of that decision--of why I use "System 1" and "System 2"--I refer you to a very good book. [...] It's by Joshua Foer and it's called "Moonwalking with Einstein". [2]

    [1] https://www.youtube.com/watch?v=CjVQJdIrDJ0&t=1224s

    [2] https://en.wikipedia.org/wiki/Moonwalking_with_Einstein

    The article does put these terms in quotes.

  • by alphazard on 12/27/23, 2:53 AM

    In section 7:

    > Problem Solving is Not a Generic Skill

    There is going to be some difference between solving problems in a specific domain and solving problems generally (which is what TFA argues for). And since we really care about the specific domain of software engineering, it makes sense to pry open that difference when possible.

    However problem solving in the general case is very close to fluid intelligence and IQ. Some interpretations claim that intelligence in humans is just problem solving, and that problem solving is most of what is captured by g [0]. All problem solving will be positively correlated with all other problem solving, and you would never expect to see someone good at one, but not the other.

    In section 9 they cite the research on programming ability and its (expected) relation to general intelligence.

    I'm not sure how much of a distinction there is to draw here. Psychometrics has historically been filled with attempts to factor out additional clusters from things like g e.g. multiple intelligences. Those findings often fail to replicate. Section 7 seems more like an attempt to draw a distinction without a difference. While section 9 seems like a standard summary of the research (like most things, a mixture of innate intelligence and cumulative experience).

    [0] https://en.wikipedia.org/wiki/G_factor_(psychometrics)

  • by KineticLensman on 12/27/23, 10:40 AM

    The corollary to learning is teaching, and this isn't addressed substantially in the article. There is a whole industry associated with teaching / training that goes substantially beyond consideration of individual learning styles. E.g. how to structure a course, training objectives and key learning points, how to do assessment of students (during the training itself, or as summary exams / tests), how to give feedback, and many other points. There is also a load of theory around competence retention (how different types of knowledge and skill fall off over time) and the limits of learnability (e.g. the point at which you should stop trying to cram in something that is very forgettable and supplement / replace training with job aides such as checklists).

    Awareness of these things can make a big difference between well structured training material and a stream-of-consciousness YouTube 'tutorial'.

  • by acbart on 12/27/23, 1:36 PM

    All three of these authors are amazing Computer Science Education researchers. Obviously, it's a well-cited and well-argued article as well, but I feel like it's worth pointing out that I expected nothing less from them. I actually learned a few things here - I had never heard of the Semantic Wave before. What a great share, thank you very much!
  • by belter on 12/27/23, 6:40 PM

    From the article...

    "Experts are not always the best at training beginners."

    "To emphasize a specific point: Do not test candidates with brain-teaser puzzles."

    "...to get candidates to solve interview problems in a room on their own before presenting the solution, as the added pressure from an interviewer observing or requiring talking while solving it adds to cognitive load and stress in a way that impairs performance..."

    https://youtu.be/bn_KRzohcAo

  • by vinay_ys on 12/27/23, 5:24 AM

    > Experts Recognize, Beginners Reason

    > System 1 is fast and driven by recognition, relying upon pattern recognition in long-term memory, while system 2 is slower and focused on reasoning, requiring more processing in working memory.

    Interestingly, today, LLMs are augmentation for someone's weak system 1, and allowing them to focus solely on strengthening their system 2. LLMs and popular/cheap/generalizable AI today suck at system 2. So, if you are really good at system 2 and suck at system 1, the next decade is going to be amazing for you.

  • by aksss on 12/27/23, 8:19 AM

    > “Higher capacity enables faster learning, but our unlimited long-term memory removes limitations on how much we could ultimately learn in total.1 Expert programmers may have low or high working memory capacity but it is the contents of their long-term memory that make them experts.”

    I’ve always told “kids” that you can learn a lot about systems but with programming and IT systems in general, there is just no substitute for getting the raw mileage of having seen many permutations, iterations, and manifestations. It’s not a dig, but a statement made in the context of encouraging new people to stick with it and not beat themselves up too much when they inevitably get overwhelmed by the scope of their unknowns or roll a critical miss. It’s all about learning, all the time.

  • by mewpmewp2 on 12/27/23, 1:59 AM

    The article looks very accurate to me. Having read all of that, I find myself agreeing with most of it, which I think usually would not be the case for me with an article like this.
  • by hasoleju on 12/27/23, 1:33 PM

    Me and my wife often discuss on how we should help our children to learn. Especially if we see them making errors. Should we tell them that they made an error and show them the correct solution or should we wait to let them notice their error on their own.

    The last part about the mindset of the learner gave me an interesting perspective.

    The article explains the growth mindset and fixed mindset. The article suggest to nurture a growth mindset by rewarding successes and tolerating failures. Pointing out failures too often might make the learner switch to a fixed mindset.

  • by readthenotes1 on 12/27/23, 1:17 AM

    Iirc, System 1/2 thinking has been largely de-based (i.e., it could be a right model, but the evidence for that is tenuous)

    https://www.psychologytoday.com/us/blog/a-hovercraft-full-of...

    Makes me wonder if item (0) should be "Suspect every one" (with a nod to Maria Gambrelli, of course)

  • by acosmism on 12/27/23, 1:09 AM

  • by abaymado on 12/27/23, 7:21 AM

    > Research into chess found little or no effect of learning it on other academic and cognitive skills, and the same is true for music instruction and cognitive training.This inability to transfer problem-solving skills is why "brain training" is ineffective for developing general intelligence.

    I would disagree with this premise, deep work and the forbidden word "discipline" are problem solving skills that are learned and need constant training. They are just as important as any other specific skill needed for the subject. Thus, making some problem-solving skills indeed free flowing from subject to subject.

  • by keiferski on 12/27/23, 12:30 PM

    Another curious feature of human memory is "spreading activation."1 Our memories are stored in interconnected neural pathways. When we try to remember something, we activate a pathway of neurons to access the targeted information. However, activation is not contained within one pathway. Some of the activation energy spreads to other connected pathways, like heat radiating from a hot water pipe. This spreading activation leaves related pathways primed for activation for hours.1

    He frames this as negative in the next paragraph, but this sounds like the mechanism by which memory palaces work.

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

  • by 2devnull on 12/27/23, 3:41 PM

    “If you want to judge programming ability, assess programming ability.”

    Well there is a problem with that but I will leave it to others to work out what the problem is. (Hint: How do you measure programming ability without, you know some sort of measurement. :)

  • by nullandvoid on 12/27/23, 1:11 PM

    On the topic of how our "Activation" pathways (used when we recall information) stay primed for hours after learning.

    This had me wondering on the power of building a "warm up" exercise when we're trying to solve a problem - can we brute force an optimal activation hot paths for better problem solving (obviously it would be highly individual - but presumably such a thing exists given this fact).

    It seems you would need a routine per category of problem, but none the less there may be more value than we think in spending 5 minutes just asking/answering some probing questions around the domain in question, before trying to solve the problem.

  • by praveen9920 on 12/27/23, 1:24 PM

    Now I can relate why doing few leet code problems just before interview helps me do better. My activation pathways stay active for few hours .

    Hope to use this in various other places to improve

  • by tbwriting on 12/27/23, 4:33 AM

    This is a fantastic piece. If you find yourself thinking “okay, so the brain is different — now what? What should I actually do to learn better?” I wrote about this last year. Pardon the clickbaity title, HackerNoon changed it up on me. https://hackernoon.com/the-four-rs-how-to-become-a-good-prog...
  • by auggierose on 12/27/23, 8:25 AM

    I like the paper, and I think it makes many valuable points. I especially like the semantic wave model, because that's exactly how you learn mathematics. And it also explains why (high-quality) abstractions are so important.

    But of course everything has to be taken with a grain of salt. For example, their recommendations at the end on how to access papers is not very good. Ever heard of Sci-Hub and VPNs? It is obvious why they cannot mention this in their paper, but it is also equally obvious then that if there was evidence linking race or gender with programming ability, they would not mention it, for pretty much the same reasons.

    I also don't like their example of achieving a Nobel Prize as something that practically no one can attain. Yes, that's true, but that is because Nobel Prizes are artificially limited to a few people a year. I think many, many more people can achieve that level of expertise than just a few per year.

  • by akerr on 12/27/23, 10:38 AM

    Generally, these are things that teachers learn during their training. Everyone has an education and has an opinion of education yet it doesn’t mean understanding how learning happens. In my opinion, good teachers teach the how of learning too.
  • by remram on 12/27/23, 9:38 AM

    Why are "key insights" presented as an ugly GIF? Just so it can't be seen by screen readers? Or maybe robots?

    If you really want to put your text in an image, can you pick a decent font and not make it blurry? Puzzling.

  • by rand1239 on 12/27/23, 9:16 AM

    I wonder whether including this article in GPT-5 training data would improve the performance of the model.
  • by bedobi on 12/27/23, 2:45 AM

    allow me to shamelessly plug something I wrote on the topic

    https://gist.github.com/androidfred/75629dfda63180b6f0a0eaa4...

    no data, no research :P just anecdote and opinon

  • by zubairq on 12/27/23, 5:00 AM

    Some good points, programming t00 much can sometimes distort my thinking !
  • by rmrf100 on 12/27/23, 7:58 AM

    sometimes it's really astonishing to see that, children grow up day by day then quikly understond the logic which hard to them before.
  • by selimthegrim on 12/27/23, 1:06 AM

    500 error
  • by TibbityFlanders on 12/27/23, 5:11 AM

    https://today.ucsd.edu/story/a-new-replication-crisis-resear....

    > Papers that cannot be replicated are cited 153 times more because their findings are interesting, according to a new UC San Diego study

    > In psychology, only 39 percent of the 100 experiments successfully replicated.

  • by revskill on 12/27/23, 3:26 AM

    To me, intelligence in general is ability of solving things in a generic and abstract way.
  • by quickthrower2 on 12/27/23, 3:10 AM

    > Long-term memory is where information is permanently stored and is functionally limitless; in that sense, it functions somewhat like a computer's disk storage.

    Doesn't jibe with my experience.

  • by rTX5CMRXIfFG on 12/27/23, 4:57 AM

    > a fact does not exist in a binary state of either definitively known or unknown; it can exist in intermediate states. We can forget things we previously knew, and knowledge can be unreliable, especially when recently learned.

    I’m sorry, what? If I only vaguely understood physics and believed now that the earth is flat, that would neither count as knowledge in some intermediate state. Knowing is binary—you either know or you don’t, no matter how strongly believe what you think.