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