It definitely involves language processing - I had to get into some different music working as a programmer, because stuff with lyrics would short-circuit my concentration. I’d even find myself typing out the words I was hearing in the song.
I wonder if there’s something here for biology as well. Working with disease biology, molecular bio, drug development, etc mandates engaging in a lot of weird mental lensing to consider what’s known, unknown, and plausible at a whole bunch of interacting levels. It isn’t quite a logic puzzle–reaching for language or series puzzle patterns leads to bio tricking you up–nor does it map well to Boolean or von Neumann architectures.
did they do one of them building with Lego?
Yeah, I mean. I would imagine most different types of tasks involve different brain activity patterns.
Insurance adjuster’s brains were scanned while they were working, and their brain patterns weren’t quite like people knitting or washing cars.
This is how I end up with variable names from Mountain Goats lyrics. I honestly don’t see the problem. withMyOwnBloodInMyMouth is a fine variable name.
HHHmmmm I used to program and debug code while riding my bike. Being away from the computer to just think it through helped immensely . I wonder how they would scan that?
Coding is nothing like language and not much like math either but math is important. Traits that make you good at math also make you good at programming. For example, if a developer cannot follow rules logically in certain orders they will make mistakes. Developers good at math are also more persistent than others and will keep working till the problem is fixed, they don’t take things as personally if they make a mistake, they learn and keep moving which is another important trait to have. That is how math fits in.
But learning to program is like learning how to play chess and it takes years to learn the patterns that win the game. You have to experience making mistakes and the time required to fix them to really learn. And there is sooo much to learn. Developers have to know how to structure info, name variables, when to make a new method, when to dependency injection, troubleshooting, how to improve performance, how to implement cross cutting concerns, ui/ux design, a/b testing, how to design databases, how to influence the team, how to test, how to deal with prod issues, how to rearchitect systems, and then every 3 years, you have to forget most of what you know and relearn. If you don’t keep up, technology will leave you behind.
Programming is also about making a desired result happen: setting up test i/o and chunks of code that can then get roped into production after testing succeeds. It’s also about streamlining your methods so that you’re not fuckin around wasting time not getting anywhere, cutting out unnecessary waiting and resolving cryptic errors with shoe-leather research and mining forums, blogs and references. It’s about using your tools effectively, efficiently. I agree math skills are directly useful. But there are two metaphors I think are more like programming than anything: cooking a complicated meal, and construction. Both require simultaneous operation on multiple levels, result oriented work, and streamlining. Straight up solving a math problem is like one or two of those levels. Coding anything complex would be more akin to solving an entire chapter or three’s worth of problems, and the problems are dependent on previous answers. That’s why I likened it to cooking or construction, since they’re nested-type activities.
I think the take-away is that coding involves elements of both logic and creativity. Sure you’re solving a problem using the tools at hand, the logic side that you could compare to math. But you’re also creating something where there was previously nothing, that’s the bit that can be compared to writing. I imagine this is why people who code can be found in such a wide range of personality types and demographics like Clive discusses in his book, it’s a multi-disciplinary skill-set.
Any programmer could have just told them that programming is not like language or math. (More specifically, any decent programmer could have told them that.)
You’re correct, programming is like many involved tasks like cooking and construction. I use construction analogies too. I agree, there is an endless amount of things to learn like what was mentioned plus DevSecOps, MLOps, cloud, Snowflake, refactoring, and on and on. I was explaining how math and language tie to programming and supporting the findings of the research.
For 30 years I’ve heard if someone is good at math they have the capacity to code but this isn’t always true. But there is some correlation. If you can find out what makes a good Dev, instruction would improve and interviewing would be more effective
I like how the brain scans show coding uses different areas of the brain from math and language. This aligns with how I see them. I see them as three separate gears I shift between but there are shared skills like knowing how to solve a math story problem is similar to understanding a user story aka requirement. That is one of many examples. It is about the shared traits between math and coding
To me, Math is 100 times easier than coding and that comes from someone who mastered Math but with coding over 30 years everything I master soon becomes obsolete. Now I am learning the cloud and command lines again. Next I’ll have to master edge computing, web assembly, and Jupiter notebooks. The writing is on the wall. As most people know, coding is not easy and devs have to deal with information overload constantly. English when writing papers or email is also simple compared to coding. Do I ever look for a blog on how to write the perfect email… nope.
I’m pleased to see coding occupy the complex areas of brain processing as that is exactly what it is. I believes this research proves coding and math are different and the next step is to determine why people good at math are generally more successful at coding
So, after monitoring the brains of people doing computer programming, they discover that Programming requires programmers to think hard. That was evidently not something that had occured to the researchers beforehand.
Well I can’t listen to music at all whilst coding, so there’s definitely music processing involved. Or perhaps not…
Yeah, I’ve found loads of bugs whilst actively freewheeling both the mind and the bike.
Out of interest, what do you mean when you say you “mastered Math”?
Interesting. For me, instrumental stuff helped me to get into flow.
The Social Network soundtrack was a staple for me
You know about Rubber Ducking?
I’ve lost count of how many times I answered my own stackoverflow question (usually 15 minutes after posting it, after beating my head against the wall all day).
I’m utterly stunted when it comes to foreign languages. My cognitive dissonance is so bad that I don’t believe foreign languages exist until I’m looking quizzically at some unfortunate foreigner taking the time to try to explain something to me, at which point I realise - Oh, it’s this again!
But when I tried coding I turned out to be reasonably competent at it without much difficulty so it seems pretty obvious to me that coding is a different brain thing to language.
Coding felt to me pretty much like any other flow-state design process like drawing, or cooking or as @HMSGoose suggested, Lego.
i’d be curious to see a similar study on brains engaged in gaming - structural problem solving, rewards for outcome, but also with lots of pew pew pew!
That’s all you need to know. Now you, too, are a math master, as well as an expert programmer.