49 ms·
This comes down to the old saying "everything is memorization at the end of the day". Some people literally memorize answers. Other folks memorize algorithms.
by frogeyedpeas 2y ago
This comes down to the old saying "everything is memorization at the end of the day".
Some people literally memorize answers. Other folks memorize algorithms. Yet other folks memorize general collections of axioms/proofs and key ideas. And perhaps at the very top of this hierarchy is memorizing just generic problem solving strategies/learning strategies.
And while naively we might believe that "understanding is everything". It really isn't. Consider if you are in the middle of a calculus exam and need to evaluate $7 \times 8$ by calculating $7+7+7+7...$ and then proceed to count on your fingers up to 56 because even $7+7$ wasn't memorized. You're almost certainly not going to make it past the first problem on your exam even though you really do understand exactly whats going on .
Similar things are true for software engineering. If you have to stackoverflow every single line of code that you are attempting to write all the way down to each individual print statement and array access it doesn't fucking matter HOW well you understand whats going on/how clear your mental models are. You are simply not going to be a productive/useful person on a team.
At some point in order to be effective in any field you need to eventually just KNOW the field, meaning have memorized shortcuts and paths so that you only spend time working on the "real problem".
To really drive the point home. This is the difference between being "intelligent" versus "experienced".
- throwuxiytayq 2y ago> And perhaps at the very top of this hierarchy is memorizing just generic problem solving strategies/learning strategies. I'm not sure this counts as memorization. I don't even think you can really "memorize" high level learning and problem solving strategies, even when explained by an expert. You kind of have to re-discover them internally. And then, there are people who "memorized" the explanation and are completely unable to put it into practice because to them it's just a word sequence, instead of an internalized change to the way you perceive and work with problems.
- frogeyedpeas 2y agoYou absolutely can. I remember struggling with some problems on AOPS and then reading in a book "always consider smaller $n$ when dealing with a problem that is difficult because of large $n$" and ever since then that habit has stuck. Whenever I have a problem thats hard and involves numbers and i'm stuck I just remember to ask "what if the numbers were smaller? what do we do then?" If that isn't memorizing something and making a new habit as a kid then I don't know what memorizing means. Said another way, the ability to remember to "____" when dealing with a problem of type "___" is what I mean by "memorize".
- throwuxiytayq 2y ago> Whenever I have a problem thats hard and involves numbers and i'm stuck I just remember to ask "what if the numbers were smaller? what do we do then?" I think you underestimate the amount of internalized understanding of the "unblock yourself on a difficult problem by solving a simpler version of it" strategy that you possessed or unlocked at learn-time which allowed you to notice its effectiveness. Isn't the sentence more of an easily-retrievable mnemonic for a concept that's much more complicated (than just the information transferred by language) and requires a particular background to recognize how useful it is?
- nickpsecurity 2y agoThey’re called heuristics in problem-solving literature. Both heuristics and meta-heuristics have been used in planning software. Heuristics from one system are sometimes reused in another system. So, you can memorized generic, problem-solving strategies. I don’t know how much human brains do in that area vs non-memorization approaches. Ive read about how practicing rational, problem solving in specific domains to bake those heuristics into one’s intuition for faster responses. Most of us have done that, too. Any type of intuitive, problem solving probably involves memorization for that reason.
- mhh__ 2y agoI think the antidote is driving education as a journey through the great questions of history. What was Newton trying to do? What Faraday investigating? Darwin? Smith? Marx? Descartes and so on. Everything is connected and there is something interesting for everyone, we just don't try.
- bitshiftfaced 2y agoNah, there's such a thing as creative thinking, idea generation, and connecting existing ideas in new ways. I wouldn't mind a coder that has to look at stack overflow a lot but is able to figure out a new method to do something better.
- frogeyedpeas 2y agoYou absolutely would never hire a coder that needs to google "how to access an array by index" every-time they need to access an index of an array. You can say a politically correct answer like "i don't care how they do it, as long as they get it done" but such a coder will DEFINITELY take months to finish what might take someone else hours. Such a coder might still be able to suggest new methods to do something better and if there job description was "organizational optimizer" perhaps thats fine but as soon as you also expect software output out of this person you will quickly realize that you take for granted how valuable someone that has fully memorized a bunch of fundamentals up to and including some problem strategies truly is.
- youerbt 2y agoThat makes no sense to me. If this coder has to access array by index twenty times a day, then he is going to remember it, eventually, no? If is it rare that he has to do it, then why memorize it? You really think there is more value in remembering how to do something in some arbitrary, shitty, programming language than understanding the concept of doing it? With understanding the idea you can do it in any language, at any time, it is just a few seconds away.
- mrmetanoia 2y agoIt makes no sense because it indeed makes no sense. People who successfully solve realworld problems understand concepts and ideas and how to apply them, they understand how to iterate and extrapolate. I've met too many people who can do a specific thing but actually have no idea what's going on for the GP's logic to hold any water at all.
- 2y ago
- chmod775 2y ago> Consider if you are in the middle of a calculus exam and need to evaluate $7 \times 8$ by calculating $7+7+7+7...$ and then proceed to count on your fingers up to 56 because even $7+7$ wasn't memorized. You're almost certainly not going to make it past the first problem on your exam even though you really do understand exactly whats going on. This is not a counterexample because exams aren't an end goal. The process of filling out exams isn't an activity that provides value to society. If an exam poorly grades a student who would do great solving actual real-world problems, the exam is wrong. No ifs. No buts. The exam is wrong because it's failing the ultimate goal: school is supposed to increase people's value to society and help figure out where their unique abilities may be of most use. > Similar things are true for software engineering. If you have to stackoverflow every single line of code that you are attempting to write all the way down to each individual print statement and array access it doesn't fucking matter HOW well you understand whats going on/how clear your mental models are. You are simply not going to be a productive/useful person on a team. If their mental models are truly so amazing, they'd make a great (systems) architect without having to personally code much.
- sim04ful 2y agoI can't totally agree with your counter-counter example. Most non trivial problems are time bound, deadline exist, and no matter how well ingrained you are in first principles thinking you won't be useful if it takes months to come up with a solution.
- frogeyedpeas 2y ago> Re: "this is not a counter example because exams aren't an end goal..." for any end goal with a set end time there are habits that need to be second nature and information that one needs to know in order to achieve that goal. If you lack those habits and don't know those facts it's going to be very hard to achieve that goal. I used the example of a calculus test and not being able to do addition. But this really could be any example. It could have even been a Wide Receiver failing to read the play thats happening quickly enough despite being physically fit enough to execute the right play in hindsight. >Re: they'd make a great (systems) architect... But you wouldn't hire them as a programmer. My sentence was biased in the sense that "team" meant "team of software engineers". You would hire them for a different job sure. Also good mental model here just means "Always knowing and being able to clearly articulate what I need to accomplish next to write my code". It doesn't even mean they are good at designing systems but lets go with that example anyways below: The Architect version of this is that they perhaps have perfectly clear mental models of exactly how to code (memorizing very obscure language shortcuts and syntactic sugar and writing very clear code when they know what to build) but they cannot for the love of god think critically about what a design should be BEFORE they implement it far enough to reach a major issue. And you would rightly say "well I would never hire that guy as an architect but I might have hired them as a programmer thats led by more senior folks". At the end of the day you are only hiring people for the parts of their mental models that are useful. And the ability to clearly recall facts about that their domain is basically the fundamental detail here.
- FredPret 2y agoMaybe understanding is simply having memorized a handy instantiation of the relevant concept
- drewcoo 2y ago> This comes down to the old saying "everything is memorization at the end of the day". I certainly don't remember hearing that!
- lo_zamoyski 2y ago> At some point in order to be effective in any field you need to eventually just KNOW the field, meaning have memorized shortcuts and paths so that you only spend time working on the "real problem". Yes, there is a "habitus" to mastery. It becomes you, or you become it, so to speak. But pedagogically speaking, I think what people miss is that you can't really use or think about something you don't remember.
- jltsiren 2y agoI'd say memorization and building expertise are orthogonal. Expertise is lossy intuitive reasoning. It's pattern recognition based on practice and experience. Then there is logical reasoning based on memorized facts, which is a fallback mechanism people use when they don't have the necessary skills. It usually fails, because it's inefficient, it doesn't scale, and it doesn't generalize. Sometimes memorization is necessary, but it's often not the actual point. When kids are asked to memorize the multiplication table, they are not really supposed to memorize it. They are supposed to build a mental model for multiplying numbers without resorting to first principles or memorized answers. Then if your model can calculate 7 * 8, you can also use it to calculate 7e10 * 8e11, even if you haven't memorized that specific fact.
- brigadier132 2y ago> It's pattern recognition based on practice and experience This is arguably another form of memorization. Magnus Carlson is the best Chess player in the world because he memorizes everything without effort.
- jltsiren 2y agoIt's memorization in the same sense as an LLM is a database. You can think like that if you prefer, but I don't find it a useful perspective.
- iwsk 2y agoWhen kids are asked to memorize the multiplication table, they are actually supposed to memorize it.
- tsimionescu 2y agoThe multiplication table doesn't have patterns, or it only has a few. You really do need to remember all of the 100 results. I know what 7*8 is, and I know the rules for exponents, so I can compute 7e10*8e11. But I can't "deduce" what 7*8 is by any rule, it's just a fact I remember. I have certainly not added 7 to itself 8 times in decades.
- deleted 2y ago[deleted]
- wizzwizz4 2y ago> If you have to stackoverflow every single line of code that you are attempting to write all the way down to each individual print statement and array access Then you may be a perfectly adequate programmer. This, what, doubles the length of time it takes to type out the program? Triples? Typing out the program is not what takes the time! I've just spent a couple of days writing a plugin in a language I don't know. (The system documentation spends two paragraphs explaining how hard it is to solve the problem I solved.) Yes, I had to look up absolutely everything (including basic language syntax – repeatedly), and that was really annoying, but most of my time and effort went into figuring out how to do the thing.
- kiba 2y agoYou already have programming knowledge that you can use to leverage toward that task. For a complete beginner, such a project might be a non-starter. Like, once you learn a programming language, you already know the syntax for 90% of all languages.
- wizzwizz4 2y agoHere's a collage of some of my favourite bits. (I've inlined some functions, but this is nearly as readable as the actual code.) open Option Parse Scan; (maybe embedded --| minus -- name >> (fn arg => ((if ! testing then #2 arg |> Output.writeln else (); #1 #> curry getOpt) arg (implode [])))) -- command_name "supply" >> (op ^) What does this say?
- deleted 2y ago[deleted]
- TeMPOraL 2y agoMemorization is caching. You need it because otherwise you'd be too slow at anything, but you can't possibly memorize everything, and the whole point of understanding is so you don't have to. And like with any caching, the more you store, the more it costs to maintain it, and the longer the lookups become. If you want to cram a lot of stuff into it, you may need to start doing actual, expensive work - e.g. spaced repetition - to keep it all. AS for memorizing generic problem solving strategies - I don't think it's about not memorizing, but rather that understanding comes through examples, and if you learn high-level stuff without actually applying it in practice, and experiencing the process, then you haven't actually learned the high-level stuff, you just think so, and will parrot the description without comprehending it.
- bbor 2y agoI love this long detailed conversation with many people jumping in, and 0 references to philosophers of the mind… gee guys, I wonder how we could crack this code? Even the paper itself cites one cognitive psychologist then moves on! A bit of relatable intellectual arrogance from us SWEs/mathematicians, I think — we are “on top of the world” right now. FWIW I think you in particular are exactly right. I always think of Schopenhauer’s quote, and I think any software engineer might appreciate it: human memory isn’t storing items received from the world in a database, it’s more like folding creases into a napkin so that it naturally tends to fall into that shape in the future. In other words: remembering an event is equivalent to developing the skill of imagining a scene/dataframe that relates to that event. In specific math terms: math is a collection of intellectual tools building on one another. You can certainly practice the ability to apply tools in new situations, but if you don’t also practice the ability to recall the tools themselves, it’s useless.
- fallingknife 2y agoBut is that actually what human memory is like? AFAIK nobody actually understands the internals. The "philosophers of the mind" who claim to know are the ones guilty of arrogance, not those who don't cite them.
- bbor 2y agoWell, we should collect some evidence and write a book! If we did, it would be filed into the philosophy of mind section, I believe ;) We don’t know everything, but we have more evidence than “it’s a black box” - in fact, that’s basically the scholastic / Aristotlean view that was conquered by our friends Bacon, Hume and Kant a few hundred years ago.
- superposeur 2y agoTo support your point, I think the role of memory in creative work is highly underrated. I’ve seen up close a few people who could fairly be described as “most creative researchers in the world” (in my field at least) according to metrics such as h-index and Nobel prizes. It always strikes me how essential exceptional memory is to what they do — they have detailed, immediate recall of the problems in their field and, to the extent this recall is no longer present, then they are no longer producing groundbreaking work. Their recall of facts outside the field is often nothing special. Imagination, creativity, intelligence all seem to rely on memory in order to operate.
- deleted 2y ago[deleted]
- greentxt 2y ago"everything is memorization at the end of the day" Only somebody who has never thought about or studied human cognition would memorize such a thing. ;) But in all seriousness, memory isn't even memory isn't just memorization. Much of it is attention, some would even say attention is all you need. ;) In all seriousness though, arguably, reducing the human mind down to a single dimension like "recall" (or attention) while ignoring other dimensions like emotion, creativity and so on is probably good evidence that human cognition is neither simple, nor unidimensional, for some of us humans at least. Ymmv