[HN Gopher] The language brain matters more for programming than...
___________________________________________________________________
The language brain matters more for programming than the math
brain? (2020)
Author : smusamashah
Score : 287 points
Date : 2025-05-02 15:19 UTC (7 hours ago)
(HTM) web link (massivesci.com)
(TXT) w3m dump (massivesci.com)
| Qem wrote:
| I wonder if this finding hold across programming languages. I
| suspect the conclusions would be different for people programming
| in APL instead of Python, for example.
| floxy wrote:
| And/or application domain. Lower level programming might lean
| more on the math side? Wasn't the modulus operator a common
| complaint about fizz-buzz?
| codr7 wrote:
| Low level requires more discipline, similar to math, that's
| about it.
| Jensson wrote:
| Math doesn't require discipline though, many learn and do
| math without much discipline.
| Qem wrote:
| It surely helps. Take for example History, if I space out
| for whatever reason in the class and botch my examination
| on the Aztecs, that doesn't preclude me doing great in
| the classes about the Roman empire. History is like a
| sparse suburb, where a single house catching fire does
| not necessarily propagate and destroy the others. On the
| other side Math its like a skyscrapper, one floor build
| upon the other. If someone living in a lower floor
| botches a home renovation in his unit and damages a
| pillar, it risks taking down the whole building. In math
| if you botch a prerequisite, you'll ending messing your
| learning of subsequent concepts 95% of the time. So it is
| more unforgiving to people with problems like ADHD, that
| struggle to keep unbroken focus and discipline.
| codr7 wrote:
| Sure does for me, a thousand rules to follow.
| graemep wrote:
| I was thinking about whether it would vary with task, but I
| think you have a good point and it would vary even more with
| the language.
| jimbokun wrote:
| I would take the other side of the bet.
| jp57 wrote:
| After I started my PhD program in CS/AI (late 90's), one of the
| faculty told me that the GRE verbal score was thing on the
| application most predictive of student success in the program. Of
| course, most applicants had perfect or near perfect GRE math
| scores, so there was no predictive power there. But the
| application also included the GRE subject test, transcripts, and
| letters of recommendation.
| georgeburdell wrote:
| The GRE math bar for excellence was quite low and so a perfect
| score was only the 92nd percentile or so. It's not surprising
| that other metrics correlated better with success
| beambot wrote:
| Putnam exam score might be more predictive?
| jp57 wrote:
| Sure, but also, if you can't read and write well, you're
| going to struggle in a PhD, because that's really a lot of
| what you have to do.
| philipkglass wrote:
| I also seem to recall from _The Making of the Atomic Bomb_ that
| the theoretical physicists of the era were noted as having the
| highest verbal intelligence of any group of scientists. That
| struck me since I would not have expected it.
|
| EDIT: I found the quote, from chapter 6:
|
| _Psychometricians have closely questioned American scientists
| of this first modern generation, curious to know what kind of
| men they were--there were few women among them--and from what
| backgrounds they emerged. Small liberal arts colleges in the
| Middle West and on the Pacific coast, one study found, were
| most productive of scientists then (by contrast, New England in
| the same period excelled at the manufacture of lawyers).
|
| ...
|
| Theoretical physicists averaged the highest verbal IQs among
| all scientists studied, clustering around 170, almost 20
| percent higher than the experimentalists. Theoreticians also
| averaged the highest spatial IQs, experimentalists ranking
| second._
| tomjakubowski wrote:
| I'd think strong verbal skills would make for better
| collaboration between scientists.
| jp57 wrote:
| In order to solve what are essentially "word problems" --
| i.e. reading a verbal description of a problem and
| translating it to math -- you have to have very good reading
| comprehension.
| Qem wrote:
| Perhaps survivorship bias explain part of it. Many of those
| scientists arrived at US fleeing their home countries in
| WWII. Migrating under those circumstances is tricky, lacking
| the necessary support network or failing to successfully
| negotiate an encounter with border patrol may be the
| difference between reaching a safe place and being dragged to
| rot in the trenches. Good verbal intelligence is very helpful
| in this process. Perhaps the same way good verbal
| intelligence is over-represented in those who escaped the
| war, the trait of being taciturn was over-represented in all
| the scientists that got stuck and died in WWII[1].
|
| [1] https://worldscientific.com/worldscibooks/10.1142/q0436#t
| =ab...
| lgiordano_notte wrote:
| Makes sense that verbal ability would line up more with success
| in CS, especially when math scores are already high across the
| board. A lot of programming leans on language-type skills:
| reading and understanding code, navigating docs, naming things
| clearly, writing maintainable logic etc.
|
| The field probably does itself a disservice by overemphasising
| math. That framing can push people away who might actually do
| really well, especially those strong in reasoning, abstraction,
| or communication. Linked study is a good reminder to rethink
| how we present programming imo.
| jart wrote:
| It does. The majority of what's popular and gets attention in
| programming is things like languages and frameworks which do
| the best smooth talking. The whole point of CS is to focus on
| the aspects of programming that aren't just vogue trends.
| With any field or aspect of modern life, language skills are
| the gateway to privilege and software engineering is no
| exception. But here it's respect for the math that stops it
| all from spiraling into a bunch of bs. You can't fool the
| math people.
| swayvil wrote:
| Math is a subset of language, surely.
| kanbankaren wrote:
| Probably true. Math used to be written in prose style before we
| invented symbols to compress the prose. Most of the symbols are
| very recent just in the last 200 years or so.
| klipt wrote:
| Some types of math benefit a lot from visual reasoning. Like
| geometry.
| ducttapecrown wrote:
| Geometry only benefits from visual reasoning in 3d and lower,
| and there are a lot of dimensions above that!
|
| You can see visual reasoning as a little cheat computation,
| you can run math problems through your sense-determining
| brain, which is what brains are really good at (robots
| struggle with our levels of dexterity). But the fact remains
| that you can only visualize in low dimensions, and there are
| infinitely many dimensions.
|
| Note: You can reduce many problems to 3d, but also many
| problems in 3d have configuration spaces with much higher
| dimension, so there's some nuance.
| bell-cot wrote:
| It's easily argued that languages are subsets of math.
| del_operator wrote:
| Left as an exercise for the reader.
| ulbu wrote:
| and both are instances / processes of symbolic composition.
| DiscourseFan wrote:
| Before Godel, yeah. Many in math departments would like to
| believe that claim but would not accept it when pressed.
| jboggan wrote:
| I have found a fairly interesting correlation between people who
| are good at learning programming and people who are good at
| English spelling bees. Something about holding a lot of anecdotes
| and esoteric rule exceptions when performing an otherwise
| algorithmic process.
| QuercusMax wrote:
| Makes sense to me; I've always been a naturally good English
| speller. My brain just knows how to store and retrieve this
| type of data, which has a high correlation with e.g. CLI
| interfaces and their idiosyncratic command structures.
| nemosaltat wrote:
| I can't decide if you've cheekily included the classic
| homophonic there-error. This isn't technically an issue with
| English spelling, but I think you intended to communicate
| that CLI interfaces have idiosyncratic command structures,
| not that they are idiosyncratic structures themselves. If
| I've been taken in by pedant-bait, I apologize.
| QuercusMax wrote:
| Lol, nope, just a case of my fingers deciding they know
| what I'm typing, or possibly autocorrect "fixing" something
| that was already correct. (I don't know why but the Android
| GBoard has been introducing crazy numbers of wrong
| homophones recently.)
| deeThrow94 wrote:
| I'm a terrible speller; it's taken me ten years of typing
| "ammend" to learn its proper spelling. It also sort of goes
| against the "programmers are lazy" meme: why memorize what a
| computer can detect and correct?
| FjordWarden wrote:
| Are you a teacher and/or someone that runs spelling bees or
| otherwise someone that has done the proper statistics to
| distinguish this correlation with generalised intelligence.
| Just wondering where you get this anecdata from?
| ducttapecrown wrote:
| They get it from being an engineer!
| senderista wrote:
| I had a CS prof who couldn't spell to save his life and caught
| a lot of good-natured flak about it from his students.
| QuercusMax wrote:
| This totally makes sense to me. I've always been a very good /
| fast reader, which has been incredibly useful in my programming
| career. I had a good SAT math score (710) but got a perfect score
| (800) on the SAT verbal (in the late 90s).
|
| I remember when I first started working on my Master's project on
| wireless sensor networks, my advisor sat me down and said "I
| think I know a good project for you. I want you to print out the
| source code for TinyOS, study it for a week, and come back to me
| when you think you know enough to make these changes." This was a
| sort of formative experience for me, and ever since when joining
| a new project I made sure to take the time to read through the
| code to understand how things fit together.
| alabastervlog wrote:
| Early, strong reader here. Off-the-charts spatial reasoning, as
| measured by tests.
|
| Terrible at math, I hate it and feel dyslexic trying to read
| most mathematical writing. I excelled at it in elementary
| school, then quickly came to feel frustratingly stupid at it as
| it became less about algorithms (more on that in a bit...) and
| all about equations and abstract stuff with unknown
| applications.
|
| However, programming was natural and easy to pick up. I've
| repeatedly had to take more time convincing myself I actually
| understand some supposedly "hard" thing, like pointers or
| recursion, than it took to learn them in the first place,
| because they were in fact very easy to understand so I kept
| second-guessing myself--"I must not get it, because that was
| easy". I've been the go-to guy for "hard" and "low-level"
| problems basically everywhere I've worked.
|
| What I've noticed is that when I _must_ read math, the only way
| I can get any headway is to turn everything into steps, through
| which some example values may pass and affect one another. I
| have to turn it all into _algorithms_. Algorithms, I can get.
| Attempts to express meaning through equations and proofs, no, I
| have to painstakingly turn every single boundary between every
| symbol into a _step_ and "walk through" it to have any hope of
| understanding it, and once I do, this new understanding only
| barely illuminates the original representation.
|
| I think programming clicked for me because, as typically
| encountered and taught, it's very heavy on algorithms and very
| light on other varieties of mathematical presentation. Plus,
| having _so very much_ more context available about _what_
| variables represent and what routines do, than a jumble of
| letters and symbols. FFS, if we say Perl is line noise, what 's
| mathematical writing? Straight gibberish from a brain-wrecked
| Cthulhu cultist? Perl's the clearest thing in the world by
| comparison!
|
| ... where I _do_ run into trouble is languages with "mathy"
| syntax, where the idiomatic style favors single-letter
| variables and accomplishing-things-by-asserting-equality. I
| can't read Haskell to save my life. Put the same supposedly-
| tricky concepts (monads, type classes) in any more-ordinary
| language, and it's easy, but when I tried to learn them using
| Haskell, I couldn't get anywhere at all. Shit, it takes me
| forever just to understand fizzbuzz-level programs written in
| Haskell.
| tapoxi wrote:
| Same but I am literally math dyslexic (formal diagnosis of
| dyscalculia).
|
| It prevented me from having a CS degree, I was unable to
| complete the math courses, but as far as actual programming
| and "software engineering" goes (design, etc) it's never
| hindered me. I can work out the logic and I let the computer
| do the math.
|
| Edit: I'm downvoted below zero for this comment. I don't know
| what people are so offended by?
| alabastervlog wrote:
| Yeah, to be clear, I'm not diagnosed with anything like
| that, and am only likening the experience to _what I
| imagine_ it 's like for dyslexics of humans language as a
| ready metaphor--meanwhile, the concepts aren't hard for me,
| like, a lot of people with no diagnosis of anything fall
| off the math-wagon right around the time operations on
| fractions are introduced, but the _concepts_ have always
| posed no trouble to me and I breezed through early
| potential trip-ups like that. The style of presentation,
| specifically, is what gives me such a hard time and is what
| makes trying to approach even fairly easy "real"
| mathematics so hard for me.
|
| > It prevented me from having a CS degree, I was unable to
| complete the math courses, but as far as actual programming
| and "software engineering" goes (design, etc) it's never
| hindered me. I can work out the logic and I let the
| computer do the math.
|
| This is what's wild to me: I have a long, successful career
| in a "STEM" field that's _allegedly_ math-heavy, while
| being practically incapable of working with math. Like, it
| 's never even been _slightly_ a problem. I can 't relate at
| all to characterizations of programming as heavy on math.
| It's never been my experience of it, and at this rate,
| probably never will be. If it were, I'd for-sure be in a
| different job.
| reverendsteveii wrote:
| Also checking in as someone with strong language skills. When I
| was a kid in school a million years ago I was actually rather
| weak in math and crapped out around trig, but excelled in
| English, Spanish and C. Now I'm a senior web dev, and I still
| can't do much math beyond the basics required for everyday
| living (though 18 years in food service means I'm really quick
| at estimating percentages to within delta)
| throwaway2037 wrote:
| > though 18 years in food service means I'm really quick at
| estimating percentages to within delta
|
| This is an interesting comment! No trolling: Were you a bread
| or pastry baker? I am curious to hear more about this
| experience.
| reverendsteveii wrote:
| When I tell you that I was a server and bartender it should
| all become very clear. Though your guess isn't far off,
| it's a skill that's served me well since I've picked up
| breadmaking as a hobby
| _dwt wrote:
| Oh wow, are you me - I had an almost identical SAT experience.
| Oddly enough compared to another poster in this thread, I love
| functional programming and Haskell and studying things like
| dependent types in a programming context has helped me patch up
| my crappy understanding of "actual math", proofs, etc.
| abraxas wrote:
| This mirrors my personal experience. My writing skills have been
| above average and my parents' presumption was that I would pursue
| some humanistic studies. I ended up studying software engineering
| and made a career out of it of almost three decades and counting.
| Meanwhile my wife who always had a "math brain" has struggled to
| learn to program at a decent competency level.
| paride5745 wrote:
| Interestingly, I became better at learning human languages after
| learning a couple of programming languages. I was good at math at
| the beginning. I guess programming kinda bridged the gap.
| p0nce wrote:
| Programming education should have more humanities such as
| writing, sociology, epistemology and design, and not nearly as
| much maths.
| Jtsummers wrote:
| How much math is in a typical CS program these days? Calc 1-3
| (maybe 3, varied by school), Linear Algebra, Statistics
| (inconsistent across programs), Discrete were pretty much it
| when I was in school 25+ years or so ago. That's only 4-6
| courses depending on the university, though some where the CS
| dept was more strongly associated with an engineering college
| might have added Diff Eq and others. (I got interested in CS
| education and reviewed a lot of curricula in the US at the
| time, this is from memory.)
|
| Some schools like MIT might have required more, but on average
| what I wrote was about it. Has it increased since then? Based
| on the new hires I've seen the last decade I'd have guessed the
| math requirements were mostly the same.
| deeThrow94 wrote:
| I'd argue none of that math is really necessary. While I have
| used most of my classes at least once, it was never a barrier
| to advancement in my career. Hell you could say the same
| thing about any of the theory. Like yea it's cool I know what
| a "merkle tree" is but it ultimately is a distraction from
| most of the skills you need to work with git.
|
| Anyway, both computation and math are grouped under "apriori"
| knowledge. Any semantic distinction is ultimately silly. But
| we could just as easily be teaching programming as a craft in
| the context of the real world--I think this is closer to how
| it's done outside the US. I am not at all convinced the
| American style is what people ought to be paying for.
| tjpnz wrote:
| When I did my CS degree in New Zealand there were just two
| mandatory maths papers - statistics and discrete
| mathematics. Would be wrong to say I didn't get anything
| from them - but I'm not fumbling around truth tables or
| poisson distributions all that often either. Everything
| else was pretty standard: intro to programming, DSA, low
| level programming, compilers and networks. What I do find
| kind of mind blowing is comparing my lectures with the ones
| from MIT and CM (on YouTube) where they can't go more than
| a few seconds without jumping into math. Ultimately I'm
| left unconvinced I was deprived of anything important as a
| typical software engineer.
| cognisent wrote:
| It was my grades in math that ultimately failed me out of my
| undergraduate CS program. My university had: Calculus 1,
| Calculus 2, Linear Algebra, Vector Geometry, Multi-Variable
| Calculus, Applied Combinatorics, Discrete Math, Differential
| Equations and maybe more that I don't remember. So many that
| CS majors could take one more math class and get a minor.
|
| Yeah, I never thought this made sense, but so many people
| did; and, I always hear people on Slashdot talking about how
| programming IS math. None of that has been my personal
| experience, and I'm coming up on 21 years as software
| engineer. Discrete was the ONLY math course that I really
| enjoyed and did well in the first time around. For me, this
| always made sense.
| alabastervlog wrote:
| 25-year career as a programmer here.
|
| I can count the times I've ever applied math past
| approximately high school algebra 1, on one hand. Period,
| in private life, in hobbies, at work. I'm not sure I've
| _ever_ used any "college level" math, for anything at all.
|
| I've, and other programmers I've known, gotten _excited_ on
| the very few occasions anything even slightly
| mathematically-tricky came up, precisely because it almost
| never happens.
| canjobear wrote:
| This makes sense for my path to math. In high school I was bad at
| math and good at learning languages. Then I started learning
| Python and realized that it was just like learning a language.
| Then at some point I realized math notation was just another
| language for expressing the kinds of things you could express in
| Python. Now I'm in a job where I do math every day and I read
| math textbooks for fun.
|
| It helped that Python was meant to resemble natural language. I
| had learned C++ and Perl before but they never stuck, because I
| never made the connection to language. Ironically, since Perl was
| designed by a linguist!
| odyssey7 wrote:
| And yet CS grad programs seem to care about only the math section
| of the GRE
| ivape wrote:
| Societally we made that association, so it's not the programs
| fault, they simply live the same world we live in.
|
| _Kurt Vonnegut: See, I came up through a chemistry department.
|
| Charlie Rose: Yeah, right.
|
| Kurt Vonnegut: And so I wrote and there was nobody there to
| tell me whether it was any good or not. I was just making my
| soul grow, writing stories._
|
| There's some stuff about his opinion on training for writing
| that could be relevant:
|
| https://charlierose.com/videos/25437
|
| I don't think it's fair to attribute anything to anything.
| Stuff comes from all over the place. In other words,
| attributing programming prowess to math was a mistake, and we
| are making the same mistake again attributing it to language.
|
| ---
|
| Just one more:
|
| _Kurt Vonnegut: --consider himself in competition with a world
| 's champion. And this is one reason good writers are unlikely
| to come from an English Department. It's because the English
| Department teaches you good taste too early._
|
| I think his main point is when we put something on a pedestal,
| we actually limit people, whether that be math or language.
| latexr wrote:
| Video isn't loading for me. But from the still frame of the
| preview, it seems to be this one on YouTube:
|
| https://www.youtube.com/watch?v=ROyr83rib3Q
| odyssey7 wrote:
| Maybe they didn't invent the problem, but the admissions
| priorities are theirs to repair
| contravariant wrote:
| Learning mathematics is likely to benefit more from whatever a
| language brain is as opposed to whatever a math brain is.
| divbzero wrote:
| So maybe it makes sense that LLMs do okay at programming even
| though they lack the ability to reason?
| 77pt77 wrote:
| They don't do okay. Quite on the contrary.
|
| My experience is that they spit out reasonably looking
| solutions but then they don't even parse/compile.
|
| They are OK to create small spinets of code and completion.
|
| Anything past that they suck.
|
| It's actually hilarious that AI "solved" bullshiting and and
| artistic fields much better and faster than say reasoning
| fields like math or programming.
|
| It's the supreme irony. Even 5 years ago the status quo was
| saying artistic fields were completely safe from the AI
| apocalypse.
| NickM wrote:
| I disagree that the current generation of AI has "solved"
| artistic fields any more than it's solved math or
| programming.
|
| Just as an LLM may be good at spitting out code that looks
| plausible but fails to work, diffusion models are good at
| spitting out art that looks shiny but is lacking in any real
| creativity or artistic expression.
| 77pt77 wrote:
| > "looks shiny but is lacking in any real creativity or
| artistic expression."
|
| My experience with that is that artistic milieus now
| sometimes even explicitly admit that the difference is who
| created the art.
|
| "Human that suffered and created something" => high quality
| art
|
| "The exact same thing but by a machine" => soulless
| claptrap
|
| It's not about the end result.
|
| A lot could be written about this but it's completely
| socially unacceptable.
|
| Whether an analogous thing will happen with beautiful
| mathematical proofs or physical theories remains to be
| seen. I for one am curious, but as far as art is concerned,
| in my view it's done.
| NickM wrote:
| Truly great art, the kind that expands the field of
| artistry and makes people think, requires creativity; if
| you make something that's just a rehashing of existing
| art, that's not truly creative, it's boring and
| derivative.
|
| This has nothing to do with whether a human or AI created
| the art, and I don't think it's controversial to say that
| AI-generated art is derivative; the models are literally
| trained to mimic existing artwork.
| 77pt77 wrote:
| Creativity in AI art production is a fancy term for
| temperature that adds no semantic value.
|
| Your "creativity" is just "high temperature" novel art
| done by the right person/entity.
|
| This was something already obvious to anyone paying
| attention. Innovation from the "wrong people" was just
| "sophomoric", derivative or another euphemism, but the
| same thing from the right person would be a work of
| genius.
| codr7 wrote:
| I would say the fact they do better than anyone could have
| imagined using just language points in the same direction, okay
| is very much up for debate imo.
|
| It's like people enjoy extrapolating their surprise when it
| comes to LLMs, and I don't think it's very helpful.
| deeThrow94 wrote:
| 100% agree, I've been saying this for years. I'm terrible with
| arithmetic but great with symbols and relations. Recursion is
| also fundamentally linguistic, and although our internal "stacks"
| for processing it naturally are quite small, language remains the
| easiest demonstration of recursion in our daily lives.
|
| Oddly, I also use spatial intuition when thinking about stuff
| like stacks and the shape of data structures.
| karmakaze wrote:
| > Recursion is also fundamentally linguistic
|
| You sure about that? How about inductive proofs?
|
| I would just say that language is more familiar to most.
| Mathematics are also languages, but more formal and foreign to
| most.
| deeThrow94 wrote:
| How do you communicate an inductive proof without language?
| Even formal symbolic logic is fundamentally linguistic.
| DiscourseFan wrote:
| Recursion itself is simply a conjecture. Nothing
| fundamental about it unless you believe Chomsky, but his is
| a speculative claim, not empirical per se.
| deeThrow94 wrote:
| I don't really know what you mean by "conjecture", but I
| thought apriori was implied by positing it as a
| linguistic construct. "Fundamental" doesn't imply
| empiricism at all. All of apriori knowledge for a
| language is a set of all sets of coherent statements: the
| outer set represents a set of implied axioms required to
| make the statements cohere. Recursion just broadens the
| complexity of the statements you can express, but it's
| fundamentally a concept that arises from language and can
| be evaluated for coherency (like all other apriori
| concepts).
|
| Edit: added a definition of apriori knowledge.
|
| Edit2: to put this another way, nobody is arguing that
| recursion doesn't exist. Or that it is empirically-
| derived. No, it's a useful construct to show certain
| relations.
|
| Edit3: added a sentence
|
| Edit4: The extent to which our own grammars are
| inherently recursive vs this being culture or technology
| is irrelevant to identifying the _concept_ of recursion
| as an apriori, linguistic concept.
|
| Edit5: i suppose you might also be referring to the idea
| that we naturally process recursion. I mean, we clearly,
| evidently do; whether or not that's inherent to being
| human is a separate question entirely. Hell in the free
| software world there's a whole recursive acronym meme
| that taps into some part of our brain and tickles it.
| umanwizard wrote:
| It kinda is empirically true that human language is
| recursive. Every human language ever discovered is
| recursive, except, supposedly, for one: Piraha. And
| Piraha has mainly been described by one researcher whose
| results are controversial.
| Jensson wrote:
| > How do you communicate an inductive proof without
| language?
|
| With that argument everything is fundamentally linguistic
| since everything is communicated using a language.
|
| Can you come up with a more reasonable argument?
| retrac wrote:
| Language has an inherently recursive structure: I saw the man
| who saw the man who saw the man who saw the man who saw the
| man who... While our brains have practical limits to how
| deeply such things can actually be nested, language has a
| recursive tree-like aspect to it.
| umanwizard wrote:
| Yes, but "language is fundamentally recursive" doesn't mean
| the same thing as "recursion is fundamentally linguistic".
| Language is just one example of a recursive structure.
| a4isms wrote:
| I am also unsure whether recursion is fundamentally
| linguistic, but I thought that "language remains the
| easiest demonstration of recursion in our daily lives" to
| be useful. If I ever write another essay about recursion,
| I'll now consider starting with a linguistic example
| before diving into recursive functions or data
| structures.
| Jensson wrote:
| Language has nothing that corresponds to a recursive
| function, so that is a bad example. You can write a
| sentence that could correspond to a call to a recursive
| function, but its not the same thing as a recursive
| function.
|
| If recursion was just writing the function 10 times like
| you did in language then people wouldn't struggle with
| it.
| deeThrow94 wrote:
| Recursive functions are just a subset of all possibly
| recursive concepts. In the case of human spoken language,
| the recursion exists in our characterization of the
| grammar. You could just as easily frame this in
| "iterative" terms just like you can make any recursive
| function iterative, but that's less convenient for
| analysis.
|
| So in this case, "recursive function" would be "clause"
| or something like that; I'm no linguist. But clauses can
| embed clauses which can embed further clauses, etc.
|
| I think _your_ usage of recursive functions is just high-
| level logic--you 're describing an inductive proof. We
| also frame a lot of our social games as recursive
| processes. But these are conscious processes that we can
| evaluate consciously; the recursion in spoken language is
| largely unconscious and very shallow.
| Jensson wrote:
| > In the case of human spoken language, the recursion
| exists in our characterization of the grammar
|
| But people are constructing sentences, not grammars. When
| you construct a grammar you can add a recursive part to
| it, that is true, just like in a programming language,
| but constructing grammars is not what people mean with
| language skills.
|
| A sentence can't be recursive since languages in
| themselves has no concept of applying a concept, for that
| you need an interpretation of the language references.
| For example, you can have a recursive function written in
| a programming language that doesn't have a recursive
| grammar, the concepts are different things.
| deeThrow94 wrote:
| There are two ways that recursion intersects with
| language that are relevant here:
|
| 1. Our spoken and especially written grammar is
| recursive. We do handle this unconsciously. This is not
| related to our ability to reason about recursion at a
| high level, and recursive grammars are not necessary to
| do so. This is not a skill in the normal sense and we
| have only (very) limited ability to improve our capacity
| to interpret deeply nested grammars. _However, this is
| still a useful illustration of what recursion IS, which
| is why I brought it up._
|
| 2. Language also introduces the ability to _semantically_
| reason about recursiveness. This is still a linguistic
| thing--you need a symbol and relations among symbols in
| order for recursion to be meaningful--but this is a
| _skill_ and is likely _very_ related to linguistic skill.
| This is the part that really helps you to program:
| ultimately, you 're just reasoning about symbols and
| looking for incoherency.
| trealira wrote:
| This is just a guess on my part, but I'd also bet that
| writing inductive proofs (or proofs in general) require more
| of the language brain than just doing math problems.
| umanwizard wrote:
| > Recursion is also fundamentally linguistic
|
| What does this mean exactly?
| hbn wrote:
| >> Recursion is also fundamentally linguistic
|
| > What does this mean exactly?
|
| What does this mean exactly?
| umanwizard wrote:
| Cute, but do you have a serious answer?
| RHSeeger wrote:
| I would argue that
|
| - Defining recursion is linguistic
|
| - Defining a function recursively is mathmatic
| deeThrow94 wrote:
| I agree that there's enormous value in carving out
| mathematics from other linguistic reasoning, but I don't
| see defining as something as mathematic rather than
| linguistic is generally useful. You use the same skills
| to look for incoherency in both situations, but human
| language is generally _expected_ to be incoherent on some
| level.
|
| Besides, a lot of what people mean when they say they're
| bad at math is that they're bad at _arithmetic_ , which
| is honestly understandable.
| deeThrow94 wrote:
| If you define recursion as a symbol referencing itself,
| either directly or indirectly, and if you define language
| as a system of relating symbols to each other, recursion
| is a linguistic concept, it is a concept that describes a
| relationship between symbols. There are good reasons to
| define each concept differently, but if you identify
| recursion empirically, recursion won't "actually" exist
| outside of the description of the process. It's our
| _characterization_ of the process that reveals the
| recursive structure, even if that characterization doesn
| 't actually exist outside of language.
| Jensson wrote:
| > If you define recursion as a symbol referencing itself,
| either directly or indirectly, and if you define language
| as a system of relating symbols to each other, recursion
| is a linguistic concept
|
| But that isn't what we mean with recursive function. We
| don't call this recursive: x = x + 1
|
| Its just incrementing x.
| deeThrow94 wrote:
| > We don't call this recursive... it's just incrementing
| x
|
| That's not a recursive _function_ as it 's written, but
| you could certainly consider it a form of symbolic
| recursion. This just isn't a very useful characterization
| in an iterative/imperative context. You _could_ frame
| incrementing as recursive, though--this is just peano
| axioms /church encoding.
| karmakaze wrote:
| This says more about our programming languages than it does about
| the brain.
|
| I've always wondered why FP isn't more popular. I concluded it's
| because most folks don't like thinking like abstract math.
| deeThrow94 wrote:
| I can't speak for other forms of FP, but symbol operators make
| communicating about haskell very annoying. Outside of that FP
| seems to be doing fine, IMO.
| karmakaze wrote:
| Try APL, you'll be begging for FP.
| deeThrow94 wrote:
| To be clear, the symbols themselves don't bother me so much
| as trying to refer to them in spoken english. I have no
| particular beef with the use of symbols in code, which can
| be quite readable.
| armchairhacker wrote:
| Good code doesn't just solve a problem, it solves it in a way
| that's readable and modular.
|
| I think the problem-solving part of coding requires math skills,
| while the organization part requires writing skills. The
| organization part affects the problem-solving part, because if
| you write messy code (that you can't reread once you forget or
| extend without rewriting) you'll quickly get overwhelmed.
|
| Writing large math proofs also requires organization skills,
| since you'll refer to earlier sections of your proof and may have
| to modify it when you encounter issues. But to me, math seems to
| have more "big steps": sudden insights that can't be derived from
| writing ("how did you discover this?"), and concepts that are
| intrinsically complicated so one can't really explain them no
| matter how well they can write. Whereas programming has more
| "small steps": even someone who's not smart (but has grit) can
| write an impressive program, if they write one component at a
| time and there aren't too many components that rely on each
| other.
| QuercusMax wrote:
| Most coding doesn't need much of any math past boolean logic
| and very basic set operations. I'm much more likely to spend my
| time studying DB and interface schemas to understand how
| something works than doing a lot of mathy fiddling. Sure, some
| people write game engines and such, but even much of 3D
| graphics doesn't need anything more complicated than the first
| half of a linear algebra course.
| ajuc wrote:
| The difficulty is in how many relationships you need to keep
| in mind, not in how hard each of them are.
|
| Just like in math.
|
| BTW relational DBs are math.
| RHSeeger wrote:
| > BTW relational DBs are math.
|
| It's funny, reading the post you're replying to, I
| basically read it as
|
| > I don't need math, I need <math, but by another name>
|
| My teenage daughter used to complain about math, and I
| spent some time trying to explain to her that we use math
| every day... EVERY day. Now, when I see her do something
| that was math (even if it's not obvious it was math), I say
| "Math... every day". I say that a lot.
|
| Also, yes, my daughter finds me annoying. But also funny;
| but likely not for the math thing.
| godelski wrote:
| > I don't need math, I need <math, but by another name>
|
| This seems to be how it always goes. I think we've
| confused a lot of people by conflating math with
| arithmetic.
|
| https://news.ycombinator.com/item?id=43872687
| Someone1234 wrote:
| Now we're getting into the "define maths" part of the
| discussion which is always where these discussions die. It
| can be argued that turning a kettle on and boiling some water
| is "maths" or it can be as narrow as "everything above basic
| arithmetic is logic, not maths."
|
| So how much of programming is maths? Before we answer that,
| let's answer: How much of maths is _actually_ maths? Because
| first we define maths, and then we define programming based
| on whatever that is, but until we have that first concrete
| definition this discussion cannot occur.
|
| I will add that "it is taught by the maths department in
| college" is a flimsy argument, and frankly one the Physics
| department in particular would mock.
| switchbak wrote:
| It's definitely a gray area. Is a DAG traversal algo "math",
| or is it more computer-sciencey? What if you do it in SQL?
| Certainly there's a mix of more or less concentrated
| logic/math vs glue code, and most of that is very dependent
| on the domain you're working in.
|
| I find this distinction useful in the abstract, that one can
| engage different parts of the brain for different components
| of development. This probably explains why a well-written DSL
| can be so powerful in the right context.
| godelski wrote:
| > Most coding doesn't need much of any math past boolean
| logic and very basic set operations
|
| Coding _IS_ math.
|
| Not "coding _uses_ math ", I mean it _is_ math.
| Mathematicians do not deal in objects, but in relations among
| objects; they are free to replace some object by others so
| long as the relations remain unchanged. Content to them is
| irrelevant; they are interested in form only. -
| Poincare[0]
|
| I don't know how you code, but I don't think I'm aware of
| code that can't be reasonably explained as forming
| relationships between objects. The face we can trace a
| program seems to necessitate this.
|
| [0]
| https://philosophy.stackexchange.com/questions/22440/what-
| di...
| analog31 wrote:
| But that doesnt necessarily mean successful programmers are
| good at conventional math. This is why certain people in
| the department are identified as "math people".
| godelski wrote:
| I'm not sure why you'd think I disagree. It seems you
| understood I argued that it's unhelpful to make the
| distinction between math and "conventional" math
|
| But I'll refer you to a longer conversation if it helps
| https://news.ycombinator.com/item?id=43872687
| xmprt wrote:
| By that same logic you could also say that language is
| math. In fact I think your quote kind of disproves your
| point because the content/state of a program is super
| important in coding more than the form.
|
| Coding used to be very close to pure math (many early
| computer science classes were taught in the Math Department
| in universities) but it has been so far abstracted from
| that to the point that it is its own thing and is as close
| to math as any other subject is.
| godelski wrote:
| > By that same logic you could also say that language is
| math
|
| Not quite, but the inverse is true. The language to math
| direction doesn't work because a lack of formalism. I can
| state incomprehensible sentences or words. (There's an
| advantage to that in some cases!) but when you do that
| with code you get errors and even you do it with math its
| just that there's no compiler or interpreter that tells
| at you
| bryanrasmussen wrote:
| >I can state incomprehensible sentences or words.
|
| since you can express paradoxes with match, perhaps not
| that different.
| godelski wrote:
| I think you misunderstand what "paradox" means. While it
| can mean "self-contradictory" it can also mean "contrary
| to one's expectation." Math uses both, but in very
| different contexts.
|
| The contradiction is used in proof formulation,
| specifically to invalidate some claim. I don't think this
| is what you're implying.
|
| The latter is what it contextually sounds like you're
| stating; things like the Banach-Tarksi Paradox. There's
| no self-contradiction in that, but it is an unexpected
| result and points to the need to refine certain things
| like the ZFC set theory.
|
| I'd also stress that there are true statements which
| cannot be proven through axiomatic systems. The Halting
| Problem is an example of what Godel proved. But that's
| not contradictory, even if unexpected or frustrating.
| potatoman22 wrote:
| I don't think that quote really supports coding and math
| being equivalent. To me, the quote provides an abstraction
| of math through a structuralist perspective. Language can
| also be viewed through this abstraction. I think coding
| could share the abstraction, but that doesn't make the
| three of these fields equivalent.
| godelski wrote:
| > coding and math being equivalent
|
| Please see lambda calculus. I mean equivalent in the way
| mathematicians do: that we can uniquely map everything
| from one set to another
| QuercusMax wrote:
| This seems like the setup to a joke about how
| mathematicians don't know how to communicate to ordinary
| folks
| godelski wrote:
| Well a lot of people did wildly misunderstand the
| Poincare quote. To me is is obviously about abstraction
| and I think this is true for any mathematician. I thought
| it would also be natural for programmers considering we
| use "object" quite similarly, if not identically. So...
| maybe it is or maybe this _is_ the joke.
| ghurtado wrote:
| > Not "coding uses math", I mean it is math
|
| > I mean equivalent in the way mathematicians do
|
| That sounds like you're backing off from your original
| claim, probably because it is impossible to defend.
|
| That you can use mathematics to describe code doesn't
| seem very different from using math to describe gravity,
| or the projected winner in an election, or how sound
| waves propagate.
|
| Isn't the primary purpose of math to describe the world
| around us?
|
| Then it shouldn't be surprising that it can also be used
| to describe programming.
|
| In the real world, however, software engineering has
| nothing to do with mathematical abstractions 99% of the
| time
| drdeca wrote:
| A programmer constructs a function from some data type to
| another while a mathematician constructs a function from
| witnesses of some proposition to another?
|
| Though interpreting a CRUD app as a theorem (or
| collection of theorems) doesn't result in an interesting
| theorem, and interpreting a typical theorem as a
| program... well, _sometimes_ the result would be a useful
| program, but often it wouldn't be.
| ndriscoll wrote:
| Interpreting a CRUD apps (or fragments of them) as
| theorems is interesting (given a programming language and
| culture that doesn't suck)! e.g. if you have a function
| `A => ZIO[Any,Nothing,B]`, then you have reasonable
| certainty that barring catastrophic events like the
| machine going OOM or encountering a hardware failure
| (essentially, things that happen outside of the
| programming model), that given an A, you can run some IO
| operation that will produce a B and will not throw an
| exception or return an error. If you have an `A => B`,
| then you know that given an A, you can make a B. Sounds
| simple enough but in practice this is _extremely_ useful!
|
| It's not the type of thing that gets mathematicians
| excited, but from an engineering perspective, such
| theorems are great. You can often blindly code your way
| through things by just following the type signatures and
| having a vague sense of what you want to accomplish.
|
| It's actually the halting problem that I find is not
| relevant to practical programming; in practice, CRUD apps
| are basically a trivial loop around a dispatcher into a
| bunch of simple functions operating on bounded data. The
| hard parts have been neatly tidied away into databases
| and operating systems (which for practical purposes, you
| can usually import as "axioms").
| godelski wrote:
| > It's not the type of thing that gets mathematicians
| excited
|
| Says who? I've certainly seen mathematicians get excited
| about these kinds of things. Frequently they study
| Programming Languages and will talk your ear off about
| Category Theory. > You can often blindly
| code your way through things by just following the type
| signatures and having a vague sense of what you want to
| accomplish.
|
| Sounds like math to me. A simple and imprecise math, but
| still math via Poincare's description. >
| in practice, CRUD apps are basically a trivial loop
| around a dispatcher into a bunch of simple functions
| operating on bounded data
|
| In common settings. But those settings also change. You
| may see those uncommon settings as not practical or
| useful but I'd say that studying those uncommon settings
| is necessary for them to become practical and useful
| (presumably with additional benefits that the current
| paradigm doesn't have).
| godelski wrote:
| > Isn't the primary purpose of math to describe the world
| around us?
|
| No, that's Physics[0]. I joke that "Physics is the subset
| of mathematics that _reflects_ the observable world. "
| This is also a jab at String Theorists[1].
|
| Physicists use math, but that doesn't mean it is math.
| It's not the only language at their disposal nor do they
| use all of math. > software engineering
| has nothing to do with mathematical abstractions 99% of
| the time
|
| I'd argue that 100% of the time it has to do with
| mathematical abstractions. Please read the Poincare quote
| again. Take a moment to digest his meaning. Determine
| what an "object" means. What he means by "[content] is
| irrelevant" and why only form matters. I'll give you a
| lead: a class object isn't the only type of object in
| programming, nor is a type object. :)
|
| [0] Technically a specific (class of) physics, but _the_
| physics that any reasonable reader knows I 'm
| referencing. But hey, I'll be a tad pedantic.
|
| [1] String Theory is untestable, therefore doesn't really
| reflect the _observable_ world. Even if all observable
| consequences could be explained through this theory it
| would still be indistinguishable from any other
| alternative theory which could do so. But we 're getting
| too meta and this joke is rarely enjoyed outside
| mathematician and physicist communities.
| ghurtado wrote:
| > No, that's Physics
|
| Going on a total tangent, if you'll forgive me, and I ask
| purely as a curious outsider: do you think math could
| have ever come into being if it weren't to fill the human
| need of describing and categorizing the world?
|
| What would have been the very beginning of math, the
| first human thought, or word or action, that could be
| called "math"? Are you able to picture this?
| godelski wrote:
| > do you think math could have ever come into being if it
| weren't to fill the human need of describing and
| categorizing the world?
|
| I'm a bit confused. What exactly is the counterfactual[0]
| here? If it is hyper-specific to categorizing and
| describing then I think yes, those creatures could still
| invent math.
|
| But my confusion is because I'm having a difficult time
| thinking where such things aren't also necessary
| consequences of just being a living being in general. I
| cannot think of a single creature that does not also have
| some world model, even if that model is very poor. My cat
| understands physics and math, even though her
| understandings are quite naive (also Wittgenstein[1] is
| quite wrong. I can understand my cat, even if not
| completely and even though she has a much harder time
| understanding me). More naive than say the Greeks, but
| they were also significantly more naive than your average
| math undergrad and I wouldn't say the Greeks "didn't do
| math".
|
| It necessitates a threshold value and I'm not sure that
| this is useful framing. At least until we have a mutual
| understanding of what threshold we're concerned with.
| Frankly, we often place these contrived
| thresholds/barriers in continuous processes. They can be
| helpful but they also lead to a lot of confusion.
| > What would have been the very beginning of math
|
| This too is hard to describe. Mull over the Poincare
| quote a bit. There's many thresholds we could pick from.
|
| I could say when the some of the Greeks got tired of
| arguing with people who were just pulling shit out of
| their asses, but that'd ignore many times other
| civilizations independently did the same.
|
| I could say when the first conscious creature arose (I
| don't know when this was). It needed to understand itself
| (an object) and its relationship to others. Other
| creatures, other things, other... objects.
|
| I could also say the first living creature. As I said
| above, even a bad world model has some understanding that
| there are objects and relationships between them.
|
| I could also say it always was. But then we get into a
| "tree falls in a forest and no one is around to hear it"
| type of thing (also with the prior one). Acoustic
| vibrations is a fine definition, but so is "what one
| hears".
|
| I'd more put the line closer to "Greeks" (and probably
| conscious). The reason for this is formalization, and I
| think this is a sufficient point where there's near
| universal agreement. In quotes because I'll accept any
| point in time that can qualify with the intended
| distinction, which is really hard to pin-point. I'm
| certainly not a historian nor remotely qualified to point
| to a reasonable time lol. But this also seems to be a
| point in history often referenced as being near "the
| birth" and frankly I'm more interested in other
| questions/topics than really getting to the bottom of
| this one. It also seems unprovable, and I'm okay with
| that. I'm not so certain it matters when that happened.
|
| To clarify, I do not think life itself necessitates this
| type of formalization though. I'm unsure what conditions
| are necessary for this to happen (as an ML researcher I
| _am_ concerned with _this_ question though), but it does
| seem the be a natural consequence of a sufficient level
| of intelligence.
|
| I'll put it this way, if we meet an alien creature I
| would be astonished if they did not have math. I have no
| reason to believe that their math would look remotely
| similar to ours, and I do think there would be
| difficulties in communicating, but if we both understand
| Poincare's meaning then it'll surely make that process
| easier.
|
| Sorry, I know that was long and probably confusing. I
| just don't have a great answer. Certainly I don't know
| the answer either. So all I can give are some of my
| thoughts.
|
| [0] https://www.inference.vc/causal-
| inference-3-counterfactuals/
|
| [1] https://existentialcomics.com/comic/245
| dayvigo wrote:
| Sure, lambda calculus is math. To call assembly or typical
| imperative C math, at least in the same sense, is a bit of
| a stretch.
| godelski wrote:
| Working with different objects doesn't make it any less
| of math. Just because you can derive calculus from set
| theory (analogous to assembly or even binary here)
| doesn't make calculus "not math".
|
| Math is about abstractions and relations. See the
| Poincare quote again.
|
| Plus, the Programming Languages people would like to have
| a word with you. Two actually: Category Theory. But
| really, if you get them started they won't shut up.
| That's either a great time or a terrible time, but I
| think for most it is the latter.
| voidspark wrote:
| > Coding IS math.
|
| Programming is an expression of logic, which is absolutely
| mathematics.
|
| But then we also have to think about naming variables and
| classes, structuring our code so that it is more readable
| by other developers, and so on. That's less about formal
| reasoning and more about communication.
|
| There is an engineering aspect to programming (prototyping,
| architecture, optimization, etc). It's a combination of
| mathematics and engineering. Software Engineering.
| xigoi wrote:
| Do you think mathematicians don't have to think about
| naming variables and structuring proofs?
| voidspark wrote:
| Of course they do, but that part is not "mathematics". It
| is communication. If they use the English language to
| write the proof that doesn't mean English is also
| mathematics.
| xigoi wrote:
| Writing proofs is just as important to mathematics as
| writing code is to programming.
| voidspark wrote:
| Yes it is important but that's not the point.
|
| Structuring sentences and naming variables so that it is
| easier for other people to understand is less about
| formal mathematical reasoning, and more about
| communication.
|
| You could name a variable x, y, or Banana, but it doesn't
| change the logic.
| godelski wrote:
| Neither is it "the point" in programming. You should be
| concerned with communication and have every right to get
| upset when someone is being needlessly convoluted but
| that's as much of a point in programming as it is in
| math, physics, or any domain.
|
| I mean the reason we get mad at this is because it is
| someone destroying "society" in some sense. Even if that
| society is your team or just the set of programmers. It
| would be a pretty dick move were I to just use a word
| that significantly diverged from conventional meaning and
| expected you to mull it over. Similarly if I drop a
| unknown out of context math equation. It would be
| meaningless.
|
| And I'm on your side, really! I strongly advocate for
| documenting. And let's be real, the conclusion of your
| argument more strongly argues for documentation than good
| variable names. Because variable names are much more
| constrained and much more easily misinterpreted
| considering how any word has multiple definitions.
| Surrounding code is often insufficient to derive
| necessary contextualization.
|
| https://news.ycombinator.com/item?id=43874738
| QuercusMax wrote:
| The presumably-mathematicians who wrote my Algorithms
| textbook (CLRS) didn't seem to think giving the variables
| in their algorithms useful names. They just use i, x,
| etc. all over the place and don't even consider giving
| things actual names. This makes the book much less
| accessible than it would be if they treated it more like
| most people write code.
| voidspark wrote:
| That's how it is in applied mathematics. That's a
| hardcore computer science textbook. If your job is
| computer science research, inventing new algorithms, that
| is the kind of book you will get used to. There are
| better options for practical learning.
| drdeca wrote:
| Picking what letters to use for what things can still be
| a struggle.
|
| Mathematicians do have to deal with difficulties in
| naming things.
| godelski wrote:
| > They just use i, x, etc. all over the place
|
| I do agree with your point btw, but I did want to note
| that there are good conventions around symbols. The
| brevity is heavily influenced by the medium. Variable
| names sucked when you had punch cards. It's still
| burdensome to write long names when using paper,
| chalkboard, whiteboard, or any system that doesn't have
| autocomplete.
|
| In general, lower case letters are used as constants,
| excluding x,y,z,t,i,j,k (sometimes u,v,w). It isn't a
| hard rule, but strong preference to begin at the
| beginning of the alphabet for these. Capital letters
| usually are held for things like Variable Sets (like
| random variables). Greek letters need context for
| constants or variables. BB and Cal typefaces for sets
| (e.g. Real Numbers, Integers). And much more.
|
| I think a lot of the difficulty in it is that these
| "rules" or patterns are generally learned through usage
| and often not explicitly stated. But learning them can
| really help read unfamiliar topics and is why "notation
| abuse" leads to confusion. But after all, math is all
| about abstraction so _technically_ any symbol will do,
| but no doubt some are ( _significantly_ ) better than
| others for communicating. There are two
| hard things in Computer Science: - Cache
| Invalidation - Naming Things - Off-by-One
| Errors
| bryanrasmussen wrote:
| >Programming is an expression of logic, which is
| absolutely mathematics.
|
| and also philosophy.
| voidspark wrote:
| As in GNU vs. Microsoft? Or something more foundational
| in logic?
| willhslade wrote:
| Classes are a platonic ideal representation of reality?
| bawolff wrote:
| > Coding IS math.
|
| > Not "coding uses math", I mean it is math.
|
| Arguably writing a novel is math, if you use the right
| definition of math. But sometimes its more helpful to use
| more informal definitions that capture what people mean
| then what is technically accurate.
| leptons wrote:
| >Coding _IS_ math.
|
| No, not always. Quite a lot of high-level code doesn't
| require any math at all. It doesn't take math to perform
| CRUD operations, which account for a lot of programming
| work. Sure, the underlying machine code is all based on
| math, but the higher level programming doesn't need to
| involve a single math equation for it to be useful. Let's
| see where the goalposts move now...
| voidspark wrote:
| All of that code is a series of logical statements and
| expressions. Mathematical logic.
|
| But the CRUD logic is so basic and boring, so obvious,
| that it doesn't require any thought.
| godelski wrote:
| > It doesn't take math to perform CRUD operation
|
| Yes it does. Just because the objects you are working
| with aren't numbers doesn't mean it isn't math. In fact,
| that's my entire point. It is why I quoted Poincare in
| the first place. He didn't say "numbers" he said
| "objects".
| hinkley wrote:
| Boolean logic and set theory are _very_ important to computer
| logic, and graph theory is not far behind. But you can also
| learn Boolean logic in the philosophy dept. Which I
| unfortunately learned the hard way by taking Philosophy 101
| after already having the CS class on logic. Took a semester
| to go over what we did for the midterm. Got a lot of naps
| that semester.
| yubblegum wrote:
| Probability is math and there you have caching, hashing, etc.
| Then there are permutations, combinations, etc. with a lot of
| usecases in software. Distributing graphs across nodes? More
| math.
| NegativeLatency wrote:
| State machines too
| zahlman wrote:
| > Whereas programming has more "small steps": even someone
| who's not smart (but has grit) can write an impressive program,
| if they write one component at a time and there aren't too many
| components that rely on each other.
|
| ... In my experience, learning to write one component at a time
| (and try the code, and make sure it works before proceeding) is
| itself a skill that many struggle to develop. Similarly for
| avoiding unnecessary dependencies between components. Oh, and
| also being able to analyze the problem and identify separable
| components.
|
| One of the most frustrating things about teaching programming,
| for me, is the constant insistence from other teachers that you
| have to maintain an "absolutely everyone can learn to program"
| attitude at all times. Many people who start to learn
| programming have misguided or confused reasons for doing so and
| - to say the least - could make much more effective use of
| their time developing other skills. (It's not a question of
| elitism; I'd surely flounder at some tasks that others find
| natural.)
| tetha wrote:
| I dislike "everyone can learn to program" because it
| conflates many, many levels of skills and expertise.
|
| I very much think many people could learn the more advanced
| Excel Formulas, Power Automate and even simple
| Bash/PowerShell scripting to make their work more effective.
| I've met quite a few folks who had been intimidated out of
| trying who could do it.
|
| On the other hand, how many people on this site could
| bootstrap a linux kernel on either very new or very old
| hardware? I know there are some, but they are certainly not
| the majority. I certainly won't be the first person to get
| linux and doom to run on a quantum computer.
|
| But that is similar to other professions. Everyone with a
| largely functioning body can learn to turn a few planks and
| some metal parts into a functional shed door with some basic
| tools or to put up a decent brick wall that won't topple over
| in a month.
|
| That doesn't mean everyone is qualified to pour concrete for
| a dam or a bridge foundation, or to re-do some historical
| work in original style.
| switchbak wrote:
| > Everyone with a largely functioning body can learn to
| turn a few planks and some metal parts into a functional
| shed door
|
| It's shocking how little physical and spatial ability some
| people have - that is definitely not true. Sometimes it
| might be a personal discount or lack of confidence, but
| this remains true regardless of the cause.
| hirvi74 wrote:
| > "everyone can learn to program"
|
| > That doesn't mean everyone is qualified to pour concrete
| for a dam or a bridge foundation, or to re-do some
| historical work in original style.
|
| Exactly!
|
| I think statements like that are more concerned with
| philosophy than reality. Any discussion surrounding topics
| like this typically ends up being a discussion around
| definitions.
|
| I believe the vast majority of human beings are capable of
| learning how to program in the most extreme elementary
| sense of the word. As in, outside of severe disabilities or
| complete and utter inaccessibility to circumstances in
| which one could learn program, then I think the remaining
| population of people _could_ learn to program to _some
| degree._ Obviously, not everyone _will_ learn to program
| due to a near infinite number of reasons.
|
| I would argue it's like music. Anyone can make 'music.'
| Just make a sound -- any sound. The difference between
| noise and music is subjective. I would not argue that
| everyone could be the next Lovelace, Turning, Ritchie,
| Thompson, Torvalds, etc..
|
| Now, for my jaded opinion, I think a lot of the "everyone
| can learn to program" talk does not come from a place of
| desire to share the gift of knowledge and joy of
| programming. I think it's more of a subtle way to encourage
| people to go into programming so that they may be hired by
| mega corps. In order to keep the Capitalist machine
| running. It's like the National Hockey League's slogan,
| "Hockey is for everyone." That is just a fancy way of
| saying, "everyone's money can be spent on the NHL."
| switchbak wrote:
| I mean - not "absolutely everyone" can learn to do just about
| anything. There's a wide distribution of intelligence,
| aptitude/ability and desire amongst folks amongst all of the
| various things that you might learn (not to mention learning
| disabilities, impairments, etc).
|
| I might be capable of learning advanced accounting, but that
| sounds like torture to me and I'll be damned if I'll ever
| take that on! I'm sure programming feels like that to a wide
| variety of people, and I don't see any need for us to try to
| pretend otherwise - outside of a bizarre ideological desire
| for equivalent outcomes from disparate groups.
| HarHarVeryFunny wrote:
| I guess it depends on what is meant by "everyone can learn to
| program". It's a bit like saying everyone can learn to write,
| or to do math, or play tennis, etc.
|
| I'm sure everyone is capable of learning some basic level of
| programming, just as they are able to learn a basic (high
| school) level of any subject. However, not everyone is going
| to have the aptitude to take that to an advanced professional
| level, however hard they try. We're not all cut out to be
| artists, or writers, or doctors, or scientists, or
| developers, etc.
| HideousKojima wrote:
| >"absolutely everyone can learn to program"
|
| Personally I've always considered a solid grasp of algebra to
| be the minimum bar for being able to program, at least for
| anything that isn't utterly trivial. Being able to take a
| word problem and turn it into a system of equations and solve
| it is a pretty close analog to being able to take some sort
| of problem or business requirement and turn it into code.
|
| And the sad truth is that a huge percentage of the population
| struggle with just arithmetic, let alone algebra.
| magicalhippo wrote:
| I recall reading about a professor at uni which carefully
| designed his tests throughout the year so he could determine
| if a student had grasped a certain programming topic. He also
| tracked effort, through handins and such.
|
| After collecting data for a few semesters he concluded his
| students could be clearly divided into three categories:
| those who just "got" programming, those who understood it
| after working hard, and a small group that just didn't grasp
| regardless of effort.
| ivape wrote:
| What do you mean by math? Abstractions or calculations? The
| effort it takes me to do long division in my head matches the
| effort it takes me to follow some obtuse spaghetti code. See, I
| can get good and fast at long division in my head, but I may
| never understand the fundamental theorem of calculus. Some
| people are really good at mucking around garbage code (they
| have no choice, they get paid to), but what part of programming
| did they get good at? Obviously, some part of it, but nothing
| to write home about. Whenever I sense that I'm just getting
| practice at doing the equivalent of mental long division at
| work, that's when I always seek a new job. No amount of money
| is worth falling behind like that.
| armchairhacker wrote:
| I'm thinking of "computation", "intuition", and
| "organization".
|
| Computation is following an algorithm. e.g. long division or
| computing a derivative.
|
| Intuition, AKA brilliance, is finding a non-obvious solution.
| Think "solving an NP problem without brute force"*. e.g.
| solving an integral (in a form that hasn't already been
| memorized) or discovering an interesting proof.
|
| Organization is recording information in a way that a) is
| easy for you to recall later on (and get insights from) and
| b) is digestible by others**. e.g. explaining how to compute
| a derivative, solve an integral, or anything else.
|
| Math, programming, and writing each require all skills. The
| kind of math taught in school (e.g. long division) and your
| boring jobs are primarily computation. I believe advanced
| math (e.g. calculus) is primarily intuition; it requires some
| organization because big theories are broken into smaller
| steps, but seems to mostly involve smart people "banging
| their head against the wall" to solve problems that are still
| quite unclear***. Programming is primarily organization. It
| requires some intuition (I think this is why some people
| seemingly can't learn to code), but in contrast to math, most
| programs can be broken into many relatively-simple features.
| IMO implementing all the features and interactions between
| them without creating a buggy, verbose, and unmaintainable
| codebase is programming's real challenge. Writing is also
| primarily organization, but finding interesting ideas
| requires intuition, and worldbuilding requires computation
| (even in fiction, there must be some coherence or people
| won't like your work).
|
| > Some people are really good at mucking around garbage code
| (they have no choice, they get paid to), but what part of
| programming did they get good at? Obviously, some part of it,
| but nothing to write home about.
|
| I agree that work you find boring should be avoided, and I
| also try to avoid working with it. But some people really
| seem to like working on esoteric code, and I think there are
| some skills (beyond computation) developed from it, that even
| apply when working with good code. Building a mental model of
| a spaghetti codebase involves organization, and if the
| codebase uses "genius hacks", intuition. Moreover, the same
| techniques to discern that two code segments in completely
| different locations are tightly coupled, may also discern
| that two seemingly-separate ideas have some connection,
| leading to an "intuitive" discovery. There's an MIT lecture
| somewhere that describes how a smart student found
| interesting work in a factory, and I think ended up
| optimizing the factory; the lesson was that you can gain some
| amount of knowledge and growth from pretty much any
| experience, and sometimes there's a lot of opportunity where
| you'd least expect it.
|
| * Or maybe it is just brute force but people with this skill
| ("geniuses") do it very fast.
|
| ** These are kind of two separate skills but they're similar.
| Moreover, b) is more important because it's necessary for
| problems too large for one person to solve, and it implies
| a).
|
| *** And whatever method solves these problems doesn't seem to
| be simplification, because many theories and proofs were
| initially written down very obtuse, then simplified later.
| hinkley wrote:
| The problem with doing things right the first time is some
| people look at it and just say, "well of course it should work
| that way." Yes but did you think of doing it that way?
| jauntywundrkind wrote:
| Its very rare imo that computational problems emerge fully
| formed & ready to be tackled like proofs.
|
| Usually even deciding what the problem is is in part an art,
| requires an act of narrativization, to shape and form concepts
| of origin, movement, and destination.
|
| A good problem solver has a very wide range of abstract ideas
| and concepts and concrete tools they can use to model and
| explain problem, solution, & destination. Sometimes raw
| computational intellect can arrive at stunningly good
| proposals, can see brilliant paths through. But more often, my
| gut tells me it's about having a breadth of exposure, to
| different techniques and tools, and being someone who can both
| see a vast number of ways to tackle a situation, and being able
| to see tradeoffs in approaches, being able to weight long and
| short term impacts.
| throwaway2037 wrote:
| > Its very rare imo that computational problems emerge fully
| formed & ready to be tackled like proofs.
|
| In my generation, the perfect example is Python's Timsort. It
| is an modest improvement upon prior sorting algorithms, but
| it has come to dominate. And, frankly, in terms of computer
| science history, it was discovered very late. The paper was
| written in 1993, but the first major, high-impact open source
| implementation was not written until 2003. Ref:
| https://en.wikipedia.org/wiki/Timsort
|
| It has been reimplemented in a wide variety of languages
| today. I look forward to the next iteration: WolfgangSort or
| FatimaSort or XiaomiSort or whatever.
| owl_vision wrote:
| +1. Excellent description of how the skills relate. I often
| read, listen to poetry when stuck in a math or programming
| problem. ... or just talk to the rubber duck. :-)
| leptons wrote:
| >Good code
|
| "Good code" is very subjective. Even readability and modularity
| can be taken too far.
| walleeee wrote:
| Regarding mathematical
|
| > concepts that are intrinsically complicated,
|
| I'm not a mathematician, but I figure mathematicians aim for
| clean, composable abstractions the same way programmers do.
| Something complicated, not just complex in its interactions
| with other things, seems more useful as a bespoke tool (e.g. in
| a proof) than as a general purpose object?
|
| > Whereas programming has more "small steps": even someone
| who's not smart (but has grit) can write an impressive program,
| if they write one component at a time and there aren't too many
| components that rely on each other.
|
| This is well put. I often wonder if a merely average working
| memory might be a benefit to (or at least may place a lower
| bound on the output quality of) a programmer tasked with
| writing maintainable code. You cannot possibly deliver working
| spaghetti if you can't recall what you wrote three minutes ago.
|
| This is a baldly self-serving hypothesis.
| MaxBarraclough wrote:
| > You cannot possibly write or deliver spaghetti, working or
| otherwise, if you're not capable of remembering what you
| wrote three minutes ago.
|
| Forth programmers make a similar point. Forth is stack based;
| you typically use stack operations rather than local
| variables. This is ok when your 'words' (analogous to
| functions/procedures) have short and simple definitions, but
| code can quickly become unreadable if they don't. In this
| way, the language strongly nudges the programmer toward
| developing composable words with simple definitions.
|
| (Of course, Forth sees little use today, and it hasn't won
| over the masses with its approach, but the broader point
| stands.)
| flkiwi wrote:
| I tell people all the time that the single greatest tool an
| aspiring lawyer can have is a background with programming, as the
| analytical and algorithmic mindset is FAR more important than
| being "good at public speaking" or any of the other base skills
| often cited as desirable for lawyers. I've also said the _second_
| greatest tool an aspiring lawyer can have (in my personal
| opinion) is a significant background in foreign language
| learning, as that is a skill that is closely related to
| programming, though a bit abstracted and coming from a different
| angle. I 'm going to see if I can use this article to support
| that.
| rowanG077 wrote:
| The article is extremely misleading, I dare even say almost
| malignant.
|
| The study itself claims:
|
| - fluid reasoning and working-memory capacity explained 34%
|
| - language aptitude (17%)
|
| - resting-state EEG power in beta and low-gamma bands (10%)
|
| - numeracy (2%)
|
| They take math skills to equal numeracy. The study itself implies
| this too. I disagree on a fundamental level with that. Math
| skills align much more closely to fluid reasoning than to
| numeracy.
| del_operator wrote:
| This is largely true, but also, the dynamic shifts depending on
| how learners engage with peers as they move from understanding to
| synthesis.
|
| In small peer groups ("pods") that debug and learn together,
| communication becomes a core skill--and that can actually change
| how math skills are applied and developed. Language doesn't just
| support learning; it reshapes the process.
| matt3210 wrote:
| You guys have more than one brain?
| casey2 wrote:
| For learning a programming environment*
|
| This has the effect of making programming easier, but don't
| confuse it.
| scotty79 wrote:
| I feel like I'm using language part of the brain for almost
| everything. My performance at any task (except purely manual and
| automatic ones) drops to 0-15% when I can hear someone talking.
| Alternatively if I manage to focus on the task I immediately stop
| understanding what's being said.
| shadowgovt wrote:
| You know where we got a lot of really solid programmers before we
| had formal computer science degrees?
|
| English majors.
| ulrischa wrote:
| The best programmers were good in Latin at school
| roopekangas wrote:
| If you grew up where it was in the curriculum ;)
| eximius wrote:
| I'm very curious what this math pretest looked like, whether it
| was "proper" high level math or, like, computing some trig
| problems. Folks who have aptitude with algebra or number theory
| or topology, I'd expect that to be correlated, but not to rote
| computational math.
| gowld wrote:
| It was arithmetic. The study is n=42 p-hacking nothingness, and
| then a highly misleading misinterpretation by the junk popsci
| website.
| mtmickush wrote:
| I don't find this too surprising. The study itself was primarily
| just testing a students ability to identify syntax and remember
| what various functions do. I wouldn't expect math proficiency to
| help much in this area vs I would very much expect language to.
|
| It'd be interesting to see correlations (language brain vs math
| brain) for how easy or hard it is for people to solve new
| problems with language after they already know the basics.
| adamc wrote:
| Strangely (I was a math major as an undergrad), I never doubted
| this. It just feels more like writing.
| makk wrote:
| Those long held assumptions were held by people who aren't
| professional programmers, right?
|
| Because, if you do what we do, it's obvious that language > math
| for most of this stuff.
|
| I'd go so far as to say that music > math for programming.
| shayneo wrote:
| As a self taught programmer with a Communication Studies degree,
| this definitely resonates. The ability to articulate the problem
| in code is kind of the starting point for most productive
| development work.
| 77pt77 wrote:
| Any experienced programmer will be able to tell what kind of
| person another programmer is just by the way they write their
| code.
|
| Code written by programmers with humanities backgrounds is
| easily identifiable as being of bad quality.
|
| Kind of like vibe coding meets programming by accident, before
| vibe coding was really a term.
|
| It's a faux pas to even mention this IRL, but good coders know
| what's up.
|
| Those "coders" usually get promoted to people managers, which
| is usually what they want anyway because their self-worth
| relies on abusing others to mitigate the correct self-
| perception they have of being "inferior".
|
| The problem is, things need to be solved and vibe+accident
| programming can only go so far.
|
| But fear not, they can always scapegoat whoever solves the
| problems, because if they were not to blame, how could they
| know what was up or even feel the need to correct it?
| daedrdev wrote:
| This is a high level of bias and generalization about an
| enormous group of people with varied backgrounds and
| experiences, not to mention selection bias as you don't know
| many good coders backgrounds who may in fact be from
| humanities.
|
| Even if many of the bad coders are those who were in
| humanities and don't have coding experience because they just
| entered the field (because once you get it you are no longer
| a humanities background)
| taeric wrote:
| I'm strong in the belief that kids having lower reading scores is
| directly related to lower math scores. Learning to decode words
| is directly translatable to learning to decode equations. Down to
| some of my favorite math passages would include how to read
| something as it introduces a symbol or other construct.
| linguae wrote:
| (2020)
|
| As a new computer science professor at a community college, this
| is a timely article for me that may end up influencing how I
| teach, especially my introductory programming course as well as
| my discrete mathematics course.
| darkerside wrote:
| Couldn't this difference be explained by the fact that the
| lessons were in English? If your language skills are poor, it's
| going to be hard to read the directions. You'll definitely be
| _slower_ , which was the primary finding around language.
|
| That side, I wonder if early programming was much more math
| heavy, and higher level languages have successively reduced that
| need over time.
| jll29 wrote:
| There is no such thing as a "language brain" or a "math brain"
| unless you show experimentally that those bunch of neurons can be
| grouped into two non-overlapping regions dedicated to "language"
| and "mathematics".
|
| Mathematics itself is a human-made formal language that can be
| bootstrapped from definitions and axioms of logics and set
| theory, which have to be given in human language first.
|
| Experienced mathematicians read formal theorems written in Greek
| letters off their blackboards as if it was normal English,
| suggesting they think about it like it was just normal English.
| This is not to say they cannot also view in front of their mental
| eye visual representations isomorphic with that language if they
| chose to.
| reverendsteveii wrote:
| Dyscalculia, dysgraphia and dyslexia can all present
| independent of one another, heavily implying that different
| processes govern math, reading and writing. To call them
| "language brain" and "math brain" is simply a useful fiction,
| whether they're actually separate piles of meat is irrelevant.
| danielmarkbruce wrote:
| math != calculation.
|
| It's an actively stupid fiction for people who don't
| understand what math is.
| johnmaguire wrote:
| > It's an actively stupid fiction for people who don't
| understand what math is.
|
| This comes off quite judgmental, and doesn't help me
| understand your actual point. Could you elaborate on the
| differences, as you see them?
| tylerhou wrote:
| In higher math (typically 2nd year and onwards at US
| universities) there is fairly little explicit
| calculation, and math is more about studying the (formal)
| relationships between mathematical objects. For example,
| we can abstractly define topological spaces and
| abstractly define algebraic "groups," and algebraic
| topology studies the relationships between topological
| spaces and algebraic groups. This is somewhat like having
| a "data type" defined by some library, examining ways it
| can be transformed into data types defined by some other
| library, and studying what invariants hold under those
| transformations.
|
| In some sense, an undergraduate math education is akin to
| learning the "standard library" (in the software
| engineering sense) of higher mathematics. Most courses
| start with basic abstractions of some mathematical object
| and repeatedly construct more and more abstractions on
| top of those. The structure of those abstractions is
| similar to how you might build a library. A professional
| mathematician is expected to be fluent in the
| mathematical standard library, just like how you might
| expect an experienced software engineer to be fluent in
| Python's standard library.
|
| If this analogy is true, people who can learn Python
| relatively quickly might be able to also learn higher
| mathematics relatively quickly under the right
| pedagogical environment.
| ndriscoll wrote:
| One personal project I'd love to find the time for is to
| try to write out a sequence of math notes that
| essentially builds up a Lean repository, intentionally
| "refactoring" as it goes along. So you do some explicit
| coordinate vector or system-of-equation calculations with
| both real and complex numbers, eventually define
| interfaces for fields and vectors, do your linear algebra
| proofs, realize that linear endomorphisms are almost-but-
| not-quite a field, so define rings and go back and
| refactor your field proofs to use them, realize vector
| spaces are "K[T] not-quite vector spaces", define
| modules, refactor your vector space code, etc.
|
| This was kind of how math classes worked, but without
| that explicit phrasing. It would certainly make the
| analogy between the two activities more obvious. I also
| wonder whether people would have less trouble with
| quantifiers if they were phrased in programming terms: a
| proof of "forall x, p(x)" is a function x=>p(x), and a
| proof of "there exists x such that p(x)" is a pair (x,
| p(x)). e.g.
|
| Continuity: (epsilon: R, h: epsilon>0, x_0: R) => (delta:
| R, x: R, h2: d(x,x_0) < delta => d(f(x),f(x_0)) <
| epsilon)
|
| Uniform continuity: (epsilon: R, h: epsilon>0) => (delta:
| R, h2: (x: R, x_0: R, h3: d(x,x_0) < delta =>
| d(f(x),f(x_0)) < epsilon))
|
| So when you're trying to figure out how to do the proof,
| it's clear what kind of type you need to return and your
| IDE could help you with autocomplete based on type
| inference.
| danielmarkbruce wrote:
| It is hugely judgmental of people making claims and doing
| studies who don't understand that elementary arithmetic
| is a tiny part of math. I judge them. It's ok to be
| ignorant of a topic, but they shouldn't discuss it or
| make suggestions.
|
| The comment below/above sort of explains it, except I'd
| argue covering it starts/can start/should start much
| earlier than at university. Basically, the vast majority
| of most branches of math, especially pure math, involves
| very little in the way of calculation. And the way math
| gets taught (and stupid claims about "math brain") means
| that many kids who aren't in the top few % of "doing
| calculation" never get to do the classes where it's less
| important.
|
| LLMs, trained on words/tokens and symbols and logical
| combinations of them, are proving to be good at math, and
| bad at calculation/arithmetic. If an LLM went to school
| we'd never let it train on real math tokens. It would get
| shoved in the corner as a "model bad at math" because it
| was a "model bad at arithmetic".
| karmakaze wrote:
| The other thing I don't like about this framing is the implicit
| false dichotomy. The best programmers I've met often have
| strong language and math skills.
|
| Poetry is the art of giving different names to the same thing.
| Mathematics is the art of giving the same name to different
| things. (Henri Poincare)
|
| It's basically being good at "naming things", in particular
| abstractions.
| pier25 wrote:
| "naming things" is really about "recognizing things" and/or
| "understanding things". It much deeper than just language.
| FilosofumRex wrote:
| Yes, exactly, just watch how little babies recognize and
| communicate about hundreds of objects, emotions and
| situations before they're able to utter momma or dadda.
| hirvi74 wrote:
| > Poetry is the art of giving different names to the same
| thing.
|
| Did Robert Frost say something like, "all language is
| poetry?" A chair is the term I learned to describe the object
| I am currently sitting on while typing this comment. Germans
| might call the same object a 'Stuhl', the French might call
| it a 'chaise', etc.. My point being that the object isn't
| technically any of those words, but rather those words
| symbolically map to that object.
| scripturial wrote:
| > There is no such thing as a "language brain" or a "math
| brain"
|
| Tell that to the people who designed the study, the people that
| approved the study, and the people that funded the study.
|
| At the end of the day, the study set out certain criteria for
| assessing certain skill types/competencies and divided the
| people by those well defined criteria. I think it's pretty hard
| to argue against the idea that people might have at least some
| level of aptitude for different types of activity and skill.
| chrisfosterelli wrote:
| I think its worth noting the study did not actually make this
| claim, the news article did. I suspect the study authors
| would agree the term "language brain" or "math brain" is
| misleading.
| danielmarkbruce wrote:
| The types of people who do these types of experiments _almost
| never_ have a real understanding of math. They equate
| arithmetic with math.
| buffalobuffalo wrote:
| Yeah, the brain is a sparse MoE. There is a lot of overlap in
| the hardware of the "language brain" and the "math brain". That
| being said, I can discuss software concepts in a foreign
| language, but struggle with basic arithmetic in anything but
| English. So while the hardware might be the same, the
| virtualization layer that sits on top might have some kind of
| compartmentalization.
| impossiblefork wrote:
| Yes, but there is a visual/spatial ability and a
| verbal/mathematical, and you can do maths with the
| visual/spatial ability or with the verbal/mathematical ability.
|
| It leads to different styles of thinking and problem solving.
| pier25 wrote:
| "language brain" or "math brain" are obviously non-scientific
| terms.
|
| I think most people would agree that problem solving,
| expressing ideas verbally, and expressing ideas in math are
| very different skills.
| twodave wrote:
| I wanted to say something like this, but in the opposite
| direction. I think perhaps more so there's a difference between
| abstract and concrete thinking? But tests like the SAT in my
| experience (which is now 20 years out of date) treat the verbal
| section as more of a set of abstractions (analogies, for
| instance) and the math the same. I got almost equal marks in
| each (660 verbal/650 math) on my only try.
| perrygeo wrote:
| What about Wernicke's area and Broca's area? If damaged they
| produce causal changes to our use and processing of language. I
| agree it's not as simple "language brain" but there _are_
| physical structures in the brain that are directly related to
| language.
| CobrastanJorji wrote:
| Makes sense to me. "Language" is an oft-forgotten part of
| "programming language." I'm sure math skills probably would
| better predict, say, ability to do well in advanced theory
| classes, but programming doesn't require that. It DOES require
| learning a specialized language.
| RHSeeger wrote:
| > It DOES require learning a specialized language.
|
| Which... is what math is, too.
| qwerty456127 wrote:
| This sounds obvious. To me it seems the majority of developers
| hardly use any math.
| fjfaase wrote:
| I did not read any mentioning of testing non-verbal IQ. Many math
| skills also depend on verbal IQ. Verbal IQ correlates strongly
| with academic performance and probably also with learning new
| programming languages. I personally have a much stronger non-
| verbal IQ than a verbal IQ. Often when I think about algorithms,
| it is all about abstract blocks moving around even before I have
| written a single line of code. I usually see multiple solutions
| in my head and often find myself being stuck because I cannot
| make a choice. I always takes some effort to code the solutions
| and weed out stupid bugs due to spelling errors mixing up
| varisbles, but then things work correctly.
| hunkins wrote:
| Interesting. I grew up most of my life overseas learning various
| different languages. Anecdotal, but most of the best coders I
| know are talented writers and often are multi-lingual.
| janalsncm wrote:
| > language ability and problem solving skills
|
| First red flag is here. The title rewrote this to be language
| only. That problem solving skills are relevant is pretty obvious,
| but language less so.
|
| I've been programming for most of my life and I don't consider
| myself a very good speaker. My language skills are passable. And
| learning new languages? Forget it. So I'm skeptical. Let's look
| at the study.
|
| First of all, "math" becomes "numeracy". But I think programming
| is probably closer to algebra, but even then it's less strict and
| easier to debug.
|
| > Assessed using a Rasch-Based Nuemracy Scale which was created
| by evaluating 18 numeracy questions across multiple measures and
| determining the 8 most predictive items.
|
| Also, the whole thing is 5 years old now.
| deeThrow94 wrote:
| > That problem solving skills are relevant is pretty obvious,
| but language less so.
|
| To me, problem solving ability is precisely the same as the
| ability to articulate the problem and a solution. I don't see a
| major difference.
|
| If you can solve a problem but you can't articulate what the
| problem is or why the solution will address it, I wouldn't call
| you a good problem solver. If you can articulate the problem
| well but not come up with a solution, you're already doing
| better than a lot of programmers in the world, and I'd probably
| prefer working with you over someone who presents the solution
| without "showing their work".
|
| In fact, what is problem solving without such articulation?
| It's hard to even grasp what the skill means in a raw sense.
| Arguably creativity in this context is just the ability to
| reframe a problem in a more approachable manner. Many times, if
| not most times, such framing implies some obvious solution or
| sets of solutions with clear tradeoffs.
| janalsncm wrote:
| There are different ways of solving a problem though, some
| which require more critical thinking than others. Trial and
| error (in industry you can sound fancy by calling it
| "choosing parameters empirically") requires no understanding
| of the underlying process, only the ability to measure the
| outcome.
|
| If you're debugging, you can get by for a long time by trying
| things until the compiler shuts up. It's not efficient or
| good but people do it.
| deeThrow94 wrote:
| That's fair. I agree that there's more to problem solving
| than just linguistic ability, so I rescind my claim that
| they're indistinguishable, but I still think there's a deep
| relationship between the two.
|
| I have a very difficult time trying to extract the
| difference between "linguistic ability" and "critical
| thinking", though:
|
| 1. The core difference between "critical thinking" and
| "uncritical thinking" is the ability to discern incoherency
| from coherency.
|
| 2. Coherency is evaluated at the linguistic level: do the
| terms bind in meaningful ways to the problem? Do any
| statements contradict each other?
|
| 3. The remaining aspect is "creativity": can you come up
| with novel ways of approaching the problem? This is the
| hardest to tie to linguistic ability because it sort of
| exists outside our ability to operate within an agreed
| context.
|
| So while I agree these are distinct skills, I still have
| difficulty identifying what remains in "critical thinking"
| after linguistic ability is addressed.
| karmakaze wrote:
| The article is from 2020. Recent LLM developments show that a
| model trained on math and code is better at coding than one
| that's trained on language and code without math.
| gitremote wrote:
| Absolutely. That's why people can be perfectly fluent in a
| programming language and a high performer at work, but fail an
| interview algorithms/leetcode problem in that language, as
| algorithms are math problems that programmers almost never see at
| work.
|
| The recruiter labels an algorithm problem as a "coding" test, but
| it's a math test, and concludes that most applicants who claim to
| be fluent in a programming language can't code and must have lied
| on their resume.
|
| For context, I don't mind algorithm tests, but I strongly
| disagree with recruiters presenting it as a coding assessment.
| qwertytyyuu wrote:
| Computer science definitely requires math brain
| _ache_ wrote:
| Yes, nobody doubt about that. The article is about programming,
| which, even if it requires some math skills, require more an
| ability to deal with a language system.
| _ache_ wrote:
| That is now obvious, any LLM is able to code, and is usually very
| bad at math. This alone proves that a good part of programming is
| linked to language not math.
|
| Even if CS is sort of applied mathematics.
| godelski wrote:
| It think this is silly on multiple accounts. I'll claim that
| there's not real thing such as a "language brain" or "math
| brain." I'll also claim that most people don't know what math is,
| and that their evidence supports a "math brain".
|
| Math isn't about calculations/computations, it is about patterns.
| You get to algebra and think "what are these letters doing in my
| math" but once you get further you think "what are these numbers
| doing in my math?"
|
| A great tragedy we have in math education is that we focus so
| much on calculation. There's tons of useful subjects that are
| only taught once people get to an undergraduate math degree or
| grad school despite being understandable by children. The basics
| of things like group theory, combinatorics, graphs, set theory,
| category theory, etc. All of these also have herculean levels of
| depth, but there's plenty of things that formalize our way of
| thinking yet are easily understandable by children. If you want
| to see an example, I recommend Visual Group Theory[0]. Math is
| all about abstraction and for some reason we reserve that till
| "late in the game". But I can certainly say that getting this
| stuff accelerates learning and has a profound effect on the way I
| think. Though an important component of that is ensuring that you
| really take to heart the abstraction, not getting in your own way
| by thinking these tools only apply in very specific applications.
| A lot of people struggle with word problems, but even though they
| might involve silly situations like having a cousin named
| Throckmorton or him wanting to buy 500 watermelons, they really
| are part of that connection from math to reality.
|
| This is why "advanced" math accelerating my learning, because
| that "level" of math is about teaching you abstractions. Ways to
| think. These are tremendously helpful even if you do not end up
| writing down equations. Because, math isn't really about writing
| down equations. But we do it because it sure helps, especially
| when shit gets complicated.
|
| [0] https://www.youtube.com/watch?v=UwTQdOop-
| nU&list=PLwV-9DG53N...
| danielmarkbruce wrote:
| 100%. I have 2 kids and what they learn at school is absurd...
| I have to put them in an extra class outside school where they
| learn a lot of the more abstract stuff, albeit as you say at a
| level which makes sense (not too deep).
| godelski wrote:
| Yeah, certainly we'd need to adapt classes to match their
| level, but we've tried before[0]. While it "failed" it also
| seemed pretty successful, especially in France and the USSR.
|
| I mean is it any surprise kids get bored in math? They spend
| years learning the same thing. You spend years learning
| addition and multiplication (subtraction and division are the
| same operators). I sure as hell hated math as a kid.
| Especially doesn't help that it is always taught by someone
| who's also dispassionate about the subject. You really can
| get a process going where most middle schoolers are doing
| calculus and linear algebra (and advance ones are doing this
| in elementary). It isn't as far fetched as many would
| believe.
|
| [0] https://en.wikipedia.org/wiki/New_Math
| Nevermark wrote:
| > I mean is it any surprise kids get bored in math?
|
| Indeed. Kids did not evolve to learn things because they
| would be useful years down the road. But they did evolve to
| inhale knowledge at very high rates wherever it extends
| their capabilities in the moment.
|
| My take on this is that math should be tied to kids
| crafting, experimenting, and learned directly in the
| context of its fun and creative uses.
|
| Geometry screams out to be developed within a context of
| design, crafting, art and physical puzzles. Algebra,
| trigonometry, calculus ... they all have direct (and fun)
| uses, especially at the introduction stage.
|
| The availability for graphics software, sim worlds, 3D
| printing, etc. should make math, from the simplest to most
| advanced, more fun and immediately applicable than ever.
|
| Boredom with math is a failure to design education for
| human beings.
|
| (Then there is the worst crime of all - moving kids through
| math in cohorts, pushing individuals both faster and slower
| than they are able to absorb it. Profound failure by
| design.)
| godelski wrote:
| In general I agree but > Indeed. Kids did
| not evolve to learn things because they would be useful
| years down the road. But they did evolve to inhale
| knowledge at very high rates wherever it extends their
| capabilities in the moment.
|
| I strongly disagree with this. Children play. Most
| animals play. It is not hard to see how the skills
| learned through play lead to future utility despite
| potentially none at the time. We invent new games, new
| rules, and constantly imagine new worlds. The skills
| gained from these often have no utility beyond that that
| is self-constructed. Though many do have future rewards.
| I think we often miss those though because that path is
| through generalization. Learning how to throw a ball can
| help with learning physics, writing, driving, and much
| more. They don't perfectly transfer but it'd be naive to
| conclude that there aren't overlaps.
|
| I think the truth is that as long as we are unable to
| predict the future, we really can't predict what skills
| will be useful and what specific knowledge should be
| pursued. We can do this in a more abstract sense as we
| can better predict the near future than far but that also
| means we should learn creativity and abstraction, as
| these allow us to adapt to changes. And that is why I
| believe we _evolved_ these methods, and why you see
| things like play in most creatures.
| waynesonfire wrote:
| what is the name / curriculum of such a class?
| danielmarkbruce wrote:
| "russian school of math". Putin may be a bad dude, but
| those russians seem to know a thing or two about math...
| belinder wrote:
| Do you recommend any other resources for children to learn the
| basics of those theories?
| PartiallyTyped wrote:
| A book of abstract algebra is very approachable!
| godelski wrote:
| Unfortunately I don't know any direct resources. I really do
| hope they are out there and some will share.
|
| But if you're willing to hunt, I know that this idea was
| attempted before[0]. France and USSR had better success than
| the US. I'm sure there are still people working in this
| direction. I don't have children, but fwiw I've taught my
| nieces and nephews algebra and even some of calculus before
| they were 10 just in visiting time during vacations. They
| were bored and it seemed more fun than talking about the
| drama, politics, and religion that the rest of my family
| likes to spend most of their time on. Kids were similarly
| disinterested in that stuff lol. I've also seen my
| god{son,daughter} be able to learn these types of skills, so
| I'm highly confident it is doable.
|
| [0] https://en.wikipedia.org/wiki/New_Math
| mrexroad wrote:
| Thank you. I've long held that calculus, formal logic,
| combinatorics, etc. should be started in elementary school,
| separate from arithmetic. Even after stripping away the numbers
| and procedural knowledge, there is tremendous real world value
| in simply understanding many of the concepts. Plus, (and I say
| this half-jokingly) won't we all be using llms to vibe-math
| everything that needs math-ing anyway?
| vendiddy wrote:
| It took me a long time to realize math consisted of
| abstractions.
|
| I was never told, for example, that matrices are a useful
| abstraction (shorthand?) for representing linear equations.
|
| Or that imaginary numbers were an invented abstraction that
| made certain calculations easier.
|
| It would have been nice to learn it from the perspective of how
| those abstractions came into being and why they're useful.
| Nevermark wrote:
| Even if we narrow math to numbers, what many people thing of
| as "math", we quickly move from arithmetic to patterns.
|
| The patterns of repetitions of single things, repetitions
| over different things, repetitions between different things,
| repetitions over repetitions, ...
|
| Natural/counting numbers are just the simplest patterns of
| repetition.
| Jensson wrote:
| Numbers are an abstraction, not just "imaginary" numbers, all
| numbers are imaginary they don't exist in reality.
| bee_rider wrote:
| > I was never told, for example, that matrices are a useful
| abstraction (shorthand?) for representing linear equations.
|
| Congratulations on overcoming the (very weird) choice of
| whoever taught your intro to linear algebra class.
| godelski wrote:
| I'm not sure how to interpret this comment, it could easily
| be read in multiple ways. (Depends on priors)
|
| Regardless, it's a shockingly common occurrence. I'd agree
| it's not the right way, but it is also a common way. That
| perspective might define those priors
| bee_rider wrote:
| Yeah, I was worried it might come off as sarcastic or
| something. Hopefully the original commenter doesn't take
| it that way, or reads this follow up. Unfortunately,
| adding stuff like "honestly" often makes a comment look
| _even more sarcastic._ It is a real pain.
|
| But yes, I am expressing honest admiration--it was a bad
| move on the part of the teacher I think, which the poster
| seems to have overcome!
| godelski wrote:
| Well I appreciate clarifying! I originally took it as
| sarcastic but second guessed myself. I figured math is
| pedantic, so maybe being a little pedantic here could
| help haha.
|
| I went through the same thing, it really isn't easy. But
| it is also why I don't blame others for not seeing it. It
| would be hypocritical to do so. I'm just not sure what's
| the best way to share, I'm open to ideas. Unfortunately
| we have to contend with priors that we see here, though
| I'm happy if my efforts even make one more person able to
| share in this beauty.
| vendiddy wrote:
| No worries I did not take it that way!
| thaumasiotes wrote:
| No, it is "very weird". Without knowing that a matrix
| represents a system of equations, Gaussian elimination
| would be pointless.
| godelski wrote:
| I think we're all in agreement. No need to fight.
| vendiddy wrote:
| I may not have been clear, but it was given to us as a
| definition in class. As in we saw the matrix and the
| corresponding equation.
|
| But nobody even told us why! And at that time I never
| thought to ask.
| hirvi74 wrote:
| When growing up, I'm sure my fellow students and I were
| not the only ones get responses to questions like "Why
| can't one divide by zero?" or "Why is Pi necessary to
| compute to area of a circle?" answered like "because
| that's just how things work" or "because it just is."
|
| I'm not going to sit here and act like I was a star
| student or anything. I was more of a class clown type. I
| absolutely hate math and all things math. That was, until
| I went to college. A switch flipped when I was in a
| Calculus II class.
|
| Our professor asked, "What is a 100 divided by 0?" People
| in the class responded with, "You can't divide by 0
| because it's undefined." To which our professor responded
| with, "Why?" Then a student took out a calculator and
| showed the professor that the answer as indeed undefined.
| To which he responded with, "Ok, how do you that
| calculator is correct? Do you just believe it because
| people told you that dividing by zero is undefined? Ok,
| the answer is undefined... but why?"
|
| Right then and there, a switch flipped in my brain. I
| realized that I was basically institutionalized to just
| not question math and to just accept that things work a
| certain way "just because." It was at that point I
| actually started to become interested in math, and it
| completely changed my outlook on math in a positive
| manner. I love math now (despite being horrible at it).
| godelski wrote:
| This reminds me of a lot of what I see in grad school and
| academia. Something akin to what Tom Wolf talks about
| here[0] > I've always been a straight-A
| student. > if something was not written in a book I
| could not invent it unless it was a rather useless
| variation of a known theory. More annoyingly, I found it
| very hard to challenge the status-quo, to question what I
| had learned.
|
| I don't think this part is isolated to math, but there's
| a lot of acceptance for "because" being an answer. Being
| in an authoritative position and being challenged can be
| frustrating, but I think a lot of that frustration is
| self-generated. We stifle creativity when young and it
| should be no surprise that frequently when people
| challenge, they don't have the tools to do so (or be
| receptive) effectively. Truthfully, "I don't know"[1]
| still shuts down the conversation.
|
| But I think people themselves are uncomfortable with not
| knowing. I know I am! But that isn't a feeling of shame,
| it is a feeling that creates drive.
|
| [0] https://thomwolf.io/blog/scientific-ai.html
|
| [1] Alternatively, variations like: "That's a good
| question, I don't know" or "Great question, but we don't
| have the tools to address that yet". The last one need
| not undermine your authority either. Truthfully, the
| common responses resulted in me becoming strongly anti-
| authoritarian. Which, also has greatly benefited my
| career as a researcher. So, thanks lol
| rtkwe wrote:
| Or just your regular 8/9th grade Algebra course where you
| should have learned systems of equations. That's where I
| first encountered using matrices for systems of equations
| at least. (maybe it was Algebra 2+ but it was definitely
| before taking Linear Algebra in college).
| PartiallyTyped wrote:
| I am willing to bet good money that teaching pure mathematics
| like group theory, abstract algebra, or stuff like big Oh and
| combinatronics will do our kids a lot more good and advance
| them far more than calculus or geometry as taught in schools
| will.
|
| I have the same experience as you did, in that studying by
| myself abstract algebra accelerated my learning and reasoning
| skills.
| godelski wrote:
| I think differential equations was where the switch from "I'm
| good at math" to "I think I want to actually know more of
| this" happened. I changed my major from engineering to
| physics. But agreed, abstract algebra was another big change
| and after that I took every class my university would let me
| and the chair of the department even made some new ones for
| me and some others.
|
| I don't think this experience is uncommon (among people who
| get to these levels). Which is why it is really sad.
| Especially given how linear algebra and abstract algebra are
| in a lot of ways easier than calculus. I also think they
| should be taught earlier purely due to the fact that they
| teach abstraction and reasoning.
| lo_zamoyski wrote:
| Math is about _form_ and traditionally the science of quantity.
| It is called a formal science for this reason.
|
| Language also concerns form. Grammar has form. Concepts are
| forms.
|
| Math is language. 'Everything' is language. Language is the
| image of reality.
|
| In the beginning was the Logos...
| godelski wrote:
| > Math is language.
|
| Facts. I think it is hard to disagree with this, and it seems
| like a rare opinion to be held by people at high levels.
| > Language is the image of reality.
|
| An image?[0] ;)
|
| [0] https://ncatlab.org/nlab/show/image
| seadan83 wrote:
| Math major here. 'is' is a reflexive relationship. If math
| is language, therefore language is math. I believe clearly
| language is not math, therefore math is not language. Math
| is described with language, Math itself is not language. It
| is a 'has-a' relationship vs a 'is-a' relationship.
| godelski wrote:
| > Math major here
|
| Forgive me if I doubt, but your comment would strongly
| suggest otherwise, along with this one[0].
|
| The reason for doubt is a failure in fairly basic logic.
| Your claim is: !(A - B) [?] !(B - A)
|
| I'd expect anyone willing to claim the title of "math
| major" is aware of structures other than bijections and
| isomorphisms. The mapping operator doesn't form an
| abelian group.
|
| [0] https://news.ycombinator.com/item?id=43873351
| NickM wrote:
| I think you might be missing the point of the article: the
| study being cited isn't trying to establish the existence of a
| "language brain" or a "math brain", that's just the way the
| headline editorialized it to help people understand the
| conclusions.
|
| The conclusion of the study was that linguistic aptitude seemed
| to be more correlated with programming aptitude than
| mathematical aptitude, which seems fairly interesting, and also
| fairly unconcerned with which specific physical regions in the
| brain might happen to be involved.
| godelski wrote:
| I understood it. > The conclusion of the
| study was that linguistic aptitude seemed to be more
| correlated with programming aptitude than mathematical
| aptitude
|
| And this is what I'm pushing back against and where I think
| you've misinterpreted. > They found that how
| well students learned Python was mostly explained by general
| cognitive abilities (problem solving and working memory),
| while how quickly they learned was explained by both general
| cognitive skills and language aptitude.
|
| I made the claim that these are in fact math skills, but most
| people confuse with arithmetic. Math is a language. It is a
| language we created to help with abstraction. Code is math.
| There's no question about this. Go look into lambda calculus
| and the Church-Turing Thesis. There is much more in this
| direction too. And of course, we should have a clear
| connection to connect it all if you're able to see some
| abstraction.
| seadan83 wrote:
| > Math is a language.
|
| Language is not math, therefore math is not language.
| godelski wrote:
| Logic doesn't follow.
|
| There is no problem with A -> B [?] B -/-> A
|
| Here's an example. "I live in San Francisco" would imply
| "I live in the US". But "I live in the US" does not mean
| "I live in San Francisco".
|
| Here's a more formal representation of this: https://en.w
| ikipedia.org/wiki/Bijection,_injection_and_surje...
| prmph wrote:
| The point is that linguistic aptitude _is_ math aptitude, and
| vice versa.
|
| From my experience, my ability to articulate myself well is
| bound up with my ability to abstract and detect patterns. It
| is the same thing I apply to crafting software, the same
| thing I apply to creating visual art.
|
| I think high-cognitive-ability people segregating themselves
| into artsy vs mathy people has more to do with their
| experiences in their formative years.
| necovek wrote:
| To be fair, the original study uses "numeracy", and the
| correlation numbers are almost exactly like the ones for
| "language aptitude".
|
| At the same time, the study excluded "five participants ... due
| to attrition (not completing the training sessions), and one
| participant ... because he was an extreme outlier in learning
| rate (>3 sd away from the mean)." I mean, if you are to exclude
| 15% of your subjects without looking at their aptitude (maybe
| they didn't do it because it was too hard to pass the training
| tests to move to the next lesson, yet their language aptitude
| is high?), with _only_ 36 subjects of which 21 are female (it
| 's obvious programming is male dominated, so they only had 15
| males: maybe it doesn't matter, but maybe it does), how can you
| claim any statistical significance with such small numbers?
| godelski wrote:
| > the original study uses "numeracy"
|
| That's fair, although I don't think it changes my response.
| And the article still really leads to the wrong conclusions.
| You want to teach children abstraction and reasoning? You
| teach them math. Not numeracy, math.
| apeescape wrote:
| Finland tried teaching maths to children using Group Theory in
| the 70s [1], but the results weren't that good; it proved to be
| too abstract for young kids.
|
| Ultimately, I believe basic algebra and geometry are the most
| important takeaways from math classes for most people.
|
| [1]: https://www.hs.fi/tiede/art-2000004823594.html (sorry,
| it's in Finnish and behind a paywall)
| hirvi74 wrote:
| I am no expert in pedagogy of mathematics, and I am sure
| someone will correct me if I am wrong, but I think there
| was/is a Russian academic program in which students were/are
| basically only taught algebra in an iteratively increasing
| manner.
|
| As it was explained to me, one wouldn't take a "Calculus I"
| class as a prerequisite for say an entry-level engineering
| course. One typically had such a strong foundation of
| algebra, that when encountering a problem that required
| calculus, the student would just learn the necessary calculus
| at that point in time. In other words, with such a strong
| algebraic background, other aspects of math, within reason,
| were much easier to grok.
| godelski wrote:
| > the results weren't that good; it proved to be too abstract
| for young kids
|
| You cannot make that conclusion as a result of the evidence.
| Yes, the evidence might support that conclusion, but there
| are many others that also could. For example, they could have
| just been really bad at teaching. This even seems like a
| likely one as it is difficult to perform such a reformulation
| and to do so broadly and quickly.
|
| The other reason I'm willing to accept alternative
| conclusions is that France and the USSR had far more success
| than Finland (or even America). Their success contradicts a
| claim that "[it is] too abstract for young kids". You'd need
| to constrain it to something like "[it is] too abstract for
| Finish kids" which I think both of us would doubt such a
| claim.
| florbnit wrote:
| > It think this is silly on multiple accounts. I'll claim that
| there's not real thing such as a "language brain" or "math
| brain."
|
| It seems plainly obvious that this language just means "areas
| of brain that activate when dealing with math problems" vs
| "areas of brain that activate when dealing with language
| problems" and yes there is hard evidence that there is a
| difference between them.
| godelski wrote:
| Please reread my comment in full. I'm willing to bet we
| disagree on the definition of math. I'll strongly insist that
| the one I'm using is common among mathematicians. If you'd
| like to retort by saying it's about semantics then congrats,
| we're on the same page (and can be verified by reading you
| sibling comments and/or my replies to some of them)
| jeffhuys wrote:
| Interesting to me how Wernicke's Aphasia works then (which I
| have occasionally; my epilepsy stems from there + broca's
| area). Could you explain that?
| godelski wrote:
| What is the question asking? Why do you have Aphasia? I'm not
| sure what the relationship here is. Or are you suggesting
| you're good at math but not good at language?
|
| I feel weird answering even if I infer the right question
| because it feels tautological. If you have Wernicke's Aphasia
| does it not create the possibility that I already have but
| your condition resulted in misunderstanding. Given the
| condition does it not create a high probability that a
| response will similarly be misunderstood? Is not Anosognosia
| quite common?
|
| Maybe I'm really misunderstanding but honestly I'm not sure
| what you're asking
| atomicnumber3 wrote:
| Just anecdotally based on my 2000something kid high school, the
| copious amount of tiering of math classes seemed to indicate to
| me that either we're really bad at teaching math to 80% of
| people, or only 20% of people will be able to handle
| precalculus.
|
| We had basically 4 tracks: one ended with you doing algebra 1
| in senior year, another ended with you doing trig in sr year,
| yet another that ended with trig (no precalculus), and then one
| that ended with you doing trig and precalc. That final class
| then had further subdivisions that were too small to have their
| own full classes: some kids just did precalc, some did calc 1
| and took the AP Calculus AB exam and/or IB Math SL, while even
| even smaller group took AP Calculus BC and/or IB Math HL. The
| total number of kids who took the AP Calc AB exam in my year
| was 20ish, out of a graduating class of 500-600.
| godelski wrote:
| In either case it would seem to suggest we should radically
| change the system
| serial_dev wrote:
| This system sounds extremely complicated.
|
| > the copious amount of tiering of math classes seemed to
| indicate to me that either we're really bad at teaching math
| to 80% of people, or only 20% of people will be able to
| handle precalculus
|
| Or maybe it indicates that the people designing this system
| should be fired? Job security through complexity?
|
| (Or maybe I'm just biased by the system I know... I'm just
| asking questions)
| godelski wrote:
| > ... I'm just asking questions
|
| I'm not disagreeing, but just wanted to point out that this
| phrasing is commonly used by bad faith actors. I'm not
| saying you're using it this way and I legitimately do not
| think you are. But I wanted to point it out because I think
| your comment could be interpreted another way and this
| phrase might be evidence for someone to make that
| conclusion.
|
| The classic example is conspiracy theorists. But lots of
| bad faith actors also use it to create leading questions
| that generally ignore or lead away from important context.
| Again, I do not think you're doing this. The rest of your
| comment makes me think you're acting in good faith.
| thaumasiotes wrote:
| I went to a small high school; my graduating class was around
| 30 people.
|
| Math classes weren't separated by grade. So, I took Algebra 2
| in 8th grade alongside a cross section of the school; there
| was one other 8th grader, two seniors, and a selection of
| people in between.
|
| There was no path to take the AP Calculus AB. Trig / Calc A
| was offered as two semesters, and then Calc B / Calc C was
| offered as two more semesters, after which you'd take the BC
| test. There was also no such thing as "precalculus". Trig
| followed Algebra II.
|
| In my Calc C class, there were probably 8ish people, of which
| one or two (besides me) would have been in my grade.
| HarHarVeryFunny wrote:
| > I'll claim that there's not real thing such as a "language
| brain" or "math brain.
|
| Did you even read beyond the silly headline?
|
| The article itself is about pre-testing subjects on a range of
| capabilities from problem solving ability to second (foreign)
| language learning ability, and then seeing how these correlated
| to the ability of the test subjects to learn to code.
|
| The results were basically exactly what might be expected -
| people who learned Python the quickest were those who scored
| the best at learning a second language, and those who learned
| to wield it the best were those who had scored the best at
| problem solving.
|
| Not surprisingly math ability wasn't much of a predictor since
| programming has little to nothing to do with math.
| ubercow13 wrote:
| I think the above comment stands. The point is, what do they
| consider maths ability? High school maths has very little to
| do with programming but university-level maths certainly
| feels very similar to it in structure. Many of my (good)
| classmates in my maths degree were very bad at things like
| mental arithmetic. So maybe "maths ability" (defined some
| way) isn't very important for being good at "maths" (proper).
| godelski wrote:
| > Did you even read beyond the silly headline?
|
| Yes. I'll also refer you to the HN guideline on this manner.
| You're welcome to disagree with me but you must communicate
| in good faith and unless you have a very specific reason for
| thinking I didn't "RTFM" then don't make the accusation.
|
| I'm happy to continue discussing, but only on those terms. In
| fact, I think we're in far more agreement than your tone
| suggests. But I think you missed the crux of my point: math
| isn't number crunching
| hydrogen7800 wrote:
| If we taught music the way we teach math. No wonder so many
| people are "bad at math".
|
| "Music class is where we take out our staff paper, our teacher
| puts some notes on the board, and we copy them or transpose
| them into a different key. We have to make sure to get the
| clefs and key signatures right, and our teacher is very picky
| about making sure we fill in our quarter-notes completely. One
| time we had a chromatic scale problem and I did it right, but
| the teacher gave me no credit because I had the stems pointing
| the wrong way."
|
| https://en.m.wikipedia.org/wiki/A_Mathematician%27s_Lament
| thomasikzelf wrote:
| Of course Brett Victor has the essay on his website: https://
| worrydream.com/refs/Lockhart_2002_-_A_Mathematician'...
|
| It is a great read!
| thaumasiotes wrote:
| > most people don't know what math is
|
| It's surprisingly common. Case in point: "The unreasonable
| effectiveness of mathematics in the natural sciences".
|
| A normal person wouldn't be surprised that describing how
| something works is a good way to understand it.
| ohgr wrote:
| As a mathematician by trade, the math brain is a language brain.
| Mathematics is about abstract communication rather than
| mechanics.
|
| Oh wait neuroscientists, explains it all. A statisticians
| favourite target for being unable to interpret data correctly.
| 725686 wrote:
| For the 99% of programming I come across, I need about 0% math.
| hinkley wrote:
| I'm old enough to have caught the tail end of CS being an
| offshoot of the Math department and I had a gaggle of fellow
| undergrads who were happy ours had been moved to the Engineering
| college and upset to know other students at other schools who
| were still in Math.
|
| I don't know about for learning but definitely for collaborating
| and mentoring. And it's difficult to make a definition of mastery
| that excludes both of those, so I suppose after a fashion it's
| right.
|
| Despite being a professed lover of math, I scored higher on the
| verbal than the math SAT. There's a lot of persuasive and
| descriptive writing in software, particularly if you're trying to
| build a team that works smarter instead of finding more corners
| to cut.
| quantadev wrote:
| There's only a handful of key concepts people need to learn to
| understand the basics of 'coding'. If you understand what a
| variable is, how they're scoped, how step-wise transformations
| happen, and what loops are, you know 90% of "coding". I knew it
| at age 13 in 1981 doing "Basic" programming. Sure mastery of the
| art of coding does take decades, but that's just just adding
| polish, rather than capability.
|
| Math is VASTLY different with VASTLY more concepts that are all
| much more abstract in nature and harder to understand the
| infinite numbers of different ways one mathematical construct can
| be applied to another. A person can "master" coding, but no one
| ever masters math.
|
| So comparing math to language or to coding is silly. They're
| completely separate domains. Just because each of the three can
| encode and represent the other two doesn't make them similar in
| any way whatsoever.
| JohnMakin wrote:
| > There's a lot of people out there who "aren't math people," but
| they just might be computer science people
|
| This is beyond silly from my perspective. I know the field of CS
| is vast, but this seems to conflate programming with CS. My
| school was more theory heavy but there definitely came a point in
| certain paths of study where I didnt touch a line of code for a
| year, just pure math. I struggle to even understand how someone
| can think of this sentence - computer science at its core is
| underpinned by mathematics.
| rowanG077 wrote:
| They call "numeracy" math skills. From that perspective it
| seems not that weird to call programming CS.
| calebm wrote:
| This is why women are so dominant in the software development
| field - because women are known to have higher language skills
| than men.
| tmaly wrote:
| I just started reading this. Only 42 people in this study and
| only 36 completed the activity. I am a bit skeptical about the
| findings with such a small sample size.
| 3pt14159 wrote:
| That's what I was going to say. Big conclusions based of tiny
| sample sizes are ridiculous.
| alexpotato wrote:
| This reminds me of the following quote:
|
| "Coding largely involves the 'logical part' of your brain. It
| tends to not include the 'language part' of your brain.
|
| This is one reason why comments you add to code are so useful:
| they force you to engage both parts of your brain and therefore
| get better results.
|
| This is also why when you go to explain a problem to a colleague,
| you often have a flash of brilliance and solve the problem: you
| are reframing the problem using a different part of your brain
| and the different part of your brain helps solve the problem."
|
| I'm sure some readers here will say this is preposterous and
| there is no such thing as having "two parts of your brain".
|
| To them I suggest watching:
|
| 1. "You are are two" (about people with their corpus callosum
| being severed) https://www.youtube.com/watch?v=wfYbgdo8e-8
|
| 2. "Conscious Ants and Human Hives" by Peter Watts
| https://www.youtube.com/watch?v=v4uwaw_5Q3I
| TheGrognardling wrote:
| I certainly don't dispute the empirical validity of the findings
| from the study - but there are important nuances to consider as
| well. I am certainly more naturally-attuned to languages as-far
| as language-learning and reading than mathematics, but I have
| also found myself understanding more mathematical and theoretical
| linguistics as well. I also love programming.
|
| It wasn't until high school, when I tested-into the highest math
| class that the school offered, that I began to unlock (with some
| initial struggle) more logical and procedural reasoning specific
| to mathematics that I had always done well in, but never
| explicitly went above-and-beyond in, despite hints of such in
| arithmetic competitions that my school would hold and that sort
| of thing. I just think my brain works well for both the
| linguistic aspects of programming (more naturally) and the
| computational problem-solving aspects of programming. Certainly
| there are individuals who have strengths in both cognitive
| aspects, despite being more naturally-attuned to one versus the
| other, at least presumably.
|
| Perhaps this shows a cognitive profile that has natural strengths
| in both "brains", or maybe this highlights limitations of the
| article's potentially narrow definitions of "language" and
| "math", implying a more complex intellectual landscape.
|
| Interesting findings nonetheless.
| resters wrote:
| I've noticed that the people who initially grok programming
| language syntax are often better at learning new symbolic
| systems, but I think this is actually due to a persistent type I
| error their brains make that is OK for early learning.
|
| People who end up being the best programmers have a deeper
| appreciation for semantics and information flow, but tend to
| commit more type II errors early on, making them inferior intro
| CS students.
|
| Much of the CS curriculum (and typically also the required maths
| curriculum) in universities still favors the first type of
| student over the second, driving out the most capable and
| creative minds.
| osigurdson wrote:
| If you are bad at math, don't assume you will be bad at
| programming. Similarly, if good at math, don't assume you will be
| bad at programming.
|
| If you try programming and you don't like it chances are you
| won't be very good at it.
| randerson wrote:
| As an accomplished programmer who is not great at language nor
| math, I feel like my "modeling brain" is the key to success. I
| can envision all the aspects of an architecture, its data shapes
| and program flow, making it obvious which data structures and
| algorithms to use, or where to look for a bug. I did spend a lot
| of time naming things though... until ChatGPT replaced the need
| for a thesaurus.
| hirvi74 wrote:
| Isn't math somewhat a language in of itself? If not, a language
| has surely derived from math.
| tgv wrote:
| Hold your horses. The summary of that article does not offer any
| proof of what the title says.
|
| * It's a small sample, and they did not analyze the people who
| didn't complete the course. That's dubious. Those 6 could have
| had a massive influence on the outcome.
|
| * The summary does not present the actual numbers. These are:
| "fluid reasoning and working-memory capacity explained 34% of the
| variance, followed by language aptitude (17%), resting-state EEG
| power in beta and low-gamma bands (10%), and numeracy (2%)".
| Note: numeracy, not math.
|
| * The test result was only partially programming related. 50%
| consisted of the results of a multiple choice test with questions
| such as What does the "str()" method do?. Linguistic knowledge
| indeed.
|
| * It's about completing a 7.5 hour Python course. That's learning
| indeed, but only the very beginning, where abstraction is not in
| play. The early phase is about welding bits of syntax into
| working order.
|
| * The numeracy skills required are very low for such tasks, as
| the tasks are simple, and mainly require thinking in steps and
| loops, whereas numeracy aptitude is generally measured on rather
| problems involving fractions.
|
| Edit: the paper uses the Rasch-Based Numeracy Scale for this,
| which seems to involve estimation and probabilities.
|
| * 17% explained variance is a rather minimal result, and you
| cannot easily compare factors in such a small design, even if the
| other one is only 2%. That's a rather hairy statistical
| undertaking.
|
| * Linguistic expedience might be explain the speed with which the
| course was followed, since the instruction is, obviously,
| linguistic. Hence, this factor is not necessarily related to the
| actual learning or programming.
|
| * The argument from beta waves is clutching at straws.
|
| * The argument that "perhaps women should have more of a
| reputation for being "good" at programming" because they score
| better on tests, is --however well meant-- utterly ridiculous. It
| reverses correlation to causation and then turns that into a
| fact.
|
| * That linguistic skills are useful for programmers is widely
| understood. However, this is not because of the actual coding,
| but because the coder needs to understand the environment, the
| specs, the users, etc., all of which is transferred via language.
|
| * And of course, the statistical result relies on Null Hypothesis
| Test Significance, which is rotten in its very foundations.
|
| * Note that the CodeAcademy course "Learn Python 3" is 23 hours
| in 14 lessons.
| msvana wrote:
| At the beginning, the article mentions correlation with language
| skills AND problem-solving. Focusing only on language skills in
| the second half is misleading. According to the abstract of the
| original paper, problem solving and working memory capacity were
| FAR MORE important.
|
| Also, the article doesn't mention "math skills". It talks about
| numeracy, which is defined in a cited paper as "the ability to
| understand, manipulate, and use numerical information, including
| probabilities". This is only a very small part of mathematics. I
| would even argue that mathematics involves a lot of problem
| solving and since problem solving is a good predictor, math
| skills are good predictor.
| scarecrw wrote:
| Going further, it seems like Language Aptitude was primarily
| significant in explaining variance in learning rate, measured
| by how many Codecademy lessons they completed in the allotted
| time, but wasn't explanatory for learning outcomes based on
| writing code or answering multiple-choice questions.
|
| Seeing as Codecademy lessons are written in English, I would
| think this may just be a result of participants with higher
| Language Aptitude being faster readers.
|
| I do think that language skills are undervalued for
| programming, if only for their impact on your ability to read
| and write documentations or specifications, but I'm not sure
| this study is demonstrating that link in a meaningful way.
| BXLE_1-1-BitIs1 wrote:
| Started programming over half a century ago. The insurance
| company I was working for gave me a joint life actuarial
| evaluation problem for which I wrote a Fortran program, picked up
| from a book. My uni student buddy let me use his ID so I could
| drop decks into their IBSYS. Turnaround was about a day. My
| career as a professional manual reader began.
|
| Well yes, my high school maths were in the high 90s - more than
| my language scores in French, German and Latin with some off
| curricular Russian. I guess being a polymath helps.
|
| Unless you are doing an engineering or mathematical application
| you don't need much math, especially as you can just call a
| function in the vast majority of the time.
|
| I did a number of software products and operating system
| modifications without using any math beyond arithmetic
| operations.
|
| I was a resource for other programmers including the odd math
| PhD.
| dismalaf wrote:
| Notwithstanding Puritanism like "language is maths" or "logic is
| maths" I definitely agree.
|
| I learned to program when I was a kid and my maths skills were
| super basic. Programming can almost be distilled to something as
| basic as "if this, then do that", plus "do this x times". Then
| read API documentation and call functions that do what the docs
| say.
|
| With just this basic understanding you can create a lot of stuff.
| The maths is obviously the foundation of computation, but to be a
| programming language user and build stuff, you don't actually
| need to understand most of it.
|
| In university I did eventually do some math-y stuff (econ degree
| so prerequisites in stats, maths and even CS) and it helps with
| certain stuff (understanding graphics programming, ML and LLMs,
| plus knowing maths on its own is useful), but I still don't feel
| it was strictly necessary. Language and basic logic is enough
| IMO.
| Ygg2 wrote:
| Whenever encountering such sensationalist headline, it's good to
| remind ourselves of "[Replication needed]" tag.
| rconti wrote:
| The most obvious way in which I think "math" and "programming"
| are related is the way they're taught; by repetitive performance
| of problem sets. I got frustrated in math for this reason; it
| takes a lot of energy to sit and focus on a whole bunch of hard
| problems that all "look the same". It was too easy to do 1 or 2
| and think "okay, I got it" and then move on, not realizing the
| repetition was the key to memorization.
|
| I feel the same way about starting learning programming.
| Repetition, repetition, repetition, until you "get good".
| literallyroy wrote:
| Is 42 participants statically significant?
| mrinterweb wrote:
| Personally, I find ruby one of the most readable languages
| because of the language and its DSLs. To be fair, the DSLs are
| very readable, but the lines can blur between what is ruby and
| what is a DSL.
| jackcosgrove wrote:
| I had to scroll through most of the paper to find this.
|
| > All participants were right-handed native English speakers with
| no exposure to a second natural language before the age of 6
| years
|
| Which removes a confounder that Python mimics English syntax.
|
| Still if this is a typical study recruiting thirty-some
| undergrads as subjects it's probably not generalizable, or even
| replicable given the same experimental setup.
| vlovich123 wrote:
| Counter example: I can pick up any new programming language
| within 3-6 months and be proficient but it takes a year to pick
| up some minor fluency in a human language and I still have yet to
| obtain full fluency in any other language as an adult.
| nielsbot wrote:
| I suspect, however, that a programming language is a much more
| limited domain than a human language.
|
| I often tell people it's not that learning a language is hard,
| is learning that language's software library... and learning a
| software library doesn't feel like learning a language. More
| like learning a set of tools.
| kjellsbells wrote:
| It's funny that this popsci article instantly succeeded in
| dividing the HN commenters into math/not-math camps. Porque no
| los dos?
|
| Programming is the manifestation of thought through the medium of
| a keyboard and screen. If you are a clear thinker, if you can
| hold multiple things in your head at once, if you can reason
| about things and their relations, well, you can be a strong
| programmer.
|
| It seems wholly unremarkable to me that someone new to Python
| would not be fazed by it, given it's fundamental basis in words
| (print, if, etc.) Someone with a background in languages, who can
| think well enough to explicitly or implicitly pick up the
| structure of the language, is gonna do just fine. "Oh, so when I
| see a while, I need to end with a colon" isnt so different from
| "when I shout, I need to add a ! at the end"
|
| (Java gets a special place in hell for forcing "public static
| void main" on every beginner.)
|
| Math only really comes into it when you want to reason about
| things that have a history of being manipulated mathematically,
| typically for reasons of convenience. You could probably invert a
| matrix in SNOBOL, but its a lot easier to pull out lists and
| arrays and linear algebra.
|
| In other words, lets see the follow up paper to this where Python
| newbies are asked to model the trajectory of a bead on a wire and
| see how they do.
| rerdavies wrote:
| The language brain is more important than the math brain for
| reading the first lesson on how to program in Python. Fixed that
| for you.
|
| Does answering a quiz on the contents of the first lesson on how
| to program in Python really encapsulate anything concrete about
| who will and will not be able to actually program in Python?
|
| I've always been disturbed by the disconnect between "first
| lessons" on programming languages and how I personally actually
| learn programming languages. I can't help thinking that the
| researchers have measured something else other than whether
| people have learned to program.
| FilosofumRex wrote:
| You can make any subject "mathy", because there are relations,
| ratios, correlation and patterns in everything. My favorite
| example, is how Chomsky mathified linguistics, and made it
| esoteric, undecipherable, uncomputable and thereby linguists
| unemployable, even in research labs.
|
| But as a matter of practice, teaching programming to
| engineers/scientists, even to mathematicians, is an order of
| magnitude easier than teaching math to CS folks. Simply quiz job
| candidates on fp arithmetics, and see how many fail miserably.
| kevin_thibedeau wrote:
| I'd posit that this is part of why Pascal lost. Making and/or the
| same precedence as */+ only appeals to mathematicians and gets in
| the way of ordinary uses for Boolean expressions where you want
| them lower than the sub-expressions they concatenate in a
| language-like manner.
| twodave wrote:
| In my experience, language skill may or may not matter for
| programming, but it certainly matters for understanding a problem
| space. You can be a great programmer, building the wrong thing
| because you didn't understand the requirements or see the gap in
| them and know to ask the right clarifying question, etc.
|
| Lately I've also felt language skills matter when writing
| concise, specific AI prompts. This has become a useful part of my
| programming workflow in, I suppose, the last year or so. Before
| that it was knowing "how to Google" well, but that's less
| language-dependent in my opinion.
| PicassoCTs wrote:
| I guess its the ability to tell long, forking stories, traversing
| several abstraction layers. Dante Alighieri would be loving this!
| Its the ability to walk through a mental palace, room for room
| again.
| ChrisMarshallNY wrote:
| That makes sense.
|
| Probably the most valuable math classes for me, were ones that
| had me use algebra to solve word problems.
|
| And, fundamentally, all languages describe the same stuff, using
| different tokens. That is pretty much in line with programming
| languages.
| w10-1 wrote:
| Not sure why the title left out the essential term: it matters
| more for _learning_ programming
|
| I believe the goal is to encourage those (young people) allergic
| to math but good in languages to realize they could be good at
| programming. That's worthy and important (though ironic to use a
| scientific study to do so).
|
| As for the larger question commenters are raising, I notice often
| programmers reducing programming to problem-solving, and that to
| modeling, thence to math writ large; then they prove their point
| by noting that the most significant algorithms have strong and
| deep roots in math. The argument is: if the pinnacle of
| programming is math, then the more math-like programming is (in
| people and style), the better. (Hence: functional programming and
| provable algorithms are the epitome)
|
| This argument is invariably made only by math experts, and does
| have the effect of reducing competition and selecting for like-
| minded persons, so there's at least the possibility of infection
| with self-interest and bias to the familiar.
|
| I think the real distinction lies in this: with math, once you
| have a model, you fit things into that, and exclude other things.
| You do perfectly, but only in your domain. With language, any
| differance (any difference that makes a difference) starts to be
| named and tracked and dealt with somehow. It may grow in
| confusing ways, but it turns out (like architecture) it actually
| makes much more sense to adapt the structure to the use and
| relevance than vice-versa.
|
| Sure, some subset of architecture is engineering by necessity,
| and it's probably even the hardest subset. But that's also the
| most portable knowledge and practice, and I would argue, thus
| easier to find and deploy once you've isolated such a need,
| particularly since mathy stuff fits nicely in a reusable library.
|
| So math is an important but relatively isolated part of
| programming, and thinking it's ideal for everything is missing
| the point that programming matters for some purpose.
|
| "attention is all you need" is but one example of the priority of
| relevance over structure in systems.
| blobcode wrote:
| > the requirements for advanced math classes for every computer
| science major seem unnecessary
|
| Computer science is much more than programming - and I think that
| most of the value derived is from being able to think about
| problems, which largely require the abstract type of thinking
| encouraged by more advanced math. Code is just a tool.
| anacrolix wrote:
| I would agree. Linguistics and literature have always been a
| strong interest of mine, and many computer scientists. Moreso, I
| find weaker programmers struggle with spelling, grammar, various
| dyslexias and torrent-of-thought code organisation.
| dublin wrote:
| Of course it does. Math is not programming - it's almost entirely
| irrelevant to programming and certainly to software and
| architecture development. Most modern programming only involves
| math for trivial things like counting.
|
| This classic article explains the real issue - like Mike Gancarz'
| classic on the Unix Philosophy, this is something all younger
| hackers should read, but few have, since these are the
| fundamental ideas that have created our modern world of
| computers:
| https://web.archive.org/web/20000529125023/http://www.wenet....
___________________________________________________________________
(page generated 2025-05-02 23:00 UTC)