[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)