The language brain matters more for programming than the math brain? (2020)
341 comments
·May 2, 2025armchairhacker
QuercusMax
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.
switchbak
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
> 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.
Someone1234
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
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.
godelski
> 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...
voidspark
> 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.
bawolff
> 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.
potatoman22
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.
dayvigo
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.
analog31
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".
xmprt
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.
leptons
>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...
CyberDildonics
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.
hinkley
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
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
State machines too
ajuc
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
> 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.
heisenbit
Organization may also benefit from spacial skills.
walleeee
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
> 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
> 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.
zahlman
> 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
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
> 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
> "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."
magicalhippo
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.
HarHarVeryFunny
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.
switchbak
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.
HideousKojima
>"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.
jauntywundrkind
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
> 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/TimsortIt 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
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
+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. :-)
hinkley
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?
QuercusMax
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.
photonthug
> 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.
reverendsteveii
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
> 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
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
alabastervlog
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.
lubujackson
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.
tapoxi
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
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.
_dwt
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.
jll29
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
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
math != calculation.
It's an actively stupid fiction for people who don't understand what math is.
johnmaguire
> 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?
voidhorse
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.
pier25
"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.
karmakaze
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 Poincaré)
It's basically being good at "naming things", in particular abstractions.
hirvi74
> 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.
pier25
"naming things" is really about "recognizing things" and/or "understanding things". It much deeper than just language.
FilosofumRex
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.
robocat
> 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.
twodave
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.
buffalobuffalo
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
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.
scripturial
> 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
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
The types of people who do these types of experiments almost never have a real understanding of math. They equate arithmetic with math.
sota_pop
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.
godelski
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...
vendiddy
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.
bee_rider
> 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.
rtkwe
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).
godelski
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
Jensson
Numbers are an abstraction, not just "imaginary" numbers, all numbers are imaginary they don't exist in reality.
sieabahlpark
[dead]
Nevermark
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.
hydrogen7800
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.”
thomasikzelf
Of course Brett Victor has the essay on his website: https://worrydream.com/refs/Lockhart_2002_-_A_Mathematician'...
It is a great read!
florbnit
> 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
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)
LegionMammal978
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.
atomicnumber3
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.
serial_dev
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
> … 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.
godelski
In either case it would seem to suggest we should radically change the system
thaumasiotes
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.
necovek
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
> 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.danielmarkbruce
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
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.
Nevermark
> 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.)
waynesonfire
what is the name / curriculum of such a class?
danielmarkbruce
"russian school of math". Putin may be a bad dude, but those russians seem to know a thing or two about math...
jeffhuys
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
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
jboggan
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.
FjordWarden
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
They get it from being an engineer!
QuercusMax
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
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
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
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?
senderista
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.
janalsncm
> 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
> 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
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
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.
deeThrow94
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
> 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.
trealira
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.
retrac
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
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.
deeThrow94
How do you communicate an inductive proof without language? Even formal symbolic logic is fundamentally linguistic.
Jensson
> 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?
DiscourseFan
Recursion itself is simply a conjecture. Nothing fundamental about it unless you believe Chomsky, but his is a speculative claim, not empirical per se.
umanwizard
> Recursion is also fundamentally linguistic
What does this mean exactly?
hbn
>> Recursion is also fundamentally linguistic
> What does this mean exactly?
What does this mean exactly?
umanwizard
Cute, but do you have a serious answer?
msvana
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
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.
resters
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.
canjobear
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!
Qem
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
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?
graemep
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
I would take the other side of the bet.
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.