[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  : 401 points
       Date   : 2025-05-02 15:19 UTC (1 days 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.
        
             | concordDance wrote:
             | They probably suspect you to be a slow coder who writes
             | code with bad abstractions because they percieve the maths
             | skills as how one does things in software engineering.
        
           | lubujackson wrote:
           | Very interesting, as I am nearly the opposite. Bad spatial
           | reasoning though pretty good at most other things. In school,
           | geometry was fun and interesting - I enjoyed proofs. And I
           | majored in English in college with a CS minor, so I think
           | there must be a variety of in-roads for programming.
           | 
           | I think one "verbal" skill that has served me well is fast
           | reading. When I had to read a 300 page novel once a week you
           | learn how to skim for key elements, which is immensively
           | useful for getting up to speed in a new codebase/language or
           | locating a bug.
        
         | 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.
        
         | photonthug wrote:
         | > 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).
         | 
         | This is me and also many of the CS students in my cohort, and
         | AFAIK something that universities actively selected for, and
         | students also self-selected around in an era of RTFM/MUDs/IRC
         | before LLMs or youtube. The best programmers I've worked with
         | are _still_ always very linguistically brained.. polyglots even
         | when they didn 't have to be, or with a long track record of
         | engaging with difficult literature. If nothing else.. just very
         | witty in that certain way that's meta-cognitive, meta-
         | linguistic.
         | 
         | This is still true I think but it's much harder see out in the
         | wild due to the degree/career trajectory popularity. Plus as
         | long we're optimizing for leet-coding even though built-from-
         | scratch algorithms are a very rare need compared to skills with
         | good design/exposition.. naturally the math-brain is favored.
        
         | ezekiel68 wrote:
         | I came here to comment the same -- also ready to share my SAT
         | scores from the 1980s. I was also much highter on the verbal
         | side and I have had an awesome software engineering career
         | using many, many languages (often together) on large,
         | professional projects at large companies anybody here would
         | recognize.
        
       | 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.
        
             | voidspark wrote:
             | That program makes sense if you want to be a Computer
             | Scientist, or study machine learning / AI.
             | 
             | You chose CS but really wanted Software Engineering.
             | Discrete Mathematics was all you needed for that.
        
       | 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.
        
               | deeThrow94 wrote:
               | Can you come up with some conception of recursion that
               | doesn't involve symbols referring to themselves, directly
               | or indirectly? Ie what is left of recursion when you
               | remove the linguistic component?
        
               | karmakaze wrote:
               | Yes. But it's in my mind, I can't write it down for you.
        
           | 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
        
             | GoblinSlayer wrote:
             | DBs aren't math. In math it's perfectly ok for computation
             | to take infinite time, you can just assume it already
             | completed, but DBs don't work like that.
        
           | 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.
        
             | delecti wrote:
             | I think for this discussion, "math is stuff you'd learn in
             | a math department" is a pretty useful definition, even if
             | it's not a very good one. There's a lot of math involved in
             | the design and manufacture of the kettle, electrical grid,
             | and water utilities, but a person's ability to put a kettle
             | on isn't going to be improved by math classes. In that way,
             | programming probably is a _bit_ mathy, but good programming
             | is more like good technical writing than it is like math.
        
               | Someone wrote:
               | > I think for this discussion, "math is stuff you'd learn
               | in a math department" is a pretty useful definition
               | 
               | That means that definition shifts over time. For example,
               | courses on numerical analysis, graph algorithms,
               | programming, and on compilers used to be part of "what
               | you'd learn in a math department".
               | 
               | It likely also even today will show geographical
               | variation.
        
             | GoblinSlayer wrote:
             | Overlap between programming and math is quite small, e.g.
             | halting problem is solvable in programming (by flow
             | analysis) but isn't solvable in math. Programming deals
             | only with practical problems and can be completely guided
             | by practical considerations, while math requires abstract
             | outlandish skills - exact opposite. Why talk about math at
             | all if it's already well known that programming is
             | engineering?
        
           | 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.
        
             | tbrownaw wrote:
             | > _Is a DAG traversal algo "math", or is it more computer-
             | sciencey?_
             | 
             | Firstly, computer science _is_ math.
             | 
             | Secondly, I remember covering graphs in a discrete math
             | course back when I was in college.
             | 
             | > _What if you do it in SQL?_
             | 
             | SQL is more-or-less a poor implementation of relational
             | algebra. Ie, math.
        
               | vidarh wrote:
               | Computer science is math in the same way that physics is
               | philosophy, in that computer science certainly _started_
               | as math, just like the natural sciences used to be
               | subdisciplines of philosophy.
               | 
               | But it's hardly a useful grouping any more. You can study
               | and do well in computer science with minimal knowledge of
               | most of the core mathematical subjects.
               | 
               | While graph theory certainly crosses over into math, you
               | can cover most of the parts of it relevant to most
               | computer science as a discussion of algorithms that would
               | not be the natural way of dealing with them for most
               | mathematicians.
        
               | voidspark wrote:
               | > You can study and do well in computer science with
               | minimal knowledge of most of the core mathematical
               | subjects.
               | 
               | You will fail at Theoretical Computer Science without
               | mathematical proficiency. Go read some textbooks and
               | papers in theoretical CS. It is a subfield of
               | mathematics. Theorems and proofs. Rigorous and difficult
               | mathematics.
               | 
               | https://en.wikipedia.org/wiki/Theoretical_computer_scienc
               | e
        
               | vidarh wrote:
               | I've read plenty of theoretical computer science papers
               | over the last 30+ years, and while _some_ of it requires
               | "rigorous and difficult mathematics" that is by no means
               | universal.
               | 
               | I wrote my MSc thesis on the use of statistical methods
               | for reducing error rates for OCR, and most of the papers
               | in my literature review hardly required more than basic
               | arithmetic and algebra.
               | 
               | So I stand by my statement.
               | 
               | Sure, there are subsets of computer science where you
               | need more maths, just like in any field there are sub
               | fields where you will need to understand other subjects
               | as well, but that does _not_ alter what I claimed.
               | 
               | EDIT:
               | 
               | Some authors are quicker to pull out the maths than
               | others, and frankly in a lot of CS papers maths is used
               | to obscure lack of rigor rather than to provide it. E.g
               | the problem I ran across when writing my thesis was that
               | once you unpacked the limited math into code you'd often
               | reveal unstated assumptions that were less than obvious
               | if you just read their formulas.
        
               | sebastialonso wrote:
               | Is it possible your mental model of what CS is more
               | aligned with software engineering rather than actual CS?
               | Could you share some examples of what you consider to be
               | CS but lacks any mathematical relation?
               | 
               | I agree is not a useful grouping in practice. I'm just
               | interested in what makes you think like you do.
        
               | vidarh wrote:
               | I did categorically _not_ claim, nor even suggest, that
               | any CS  "lacks any mathematical relation".
               | 
               | What I claimed was that in computer science we often
               | discuss things in terms that would not be the natural way
               | of dealing with it in maths. We do that because our focus
               | is different, and our abstractions are different.
               | 
               | It doesn't mean it's not math. It means it's not useful
               | to insist that it isn't a different field, and its obtuse
               | when people insist it's all the same.
        
           | 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).
        
               | ndriscoll wrote:
               | I think we're in agreement. My comment about the halting
               | problem was meant to refer to Rice's theorem (the name
               | was slipping my mind), which I occasionally see people
               | use to justify the idea that you can't prove interesting
               | facts about real-world programs. In practice, real-world
               | programming involves constantly proving small, useful
               | theorems. Your useful theorem (e.g.
               | `Map[User,Seq[Account]] => Map[User,NetWorth]`) is
               | probably not that interesting to even the category
               | theorists, but that's fine, and there's plenty you can
               | learn from the theorists about how to factor the proof
               | well (e.g. as _.map(_.map(_.balance).sum)).
        
               | 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
        
               | GoblinSlayer wrote:
               | >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.
               | 
               | That's not unique, all quantitative theories allow small
               | modifications. Then you select parsimonious theory.
        
               | waterhouse wrote:
               | "There are those who tell us that any choice from among
               | theoretically-equivalent alternatives is merely a
               | question of taste. These are the people who bring up the
               | Strong Church-Turing Thesis in discussions of programming
               | languages _meant for use by humans_. They are malicious
               | idiots. The only punishment which could stand a chance at
               | reforming these miscreants into decent people would be a
               | year or two at hard labor. And not just any kind of hard
               | labor: specifically, carrying out long division using
               | Roman numerals. " -- Stanislav Datskovskiy
        
               | godelski wrote:
               | No one is suggesting programming with lambda calculus.
               | But it would be naive to think lambda calculus isn't
               | important. They serve different purposes.
               | 
               | We didn't:                 bring up the Strong Church-
               | Turing Thesis in discussions of programming languages
               | meant for use by humans.
        
               | Shorel wrote:
               | Coding is math in the sense that coding is a subset of
               | math.
               | 
               | Mathematics is a very extensive field, and covers a vast
               | amount of subjects.
               | 
               | For the same reason it can't be said that mathematics is
               | equivalent to coding, as there are many things in
               | mathematics that are not relevant for coding.
               | 
               | However, by far the most interesting parts of coding are
               | definitely related to mathematics.
        
             | 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.
        
               | GoblinSlayer wrote:
               | Wheeler: It from bit. Otherwise put, every it--every
               | particle, every field of force, even the space-time
               | continuum itself--derives its function, its meaning, its
               | very existence entirely--even if in some contexts
               | indirectly--from the apparatus-elicited answers to yes-
               | or-no questions, binary choices, bits. It from bit
               | symbolizes the idea that every item of the physical world
               | has at bottom--at a very deep bottom, in most instances--
               | an immaterial source and explanation; that which we call
               | reality arises in the last analysis from the posing of
               | yes-no questions and the registering of equipment-evoked
               | responses; in short, that all things physical are
               | information-theoretic in origin and that this is a
               | participatory universe.
        
             | 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.
        
               | GoblinSlayer wrote:
               | They just invent new characters.
        
               | xigoi wrote:
               | What do you mean? Most letters used in math are just
               | Latin and Greek letters in different fonts or
               | stylizations.
        
               | 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?
        
               | GoblinSlayer wrote:
               | That's another gap: mathematical classes are ideal
               | representation of fantasy, programming classes are leaky
               | representation of reality.
        
               | whitehexagon wrote:
               | > Coding IS math.
               | 
               | The murky world of software patents would like a word
               | about that.
               | 
               | For me, coding also feels artistic at times. But we see
               | artistic beauty in mathematics all the time, so no
               | wonder. But often I look at ugly code, and maybe that is
               | subjective, but fixing that code makes it also feel
               | prettier.
               | 
               | It is clear all developers have their owm artistic style,
               | and probably that is why there is so much disagreement in
               | the industry. Maybe we are lacking the pure mathemetical
               | language to describe our intent in a more beutiful and
               | precise way that is more clearly the-right-way. As in how
               | we find beauty in simple physics equations.
        
             | 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.
        
               | leptons wrote:
               | >All of that code is a series of logical statements and
               | expressions. Mathematical logic.
               | 
               | Which code? The machine code that underlies everything?
               | Or the lines of simple high-level CRUD that don't even
               | need a single number or logic statement to function? Not
               | all programming has to be mathematical or even logical at
               | a high enough level, and I say this as someone who's been
               | coding assembly language for 40 years.
        
               | voidspark wrote:
               | > Or the lines of simple high-level CRUD that don't even
               | need a single number or logic statement to function?
               | 
               | Those lines ARE mathematical logical statements.
               | 
               | Each line defines logical operations that are executed by
               | the computer.
               | 
               | Same for high level or low level programming. It's all
               | logic.
        
               | leptons wrote:
               | Storing a string in some abstraction is not a
               | mathematical operation. I'm done with this thread, it's
               | going way too far down too many rabbit holes. The quarks
               | that make up the matter that the computers are made of
               | are pure "math". There, now I've moved the goalposts.
        
               | voidspark wrote:
               | That is a narrow perspective of mathematics and computer
               | science.
               | 
               | Assigning a variable is a mathematical operation. It is a
               | logical state transition. This is formalized in
               | Programming Language Theory.
               | 
               | We are not talking about quarks. We are talking about
               | lines of code which are objectively mathematical
               | statements, no matter how non-mathematical they seem to
               | you subjectively.
               | 
               | You start with a practical problem to solve, and a
               | computing machine that can perform logical operations on
               | data. Your job is to figure out a correct sequence of
               | logical operations that will solve the problem. The
               | program that you have written is a mathematical
               | structure. It is mathematics.
               | 
               | https://en.wikipedia.org/wiki/Semantics_(computer_science
               | )
        
               | GoblinSlayer wrote:
               | You confuse map with the territory. By the same logic you
               | can say quarks are mathematics, because they are modeled
               | by a theory that has some mathematics in it.
        
               | voidspark wrote:
               | That may be true to some extent, but I think you are
               | missing the point. Quarks are physical in nature, and
               | code is logical in nature. Programs themselves are formal
               | systems. Code isn't just modelled by mathematics, it is
               | defined by mathematics.
               | 
               | In the case of code, we can argue that the map is the
               | territory.
        
               | GoblinSlayer wrote:
               | Code is logical if you define logic as reasoning in
               | general, broader than mathematics, and since it runs in
               | physical environment, it now interacts with a messy
               | world. Code is defined by business requirements, and
               | there's no mathematics for that.
        
               | voidspark wrote:
               | Now you're talking about the human activity of writing
               | code, not the code itself.
               | 
               | Those business requirements are inputs to the process of
               | writing the code.
               | 
               | Once the code is actually written, that exists as a
               | formal logical system, defined by mathematics, not
               | business requirements.
        
               | GoblinSlayer wrote:
               | The discussion started about whether human needs math
               | skills to write code. That's what I mean when I say
               | programming isn't mathematics. Meaning of code is defined
               | by human, how do you intend code to be defined by
               | mathematics? The human first imagines mathematical
               | formulas, then by some unknown process they become code?
               | I don't think anybody does it like that. You start with
               | requirements, intuitively guess architecture, then
               | decompose it, it works more like Cauchy problem (but less
               | numeric, more conceptual, you have an owl, now draw it),
               | but I don't think anybody models it like that.
               | 
               | >Once the code is actually written, that exists as a
               | formal logical system, defined by mathematics
               | 
               | I still think that's not code, but your favorite model of
               | code. For spellchecker language is defined by mathematics
               | too: it splits text into words by whitespace, then for
               | each word not found in dictionary it selects best matches
               | and sorts them by relevance. Oh and characters are stored
               | as numbers.
        
               | voidspark wrote:
               | > The discussion started about whether human needs math
               | skills to write code.
               | 
               | Writing code IS a math skill. When writing code you are
               | writing logic in a formal system. Logic is mathematics.
               | 
               | You may be thinking that mathematics is just like doing
               | arithmetic or solving equations. It is way deeper and
               | broader than that.
               | 
               | > I still think that's not code, but your favourite model
               | of code
               | 
               | Code is not just modelled through mathematics, it is
               | actually defined by mathematics. It is fundamentally a
               | mathematical construct, grounded in formal semantics.
               | 
               | https://en.wikipedia.org/wiki/Semantics_(computer_science
               | )
        
               | godelski wrote:
               | Our mathematical models of reality (i.e. Physics) is not
               | the same as reality. So yes, by the same logic "quarks"
               | are mathematics, but only in the same way that a "cup" is
               | English. The quark was a great example, considering we
               | can't observe it and purely rely on mathematical models,
               | but the same argument would still hold true for a bowling
               | ball. Physics is our description of reality, not reality
               | itself. Our description of reality highly leverages the
               | language of math, as that language was developed to
               | enforce rules of consistency. Much the same way we design
               | our programming languages, which is why programming
               | language people study so much more math than your typical
               | CS person.
               | 
               | If you're going to accuse someone of confusing the map
               | with the territory, you really should make sure you
               | aren't making the same error.
        
               | GoblinSlayer wrote:
               | How math helps with programming languages? What math says
               | about zero based indexes? How do you prevent off by one
               | errors? How do you prevent buffer overflows? It's
               | ergonomics problems.
        
               | 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".
        
               | leptons wrote:
               | Sorry but you are wrong. "CREATE, READ, UPDATE, DELETE"
               | operations are not mathematical in nature. It doesn't
               | matter what the data is or how esoteric you want to get
               | with it - a programmer doesn't need any math at all for
               | simple CRUD. You're trying to move the goalposts all the
               | way back to the 1800s to win a pointless internet
               | argument.
        
               | voidspark wrote:
               | CREATE, READ, UPDATE, DELETE are fundamentally
               | mathematical in nature.
               | 
               | In a typical implementation these are database
               | operations. That involves relational algebra operations,
               | state transitions, boolean logic.
               | 
               | The READ part can be a very complex SQL query (composed
               | of many algebraic operations) but even the simplest query
               | (SELECT * from t where ID = 1) is filtering a set based
               | on a predicate. That is mathematics.
               | 
               | No one is moving goalposts. Set theory and logic are at
               | the foundations of mathematics.
        
               | seadan83 wrote:
               | It's almost the argument of programming vs computer
               | science coming out here.
               | 
               | This is math:
               | 
               | {x | x.id = 1}
               | 
               | OTOH, a SQL query is a SQL query.
               | 
               | This thread is hilarious though. It's like
               | 
               | - Cashier: here is your change.
               | 
               | - Customer: you did math!
               | 
               | - Cashier, no, I gave you change.
               | 
               | - Customer: that IS math!
               | 
               | - Cashier: You mean, I used math to give you change?
               | 
               | - Customer: No, giving change doesn't use math, it IS
               | math!!!!" [2]
               | 
               | = D
               | 
               | Moving along.. FWIW, indeed SQL was created to model set
               | theory (relational algebra and tuple calculus), the close
               | relationship is no accident of course [0][1])
               | 
               | > No one is moving goalposts
               | 
               | I feel too they are.
               | 
               | First goal post:
               | 
               | > 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
               | 
               | Second goal post:
               | 
               | > CREATE, READ, UPDATE, DELETE are fundamentally
               | mathematical in nature
               | 
               | CRUD is closely related to SQL, and SQL is closely
               | related to various mathematics. Are they identical and
               | therefore equivalent? No - because your database is not
               | going to like it when you write "{x | x.id = 1}", and the
               | Oracle DB might not like something that you can write for
               | your Postgres DB.
               | 
               | [0] https://simpleprogrammer.com/mastering-sql/
               | 
               | [1] https://en.wikipedia.org/wiki/SQL
               | 
               | [2] To quote: """Not "coding uses math", I mean it is
               | math""" @ https://news.ycombinator.com/item?id=43872771
        
               | voidspark wrote:
               | Code is logical in nature and is defined by mathematics.
        
               | ndriscoll wrote:
               | The problem you're running into is that people who have
               | some "mathematical maturity" don't get bogged down in
               | notation, so it's difficult for them to see the
               | distinction you're trying to draw between e.g. `{ x[?]S |
               | x.id = 1}` and `select x from S where x.id = 1`[0]. You
               | say "a SQL query is a SQL query" and they just think
               | "yes, which is also obviously a mathematical expression".
               | 
               | Computer programs _are_ proofs[1]. This is intuitively
               | and also formally true. You would agree writing proofs is
               | doing math, yeah? Then obviously writing a computer
               | program is also doing math.
               | 
               | Like I have a degree in math and have been a software
               | engineer for over a decade. I do not know what
               | distinction people are trying to get at. It's like trying
               | to argue about the distinction between U(1), the complex
               | numbers with magnitude 1, and the unit circle, and
               | getting upset when the mathematicians say "those are 3
               | names for the same thing". Or saying that writing C is
               | programming but writing in a functional language like
               | Scala or Haskell (or Lean) is not.
               | 
               | [0] Modulo details like NULLs and multi-set semantics,
               | but surely that's not the distinction?
               | 
               | [1] Up to isomorphism
        
               | godelski wrote:
               | I understand you have strong opinions, I just don't
               | understand why.
               | 
               | In math are highly concerned with structures and
               | abstraction. We have things called operators. They aren't
               | just addition and multiplication. We also use those words
               | to describe different operations. They have things like
               | groups, rings, fields, and algebras. Yes, plural.
               | 
               | The purpose of these things is to create logical
               | frameworks. It matters not what the operators are. Nor
               | does it matter what objects we operate on. Poincare is
               | explicitly saying this.
               | 
               | The part you're not understanding is the abstraction.
               | This is what math is about. It is also why the
               | Programming Language people are deeper in the math side
               | and love Category Theory (I have a few friends who's PL
               | dissertations are more math heavy than some math
               | dissertations I've seen). It's no surprise. What's a
               | function? How do you abstract functions? How do you
               | define structure? These are shared critical questions. PL
               | people are more concerned with types but I wouldn't say
               | that makes them any less of a mathematician than a set
               | theorist.
               | 
               | We can perfectly describe the CRUD operations with set
               | theory. Do most programmers need concern themselves with
               | this? Absolutely not. But is it something people
               | designing those operations and systems is thinking about?
               | Yes.
               | 
               | I'd encourage you to learn some set theory, abstract
               | algebra, and maybe a bit of cat theory. It'll make these
               | things pretty clear. But I'd caution about having strong
               | opinions on topics you aren't intimately familiar with.
               | Especially when arguing with those that are. Frankly,
               | CRUD is a terrible example. I'm confident a quick google
               | search (or asking a GPT) would quickly point you to
               | relational algebra. It's discussed in most database
               | classes. It certainly was in the one I was an assistant
               | for.
        
               | leptons wrote:
               | You could say that math is behind the structure of a
               | leaf, but the farmer doesn't care about that. Keep moving
               | the goalpost all you want, I don't have time to argue
               | these pointless things, and I stopped reading after the
               | first sentence of your comment. I'm done here.
        
               | voidspark wrote:
               | You seem really angry at the field of Computer Science
               | for some reason.
               | 
               | We are talking about textbook CS fundamentals.
               | 
               | https://en.wikipedia.org/wiki/Semantics_(computer_science
               | )
        
               | GoblinSlayer wrote:
               | CS isn't programming, it doesn't write code.
        
               | seadan83 wrote:
               | > I understand you have strong opinions, I just don't
               | understand why.
               | 
               | As someone that is "on the other side of the fence", and
               | getting flamed for it, maybe I can shed some light since
               | I have the other perspective as well. IMO, The reason for
               | not seeing eye to eye is (for example) akin to saying
               | "word problems are math". (Thinking of a grade school
               | word problems for common reference). Yes, they are
               | readily mapped to mathematical models that can solve the
               | word problem & perhaps almost indistinguishably so.
               | Though no - word problems are not math. Word problems are
               | a series of phrases and words. That's where the talking
               | past each other comes in... Different interpretations of
               | "word problems are math", or "code is math". It's
               | seemingly not clear whether we are talking about logical
               | 'implies', 'element of', or 'equals'.
               | 
               | Which goes to "We can perfectly describe the CRUD
               | operations with set theory.", we all agree there. That is
               | not readily conveyed though when writing things like
               | "code is math".
        
               | godelski wrote:
               | > That's where the talking past each other comes in...
               | 
               | Then sorry, but that's your own damn fault. I was clear
               | about my definition and quoted a famous mathematician to
               | give some authority, to not be "trust me even though I'm
               | some rando". The way to respond to that is not "you're
               | wrong, trust me, I'm some rando".
               | 
               | Yes, I agree we're misunderstanding each other because
               | we're using different definitions but "you've" rejected
               | "mine" without defining "yours" and expecting everyone to
               | understand. Of course that'll lead to confusion. You can
               | reject the mathematicians definition of math, but you
               | sure gotta say more than "trust me" and it's a pretty
               | wild thing to do, especially as non mathematicians.
               | 
               | The problem here is one side who's dabbled in cooking
               | says "a chef makes desserts" and chefs are responding "we
               | do a lot more than that". Maybe there's a few chefs that
               | go "yeah all I do is dessert" and everyone points to that
               | while ignoring the second part of their sentence is "but
               | that's just my speciality." Wouldn't you think that
               | conversation is insane? The only reason it's obviously so
               | is because we all know what a chef is and agree on the
               | definition. But who is better qualified to define the
               | chef's job? The chef or consumer?
        
               | ndriscoll wrote:
               | A while back I made this[0] as a quick demo of generic
               | batching for CRUD requests. It's very much practically
               | oriented (it's for performance optimization while making
               | the code nicely reusable/not muddying up the business
               | logic), but also felt quite a bit like the same sort of
               | things I did in my math degree.
               | 
               | Actually I'm starting to wonder whether the thing that
               | made university math easy for me was I quickly developed
               | a good internal "type checker"/"type inference engine" in
               | my head, and that helped make the next steps of proofs
               | seem straightforward.
               | 
               | [0] https://gist.github.com/ndriscoll/881c4f5f0398039a3a7
               | 4543450...
        
               | seba_dos1 wrote:
               | Just because what you're working on specifically is an
               | equivalent of middle-school math doesn't tell us much
               | about the field as a whole.
               | 
               | Though middle-school or not, it's still math.
        
               | Shorel wrote:
               | Mathematics is not "equations". Most of mathematics is
               | not related with calculus either.
               | 
               | For anything CRUD, you put the data into a database. The
               | underlying database is relational, or a key->store.
               | 
               | If it's relational, that's one branch of mathematics. If
               | it's another kind of database, it's another branch of
               | mathematics. Mathematics is extensive, and covers more
               | things you can imagine at a glance.
               | 
               | The main difference between writing mathematics and
               | programming, and this applies to any form of programming,
               | is that in mathematics writing a formal proof is
               | amazingly close to: you write the program, and you are
               | also the compiler, and you are the CPU, performing all
               | operations yourself. With programming you only have to
               | write the program.
               | 
               | Source: On one hand I have studied pure mathematics (not
               | the simplified applied mathematics that are taught in
               | engineering, which is mostly equations), on the other
               | hand I have been working as a software developer for over
               | 15 years.
        
             | CyberDildonics wrote:
             | _forming relationships between objects_
             | 
             | This is vague and doesn't mean anything. People can't even
             | agree what 'objects' are and people did a lot of
             | programming before the term 'object' was invented.
             | 
             | Programming is about is fundamentally about instructions
             | and data. Yin and yang of two things that are completely
             | different, even if people can occasionally mix them and
             | conflate them.
        
               | godelski wrote:
               | Category theory is often jokingly called the study of
               | dots and arrows. What's a dot? Anything. What's an arrow?
               | A relationship.
               | 
               | I'm surprised I hit a nerve with so many people. I'm
               | quoting someone who's considered one of the greatest
               | mathematicians. Obviously I don't know the backgrounds of
               | people but it seems like programmers have strong opinions
               | on what math is that disagrees with what mathematicians
               | say they do.
               | 
               | https://en.wikipedia.org/wiki/Category_theory
        
             | vidarh wrote:
             | It's math the way everything is physics, as well as the way
             | physics is philosophy (as the natural sciences started out
             | as branches of philosophy).
             | 
             | In other words: It's math in a sense that for most of us
             | with a computer science background is often not very
             | relevant to how we work.
        
           | 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.
        
             | jauntywundrkind wrote:
             | The a capital example of an exception that prove the rule.
             | 
             | I absolutely value & have huge respect for the deeply
             | computational works that advance us all along!
             | 
             | But this is an exceedingly rare event. Most development is
             | more glue work than advancing computional fundamentals.
             | Very very very little of the industry is paid to work on
             | honing data structures so generally.
        
         | 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.)
        
         | globnomulous wrote:
         | > Good code doesn't just solve a problem, it solves it in a way
         | that's readable and modular.
         | 
         | Strongly disagree.
         | 
         | There are plenty of cases where non-modular code is more
         | readable and faster than modular code (littered, presumably,
         | with invocations of modular logic).
         | 
         | There are also countless cases, particularly in low-level
         | languages or languages with manual memory management, where the
         | best solution -- or the correct solution -- is far from
         | readable.
         | 
         | Readability is anyways in the eye of the beholder (My code is
         | readable. Isn't yours?) and takes a back seat to formal
         | requirements.
         | 
         | Just as a matter of personal style, I prefer long, well-
         | organized functions that are minimally modular. In my
         | experience, context changes -- file boundaries, new function
         | contexts, etc -- are the single greatest source of complexity
         | and bugs, once one has shipped a piece of code and needs to
         | maintain it or build on it. Modular code, by multiplying those,
         | tends to obscure complexity and augment organizational problems
         | by making them harder to reason about and fix. Longer functions
         | certainty feel less readable initially but I'd wager they
         | produce better, clearer mental models, leading to better
         | solutions.
        
           | quails8mydog wrote:
           | I think the important concept that "readable and modular" is
           | trying to get at is how easy is it to continue working on the
           | code in future. There's definitely codebases that are easier
           | to work on than others, even when the domain is the same.
           | 
           | I'd say that readability, which often boils down to
           | consistency, and modularity are ways to do this, but they
           | aren't the only ways. And as you say, sometimes there's a
           | need for "unreadable" code, so not everything can be easy.
        
         | heisenbit wrote:
         | Organization may also benefit from spacial skills.
        
         | sebastialonso wrote:
         | A lot of people in this type of threads always makes the same
         | mistake: confusing what math is with branches of math, or
         | rather, ways in which math is used. The way the education
         | system is built certainly contributes to this.
         | 
         | I've always found the car metaphor to work very good to
         | understand this: A car is a machine that can transport itself
         | to point A to B (some other rules apply). There are different
         | types of cars, but you certainly haven't understood the
         | definition of you say that something is not a car because is
         | not a Volvo, or because it doesn't look like a Ford, when it's
         | clearly able to transport itself.
         | 
         | Math is the study of ideal objects and the way they behave or
         | are related to each others. We have many branches of
         | mathematics because people have invented so many objects and
         | rules to play with them. Programming is nothing if not this
         | very definition. The fact that you don't have to "use math"
         | when programming is not really addressing the point, it's like
         | saying a car is not a car because it has no discernible brand.
        
           | GoblinSlayer wrote:
           | Declarative construct is made of relations, but imperative
           | execution isn't, rather it's a process in time, but time is
           | not a thing in math.
        
       | 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, h2: (x: R, h3: 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))
               | 
               | proof of UC => C = (epsilon, h, x_0) => let delta, h2 =
               | UC(epsilon,h) in (delta, h2(_,x_0,_))
               | 
               | 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".
        
               | owlbite wrote:
               | Most math is more about definition, proof and
               | structuring/relationships than about numbers. It is a bit
               | of a joke among math students that numbers above 5 are
               | effectively infinity, they crop up that rarely.
        
             | voidhorse wrote:
             | This. And we do a huge disservice to tons of people by
             | basically instilling the opposite idea. So many of the
             | people I know that either claim they are "not math people"
             | or who claim they "dislike math" say this because they were
             | subject to nothing but tedious calculation in school and
             | were never show the logical, conceptual, and actually
             | _interesting_ parts of mathematics. I despised math until I
             | read Frege 's foundations of arithmetic in college since it
             | was the first time I ever had someone actually show the
             | point and make it interesting.
        
         | 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.
        
         | robocat wrote:
         | > unless you show experimentally that those bunch of neurons
         | can be grouped into two non-overlapping regions
         | 
         | A good place to look is after brain trauma. Where people end up
         | with weird missing functionality.
         | 
         | Oliver Sacks writes about some of the weird side effects of
         | brain trauma.
         | 
         | We could experiment on mathematicians or writers by causing
         | trauma to different parts of the brain...
         | 
         | Or neural stimulation/anaesthetic of brain regions might show
         | something.
        
         | swinglock wrote:
         | I figure the programming brain matters the most for
         | programming.
        
       | 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.
        
               | Nevermark wrote:
               | > I strongly disagree with this. Children play. Most
               | animals play.
               | 
               | I am not arguing against this. On the contrary, I agree
               | with this completely.
               | 
               | Pairing the opportunity to learn and use highly general
               | long term knowledge, toward progression in their own
               | intrinsic interests (crafting, whatever) is the point I
               | am making.
               | 
               | The alternative, a long line of math for math's sake,
               | which neglects to harness and support each child's need
               | and motivation to continually advance their own natural
               | interests in all kinds of idiosyncratic directions.
        
           | 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
        
               | seba_dos1 wrote:
               | I remember my high school math teacher responding "that's
               | an interesting question, I don't know" and then coming
               | back with an answer the next lesson after researching the
               | subject.
               | 
               | I guess I've been lucky with my math teachers.
        
             | 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
        
               | seadan83 wrote:
               | The word "is", typically refers to the logical equals
               | operator (written as "="). Let A = Math, and let B =
               | Language, the phrase "Math is Language" is therefore "A =
               | B". My claim is that "B != A", which implies "A != B"
               | because "!=" is reflexive. "A != B" then contradicts the
               | claim "A = B". In words: because "language is not math",
               | therefore it cannot be true that "math is language".
               | 
               | This is not number theory, not set theory, just logic. I
               | don't see how the properties of Abelian groups applies. I
               | do suspect that non-abelian groups is a case where "!(A -
               | B) [?] !(B - A)" is false, and would be a contadiction to
               | my counter claim if "!(A - B) [?] !(B - A)" was my
               | counter-claim. No, my counter claim is simply that
               | because "B != A" therefore "A != B"
               | 
               | The statement "!(A - B) [?] !(B - A)" is quite different,
               | and I'm not 100% sure whether you are mixing set and
               | logic notations? [0][1] It does seem you are bringing in
               | number theory concepts, or we are misunderstanding one
               | another?
               | 
               | I assume "-" is the set mapping operator and "[?]" is
               | logical implies, and "!" is logical not. "!(A - B) [?]
               | !(B - A)" could potentially be phrased as: "If the
               | element A cannot be mapped to B, then the element B
               | cannot be mapped to A". I would agree that statement is
               | not 'generally' true. Could you please clarify so we are
               | not talking past each other.
               | 
               | [0] Per google: The symbol "-" is a mapping symbol,
               | typically used to indicate a function or relationship
               | where one element maps to another. It's not a standard
               | logical operator in the same way that symbols like &&,
               | ||, or ! are. Instead, it represents a directional
               | relationship between sets or elements, often seen in set
               | theory and mathematical notations
               | 
               | [1] https://simple.wikipedia.org/wiki/Implication_(logic)
        
               | thaumasiotes wrote:
               | > This is not number theory, not set theory, just logic.
               | 
               | Try that in a philosophy class and you can expect an F.
               | 
               | A math class too.
        
               | seadan83 wrote:
               | The proposition was "A = B" (logical equals, A and B are
               | entities)
               | 
               | The simple refutation was: because B != A, therefore A !=
               | B
               | 
               | That WAS the math exam!! No group or set theory needed.
               | It's simple and this is not interesting.
        
               | thaumasiotes wrote:
               | > The proposition was "A = B" (logical equals, A and B
               | are entities)
               | 
               | That's only in your head. Inventing claims so that you
               | can pretend other people are wrong isn't a good move.
               | 
               | > That WAS the math exam!! No group or set theory needed.
               | It's simple and this is not interesting.
               | 
               | I'm surprised you can pass a math class.
        
               | seadan83 wrote:
               | > That's only in your head. Inventing claims so that you
               | can pretend other people are wrong isn't a good move.
               | 
               | I'm not the only one that interprets a statement as "Math
               | is Language" to be of the form "A = B" where "math" is A,
               | "language" is B, and "is" is the equals operator, see:
               | https://news.ycombinator.com/item?id=43874322
               | 
               | Seems kinda simple.. You're engaging in a almost pure
               | personal attacks. Care to address the substance of how
               | the 3 word long statement is not of the form "A = B", but
               | is of some other different form? In which case, perhaps
               | you can guide the conversation for why it is an
               | interesting statement or not? If you want to change all
               | the givens and use your own definitions, please provide
               | those. Without common ground, this remains uninteresting.
        
               | thaumasiotes wrote:
               | > I'm not the only one that interprets a statement as
               | "Math is Language" to be of the form "A = B" where "math"
               | is A, "language" is B, and "is" is the equals operator,
               | see: https://news.ycombinator.com/item?id=43874322
               | 
               | This appears to be a link that contains zero support for
               | your sentence. Neither the comment you linked nor the
               | response below it features such an interpretation.
               | 
               | > Seems kinda simple.. You're engaging in a almost pure
               | personal attacks. Care to address the substance of how
               | the 3 word long statement is not of the form "A = B", but
               | is of some other different form?
               | 
               | You're in luck! I've already provided that material, and
               | you responded to it. For further discussion, you'd need
               | to have a better working understanding of English.
        
               | seadan83 wrote:
               | Very cool how the last sentence you leave off with always
               | has to be a personal attack. It's breaking the rules of
               | the discussion, irrelevant. Stop trying to win points.
               | Let's focus on the substance.
               | 
               | > This appears to be a link that contains zero support
               | for your sentence. Neither the comment you linked nor the
               | response below it features such an interpretation.
               | 
               | It's interesting, because there is a disagreement about
               | whether there is a paradox or not. There is a paradox if
               | you take my perspective (that an equals relationship is
               | being expressed), but none if an implication relationship
               | is assumed.
               | 
               | These two sentences:
               | 
               | - "By that same logic you could also say that language is
               | math"
               | 
               | - "Not quite, but the inverse is true."
               | 
               | The "not quite" says that "language is math" is not true.
               | So we have "A = B", but "B != A", which is a paradox.
               | OTOH it's not a paradox if what is actually being said is
               | "A => B" but "B !=> A"
               | 
               | > You're in luck! I've already provided that material,
               | and you responded to it.
               | 
               | Hello bad faith! I hope you are doing well today. Let's
               | end the conversation here.
        
               | godelski wrote:
               | As I said elsewhere (here for others), I'm not going to
               | play this game of * _willful misinterpretation.*_ Your
               | very words do not hold up to the same bar your are
               | attempting to hold mine to. I know you are upset you got
               | caught in a lie, but fuck around and find out. -\\_(tsu)_
               | /- Domain experts can recognize other domain experts
               | pretty easily                 > No, my counter claim is
               | simply that because "B != A" therefore "A != B"
               | 
               | We all know that this is not always true. It may be true
               | in certain cases, in certain fields (pun intended), but
               | you know that this is such a basic logical fallacy that
               | it is taught to children.
               | 
               | Here's a counterexample so we can lay this to rest.
               | Let "A" be "a square"       Let "B" be "a rectangle"
               | B != A -> "A rectangle is not a square" (True)       A !=
               | B -> "A square is not a rectangle" (False)
               | 
               | Stop cosplaying, stop trolling, stop acting in bad faith.
               | 
               | Did you even look at my name? There's 2 people that
               | should come to mind. Certainly any logician would notice.
        
               | thaumasiotes wrote:
               | > Math major here.
               | 
               | You say that like you think it's a qualification?
               | 
               | You're not making it look good. A common use of _be_ is
               | to express set membership rather than identity. For
               | example,  "two is an even number" or "tigers are cats".
               | 
               | We may hope that one day you'll come to realize that set
               | membership is not reflexive, and - more to the point -
               | also not symmetric.
        
               | seadan83 wrote:
               | You're saying that "Math" and "Language" are 'sets'? And
               | that the phrase "Math is Language" should be interpreted
               | as expressing the relationship between sets?
               | 
               | If we do want to talk sets, that seems far more
               | interesting. The statements like "Math is a language", or
               | "Math has equivalence classes within languages", or
               | "Mathematics are a Language" are slightly more
               | interesting to consider IMO.
               | 
               | >> Math major here.
               | 
               | > You say that like you think it's a qualification?
               | 
               | Agree, appeal to authority fallacy. I take that over mis-
               | framing any day though.
               | 
               | Any old-timers might appreciate that we're arguing over
               | the meaning of the word "is" =D
        
               | seadan83 wrote:
               | > A common use of be is to express set membership rather
               | than identity
               | 
               | Google for "logical "is a" vs logical "is"".
               | 
               | Google AI answers this:
               | 
               | > "is" typically represents an equality relation
               | 
               | Rest is from the AI response:
               | 
               | In logic, "is" typically represents an equality relation,
               | while "is a" (or "is of the type") represents an
               | inclusion relation. "Is" indicates that two things are
               | the same or identical, while "is a" indicates that one
               | thing is a member of a larger class or set of things.
               | 
               | Logical "is" (equality):                  Meaning:
               | "A is B" means that A and B are the same thing, or have
               | the same properties.              Example:         "The
               | Eiffel Tower is in Paris" (the Eiffel Tower and the thing
               | in Paris are the same thing).
               | 
               | Logical "is a" (inclusion or type):
               | Meaning: "A is a B" means that A belongs to the category
               | or class of things that are B.              Example: "A
               | dog is an animal" (dogs are a type of animal).
        
           | hdkdicnsnjes wrote:
           | Real
        
         | 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...
        
               | seadan83 wrote:
               | The word "is", maps to the logical "equals" operator. I
               | agree with the example, but I don't agree it is relevant.
               | There is no implies operator.
               | 
               | The statement "Math is Language", where A is Math and B
               | is Language, maps to the logical assertion: "A = B".
               | 
               | If we are going to really be kinda twisty and non-
               | standard, we could interpret the english "is" to be "is
               | an equivalence class of". Which would map to your example
               | pretty well: language is indeed an equivalence class of
               | math, but math is not an equivalence class of language.
               | Though, nobody is talking about implies operator or
               | equivalence class here.. It's a "is" relationship,
               | logical *equals*
        
               | seba_dos1 wrote:
               | > The word "is", maps to the logical "equals" operator.
               | 
               | It very obviously doesn't. A square is a rectangle.
               | seadan83 is (probably) a mammal. Math is a language.
        
               | seadan83 wrote:
               | You point out the "is a" relationship, not the "is"
               | relationship, they are different. [0]
               | 
               | Find examples with two singular nouns and just the word
               | 'is'.
               | 
               | The phrase in question: 'Math is language' is an example,
               | or something like 'food is love' is too. I concede you
               | could interpret those last few sentences with poetic
               | license to be read more like: "A is a form of B", or "A
               | is a B" - though that is not what was written and this is
               | not a place to expect that much poetic license.
               | 
               | *edit*: a minute later, thought of a good example. "ice
               | is water". True that "ice is a form of water", but
               | strictly speaking no, "ice is not water". I'll concede
               | there could exist an implied "is a", or an implied "is a
               | form of", but that is poetic license IMO.
               | 
               | [0] Google AI summarized it pretty well: google "logical
               | "is a" vs logical "is"
               | 
               | > In logic, "is" typically represents an equality
               | relation, while "is a" (or "is of the type") represents
               | an inclusion relation. "Is" indicates that two things are
               | the same or identical, while "is a" indicates that one
               | thing is a member of a larger class or set of things
        
               | seba_dos1 wrote:
               | > You point out the "is a" relationship, not the "is"
               | relationship, they are different.
               | 
               | Well, what you reacted to was, let me copy'n'paste, "Math
               | is a language". It was _you_ who insisted that  "is" in
               | this sentence maps to "equals" relation, so thanks for
               | agreeing that you were wrong.
        
               | godelski wrote:
               | Honestly I don't think his point even stands. We were
               | using English to communicate and English doesn't have the
               | strict rules of mathematics. That's literally why we
               | created math (which I'll gladly call "a class of
               | languages"). He's right, "is" maps to "equivalent" but
               | he's also wrong because "is" also maps to "subset" and
               | several other things. "Is" is a surjection.
               | 
               | The problem here all comes down to seadan83 acting in bad
               | faith and using an intentional misinterpretation of my
               | words in order to fit them to their conclusion. I'm not
               | going to entertain them more because I won't play such a
               | pointless game. The ambiguity of written and spoken
               | language always allows for such abuse. So either they are
               | a bad faith actor "having fun" (trolling) finding
               | intentional misinterpretations to frustrate those who
               | wish to act in good faith or they are dumb. Personally, I
               | don't think they're dumb.
        
           | 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.
        
             | apeescape wrote:
             | Yeah fair point.
             | 
             | However, curious of what you base your claim "France and
             | the USSR had far more success" on?
        
         | 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
        
             | HarHarVeryFunny wrote:
             | Sheesh - why so touchy?!
             | 
             | Your response opened with addressing the headline, which
             | anyone who had "RTFM" (RTFA) would have realized was
             | unrelated to the body of the article. You then veered off
             | into a tangent about the nature of math which again was not
             | addressing the content of the article.
             | 
             | The underlying nature article, linked from the posted
             | story, makes it even more clear what is being discussed,
             | with the abstract stating:
             | 
             | > This experiment employed an individual differences
             | approach to test the hypothesis that learning modern
             | programming languages resembles second "natural" language
             | learning in adulthood.
             | 
             | https://www.nature.com/articles/s41598-020-60661-8
        
         | 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!
        
           | seba_dos1 wrote:
           | Frankly, with all the mess that music notation is and the way
           | it's often being taught, this may actually be a slight
           | upgrade over status quo. I have never experienced more
           | "that's just how it is" than in music.
        
         | 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.
        
         | LegionMammal978 wrote:
         | By the very expansive definition that you advocate for, what
         | exactly do we do that _isn 't_ math?
         | 
         | One could argue that all we do is turn thoughts, senses, and
         | memories into further thoughts and appropriate actions, which
         | is applying a pattern, which is math. But at that point the
         | definition is too broad to be helpful for anything but playing
         | word games.
        
       | 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.
        
         | john-h-k wrote:
         | > I certainly don't dispute the empirical validity of the
         | findings from the study
         | 
         | You absolutely should. Tiny sample size and poor statistical
         | method. It is p-hacking plain and simple
        
       | 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.
        
         | sota_pop wrote:
         | I have really come to enjoy using LINQ queries (specifically
         | with lambda syntax) in the C# language. Although I'm a little
         | biased because I work mostly in C#.
        
       | 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....
        
       | banq wrote:
       | If we distinguish between form and content: Mathematics = form;
       | language = content. However, mathematics is only one type of
       | form, and subject-predicate-object grammar also belongs to form,
       | yet grammar falls under language.
       | 
       | For example: "Matter determines consciousness." If we apply
       | first-principles thinking--where does matter come from? This
       | statement then becomes: "XXX created matter, and matter
       | determines consciousness." At this point, our interest shifts to
       | the first-principle subject "XXX," focusing our attention on it.
       | Who is XXX? God?
       | 
       | In this thought process, we use the subject-predicate-object
       | grammatical structure to trace back the original subject "matter"
       | in "matter determines consciousness"--where does matter come
       | from? Although this formal reasoning does not involve specific
       | mathematical formulas, it indeed employs formal logic to uncover
       | a flaw and opens the door to deeper rabbit-hole
        
       | voidhorse wrote:
       | Abstraction is a huge factor in this too. Language may be
       | dominant because we are at a stage in which the vast majority of
       | programming is little more than hooking together tidy
       | abstractions that are already highly optimized and predominantly
       | organized linguistically.
       | 
       | It you ever need to get into the guts of a system or need to
       | solve bleeding edge problems for which good abstractions don't
       | yet exist, the "math brain" becomes significantly more relevant.
       | 
       | I say this as someone who studied literature and philosophy. The
       | majority of what I know about programming and software
       | engineering I either taught myself or learned from the tutelage
       | of others on the job. Early on in my career, a solid mathematics
       | background was, indeed, not that relevant. These days, though,
       | I'd be lost without it. Whether you like it or not, when it comes
       | to doing real _engineering_ you necessarily need to establish
       | bounds and prove things about those bounds and typically you 'll
       | need to do this numerically or at the very least using inductive
       | structures. Linguistic aptitude is still relevant, but it helps
       | less in these cases.
        
       | sota_pop wrote:
       | As others have commented, I believe strongly that to define
       | "language brain" and "math brain" is a false dichotomy and bunk
       | neuroscience. Mathematics IS a language in itself; a collection
       | of symbols created to express concepts. This study works really
       | hard to make a statement that most people already know: anyone
       | can be a good programmer, mathematician, "whatever" if they have
       | the interest, drive, and opportunity to do it.
       | 
       | An interesting book that illustrates the evolving societal
       | perception of mathematicians (and by extension, computer
       | scientists) over time is "Duel at Dawn". The modern (sic recent)
       | notion is the reclusive genius (maybe even suggestion of autism)
       | who possesses the alien, superhuman, unattainable, too-cool-for-
       | you ability to process numbers and information that you can only
       | be born with. (Those familiar with the TV show "the big bang
       | theory" would recognize the trope of the "Sheldon Cooper"
       | character.) This is False.
       | 
       | The reality is that no one is born with the super-human ability
       | to do anything - anyone who is very good at something has worked
       | very hard to get good at that thing regardless of the perception.
       | 
       | edit: my initial criticism of "the study" was based upon the
       | article. On a skim of the actual cited paper, I revised my
       | specific criticism, but the actual paper still comes off as no
       | more than a mild eugenics argument dressed in psychology and
       | statistics jargon.
        
         | concordDance wrote:
         | Can't see any eugenics there, can you quote?
        
       | albertoCaroM wrote:
       | Although the study by Prat et al. (2020) suggests that linguistic
       | aptitude is a better predictor than numeracy for learning
       | programming in Python, it should be read carefully, as it can
       | easily be oversimplified.
       | 
       | To begin with, the study measures functional numeracy: the
       | ability to solve everyday numerical problems. This is quite
       | different from the kind of advanced mathematics often associated
       | with programming, such as formal logic, symbolic abstraction, or
       | the use of formal languages (as found in denotational semantics
       | or type theory).
       | 
       | These more abstract skills--not basic arithmetic--are essential
       | for understanding recursion, type inference, or algorithm design.
       | That functional numeracy has low predictive power in this study
       | does not imply that deep mathematical reasoning is irrelevant to
       | programming.
       | 
       | Moreover, the language used in the study is Python, which was
       | explicitly designed to be readable and semantically close to
       | natural language. This may give an advantage to individuals with
       | strong verbal skills, but the results don't necessarily
       | generalize to languages like C, Lisp, or Haskell, where symbolic
       | and logical density is much higher.
       | 
       | Finally, language and mathematics are not opposing domains. They
       | share cognitive underpinnings, such as working memory, executive
       | attention, and hierarchical structure processing. The key is not
       | which one "wins," but how they interact and complement each other
       | in different programming contexts.
        
         | mmaunder wrote:
         | > These more abstract skills--not basic arithmetic--are
         | essential for understanding recursion, type inference, or
         | algorithm design.
         | 
         | No they're not. Academia has spent decades trying to formalize
         | many aspects of programming and continues to be confused by the
         | lack of correlation between comp sci grads and innovative
         | programmers. Why is it that the drop-outs are succeeding so
         | wildly?
         | 
         | Recursion, for example, is learned by most of us real world
         | achievers when we hit a brick wall in programming that other
         | methods won't solve, and we have that aha moment of "this is
         | why this exists". Not because we studied advanced math with
         | symbolic abstraction, denotational semantics and type theory.
         | 
         | The uncomfortable truth is that almost all of professional
         | programming and innovative programming (creating useful stuff
         | never before seen) never uses any of the advanced math skills
         | that are prerequisites in every degree program. I think much of
         | the sadism around teaching this is perpetuated by "I did it so
         | you have to" and academic gatekeeping.
         | 
         | When you get really really good at programming and hit the most
         | productive zone in your life, it feels like language. That you
         | have the ability to just say it.
        
           | ndriscoll wrote:
           | When you get good at math, it also feels like language.
           | Mathematicians see expressions like `|x-y|` and the read it
           | as synonymous with "distance" just as they would "distancia".
           | Physicists pick out fragments of large equations and say
           | "this term acts sort of like an 'effective' mass", etc. There
           | is a sort of vocabulary to mathematical patterns.
           | 
           | Picking up a skill without intentional study is great, but
           | you still learned the skill. Programming languages _are_
           | formal languages. Most mathematicians don 't study
           | foundations either.
           | 
           | Professional programming doesn't often make use of specific
           | advanced mathematical _knowledge_ , but I find it makes
           | everyday use of the _skills_.
        
           | TheOtherHobbes wrote:
           | The drop-outs are "succeeding wildly" because people like
           | Turing, Church, and Hilbert invented the sand pit they're
           | playing in.
           | 
           | Knuth created LaTeX. Pandoc is written in Haskell, famous for
           | being a completely useless academic language with no real
           | purpose beyond torturing undergraduates (it says here.)
           | Efficient search and data compression algorithms aren't
           | hacked together in late night hobby coding sessions.
           | 
           | Cryptography, digital signal processing for images, sound,
           | and video, and ML core algorithms are all mathematical
           | inventions. The digital world literally runs on them.
           | 
           | "Real world achievers" might want to try being a little less
           | parochial and a little more educated about the originators of
           | the concepts and environments they take for granted.
           | 
           | Vibe coding "Social AI chatbot network with ads = $$profit$$"
           | or "Cat videos as a service" is only possible because the
           | entire field stands on the shoulders of mathematical giants.
        
             | grumpyprole wrote:
             | Well said. I guess such ignorance is not that surprising
             | given that most "programming" today is glueing code
             | together with scripting languages. This is really just a
             | form of configuration. It certainly requires domain
             | knowledge and a tolerance for digital bureaucracy, but not
             | always maths. I do wish schools would do a better job of
             | teaching that the entire fabric of western civilization
             | rests upon mathematics.
        
             | pdntspa wrote:
             | It sounds like these advanced skills might be needed to
             | build the platforms that the dropouts build on top of. But
             | I agree that, as a professional programmer of 20 years with
             | a 4-year business degree from a state school with a weak
             | math background (and also as someone with a talent for
             | writing and language), I have very little need for advanced
             | math in my day-to-day.
        
             | GoblinSlayer wrote:
             | >mathematical inventions
             | 
             | Like Rijndael?
        
           | notnullorvoid wrote:
           | You are making a rather wild assumption that dropouts don't
           | have the abstract math skills that correlate with programming
           | skill.
           | 
           | I'd argue that if they can figure out recursion after hitting
           | a brick wall like you describe, then that's a good indication
           | they did have abstract math aptitude to begin with.
           | 
           | In my personal experience the hardest part of mathematics is
           | it's grammar and language. It's very different from natural
           | language, whereas programming is much closer. You can take
           | nearly any math problem and convert it to pseudo code and
           | it'll be much more understandable for those programmers who
           | never studied (or struggled with) advanced math.
           | 
           | Programming requires a base level of natural language
           | aptitude that nearly all adults have, there's diminishing
           | returns for anything approaching the levels of a poet or
           | novelist for example.
        
           | Shorel wrote:
           | My own definition of mathematics for the sake of this
           | comparison: - If you can write a formal proof, starting from
           | some assumptions and proving some result, it is mathematics.
           | The assumptions are the axioms. Then you use logic, which is
           | the same programming logic, and then you get to some result.
           | 
           | It can be an invariant in a programming function, it can be a
           | more general result, if you can write a proof, it is
           | mathematics. Most algorithms involve proofs, so they are
           | mathematics.
           | 
           | It has nothing to do with it being "sadism" or academic
           | gatekeeping.
           | 
           | These people are doing mathematics without knowing it is
           | mathematics. That's all.
           | 
           | > Why is it that the drop-outs are succeeding so wildly?
           | 
           | Here is where you can learn about confirmation bias and
           | educate yourself.
        
         | bitzun wrote:
         | This reads like an LLM wrote it.
        
           | nurettin wrote:
           | It does! Who structures their posts like a platonic
           | rhetorical piece??
        
           | CjHuber wrote:
           | There is even the em dash in it
        
       | myflash13 wrote:
       | This tracks with my experience perfectly. Hated the math at my
       | Computer Science program in university, barely passed the math
       | courses while excelling at the programming courses, loved taking
       | linguistics, foreign languages, and literature as electives. To
       | this day, programming, foreign languages, and literature is what
       | I do all day every day.
        
       | blueboo wrote:
       | we'll eventually find that the language brain matters more for
       | math than the math brain.
        
       | dmos62 wrote:
       | My take on skills related to programming is that it's a dance
       | between writing skills and working memory. I've measurably bad
       | working memory, which had led to compensation with writing
       | skills, which led to a programming style that's fairly
       | disciplined and focused on "wholesome" readability. A downside is
       | that I still struggle interacting with code that's written by the
       | working-memory-oriented programmers.
       | 
       | I've recently taken up a daily practice to improve my cognitive
       | skills. Currently I'm using NeuroNation, and it is quite great.
       | The stimulus to start the practice was getting my memory tested
       | (clinically) and learning that it's below norm.
        
       | john-h-k wrote:
       | Has anyone here actually read the paper? Heavily clickbait
       | headline, completely exaggerating the study results, which
       | themselves are not very rigorous (to be generous)
       | 
       | Tiny sample size - 36 people completed
       | 
       | Numeracy has R^2 = .27 Language has R^2 = .31
       | 
       | They then run stepwise regression to determine variance
       | contributions, seemingly ignoring their earlier results, and this
       | leads to almost no contribution from numeracy. Why? Because they
       | have ~10% shared variance and stepwise regression is greedy -
       | will just take whatever you give it first.
       | 
       | I can't mention this part enough. If you got a second, very
       | similar language test, and added it to the model, you would
       | _also_ find it has almost no unique variance added.
       | 
       | Every thing they measure is incredibly noisy and they do not once
       | attempt to deal with this. Human based reviewers, time-to-
       | completion, etc.
       | 
       | p-value for "language learning is more significant than numeracy"
       | on the values they give (Steiger test) gives 0.772. Utterly
       | insignificant.
       | 
       | Also, to beat the point home, just think about the argument here:
       | * Numeracy contributes 27% of variance
       | 
       | * Language skills contribute 31% of variance
       | 
       | * After regression step, numeracy contributes only 2% of unique
       | variance. Because you added a correlated variable!
        
         | SanjayMehta wrote:
         | It reads like an ad for something.
        
         | hansvm wrote:
         | To be somewhat fair, their numeracy scatter plot visually looks
         | more like a dart board than any real process. The fact that you
         | got a positive-sloping line out at all from the regression has
         | to do more with the positions of the outliers than anything
         | else. You're at least able to visually examine the language
         | aptitude plot and see an up-and-to-the right connection between
         | the two variables.
        
           | john-h-k wrote:
           | I agree, but also via some napkin math, the chance of getting
           | those different results is something like 40%.
           | 
           | (Ie, if you sample the same signal twice for the numbers they
           | did in the study, there's a 40% chance it'll be >0.04 away
           | from the original sample, as numeracy was from language)
        
       | gitroom wrote:
       | Honestly, all this "math brain" vs "language brain" stuff just
       | feels off to me - I've always been more of a pattern and
       | abstraction person anyway. Makes me wonderif schools focused more
       | on teaching real abstract thinking early, would way more kids
       | just "get" programming without even stressing over math class?
        
       | whatagreatboy wrote:
       | Not treating math as just another language for expressing your
       | thoughts is a weird position to take. I cannot take this position
       | seriously.
        
       | jalopy wrote:
       | Interesting tidbit:
       | 
       | >>> In this study, high levels of these beta oscillations were
       | associated with faster learning and more programming knowledge
       | 
       | This makes me think those binaural beat programs attuned to beta
       | wave frequency might help with heavy coding sessions?
       | 
       | Can anyone point to studies that confirm/reject this?
        
       | yawboakye wrote:
       | tautological. math is language.
        
       | mathgradthrow wrote:
       | the language brain matters for math much more than the math
       | brain.
        
       | g_host56 wrote:
       | I could have told you this for free :)
       | 
       | but really it just depends: - web or app information software:
       | logic and language matters more here - doing what Donald Knuth
       | does: math matters more here
        
       | Shorel wrote:
       | My own definition of mathematics for the sake of this comparison:
       | 
       | - If you can write a formal proof, starting from some assumptions
       | and proving some result, it is mathematics. The assumptions are
       | the axioms. Then you use logic, which is the same programming
       | logic, and then you get to some result.
       | 
       | It can be an invariant in a programming function, it can be a
       | more general result, if you can write a proof, it is mathematics.
       | Most algorithms involve proofs, so they are mathematics.
        
       ___________________________________________________________________
       (page generated 2025-05-03 23:01 UTC)