
Expert programmers have fine-tuned cortical representations of source code - DanielleMolloy
https://www.biorxiv.org/content/10.1101/2020.01.28.923953v1
======
ible
I don't know what 'cortical representations' are exactly, but it seems
generally true that experts in a domain build up gradually higher level
pattern recognition in their area of expertise. Whether it is driving a car,
playing a sport or game, or writing software.

As a beginning programmer I had to consciously think about fundamental
concepts all the time, or grapple with my limited knowledge of a programming
language, instead of thinking about the problem.

As an experienced programmer I think in higher level concepts and
abstractions, and the fine code details happen without me consciously thinking
about them particularly.

This actually makes learning a new programming language or IDE more painful
now than it was when I was new. It probably takes me less time to get to an
equal level of skill in language X than a beginner, but getting to the level
of fluency where the low level details don't require conscious thought takes
time and practice. Being slowed down so much while getting to that point is
deeply frustrating.

~~~
herio
For me I've noticed that over time I've stopped worrying about the code and
now mostly care about the data. How it's stored, how it's transformed etc. The
code comes from how the data is managed.

As a new programmer, you certainly spend more time thinking about the details
and minutae of the code itself.

Changing languages within the same group tends to come pretty easy, a C-like
is mostly similar to other C-likes, flipping from python to ruby isn't all the
terrible (or vice versa).

Moving between language groups is harder though, still struggling to wrap my
head around lisp and haskell for example. Probably due to my skewed
upbringing, BASIC to 6502 to 68k to C to python.

~~~
vaylian
> Moving between language groups is harder though, still struggling to wrap my
> head around lisp and haskell for example

I played around with CL and Scheme before coming to Clojure. I did not have
much success with the first two but with Clojure it finallly clicked because
at least on a superficial level Clojure seems to have more syntax than the
other lisps (because of vector and hash-map literals). And eventually I
understood why "code is data" in lisp. But I think that the visual distinction
for the different collection types really helped me understand the concepts
behind lisp better.

FYI: I haven't used Racket yet (if that should be relevant).

------
cliffy
I'm going to go out on a limb and guess that experts in `Y` have fine-tuned
cortical representations of `domain(Y)`.

~~~
cheez
Hypothesis -> Study -> Confirmation/rejection.

~~~
rriepe
Hypothesis -> Study -> Newspaper article that rephrases it into whatever it
thinks is interesting

~~~
contingencies
-> HN article that hand waves five levels of meta -> driveby rewrite in five characters of APL

------
BigHatLogan
"Tell me what you pay attention to and I will tell you who you are." \- Jose
Ortega

This is fantastic. I've always had a hunch that experts are "seeing" things
differently than novices, and seeing things that people who aren't in the same
domain aren't even aware of. As people develop more expertise, I imagine the
gap becomes larger, to the point where they're aware of things that "laymen"
aren't even cognizant of.

Two examples:

In one of Malcolm Gladwell's books--I forget which one--he writes about a
firefighter who, almost unconsciously, ordered his men out of a building right
before it collapsed. He didn't even know why. After going through the day's
events with a researcher, the researcher realized that the fireman was
subconsciously (unconsciously?) attuned to what was happening around him. His
brain was operating unbeknownst to him due to his years of expertise.

A friend of mine started a small business late last year. He started it on a
lark, after a trip to the local autobody shop. Usually his spouse handled all
of the car-related affairs, but for some reason he ended up having to do it
himself this time. When he went to the store, he noticed that the software
they were using to manage their inventory was dated and quite awful. He took
down the manager's information and messaged him a week later with a proposal
for revamping their software system. The autobody became his first client. The
manager said that hundreds of people come in and out of that store every day,
but my friend was the first person to point out that their software wasn't
very good. My friend isn't an expert programmer by any stretch, but he was
more of an expert than anybody in that office in regards to developing
software. His brain basically zeroed in on it without him noticing.

Related to a thread from last week about our brains physically changing
depending on what we do and pay attention to:
[https://news.ycombinator.com/item?id=22201771](https://news.ycombinator.com/item?id=22201771)

I've become somewhat "obsessed" with this topic recently and would love to
know if others know of any resources I can check out. I read "The World Beyond
Your Head" by Matthew Crawford recently--he spells out this phenomenon quite
well.

EDIT: Jose Ortega's full name is Jose Ortega y Gasset--I forgot to add the
last part.

~~~
croh
Constant chat in our head, keeps us away from reality. Try not think for few
seconds and see how you become aware about surroundings. Only intense moments
shook us from this chit-chat.

Take a look on yoga too. I am not an expert but core philosophy is being
aware/conscious/witness about yourself.

[https://aeon.co/ideas/an-ant-colony-has-memories-that-its-
in...](https://aeon.co/ideas/an-ant-colony-has-memories-that-its-individual-
members-dont-have)

~~~
BigHatLogan
Thanks for the recommendation. I think you're onto something--this idea of
being more aware and conscious about the things around you.

I've noticed that when I spend time away from my phone I'm a lot more clear-
headed. Initially, I get really antsy--"What's happening on HN? Twitter?
Reddit?"\--but after some time I become a lot calmer.

------
quotemstr
The brain is a computation device. Like any computer, it has to represent data
in some kind of structure in order to operate on it. But what are the exact
data structures that brain uses? Nobody really knows, but there are some
fascinating clues.

Related paper:
[https://elifesciences.org/articles/21397](https://elifesciences.org/articles/21397)
"What the success of brain imaging implies about the neural code"

fMRI is a really crappy imaging technology: it has low spatial and temporal
resolution. Yet when we use it to read activity in the brain, we're able to
gain real insights into how the brain actually works. This paper goes into
what fMRI's success tells us how about the brain represents concepts and what
fMRI's success rules out: "the neural code must be somewhat spatially and
temporally smooth with respect to neural activity (which is several orders of
magnitude smaller than voxels) for fMRI to be successful. Whatever is
happening in the roughly one million neurons within a voxel (Huettel et al.,
2009) through time is being partially reflected by the BOLD summation, which
would not be the case if each neuron was computing something dramatically
different for in-depth discussion"

------
moron4hire
Well this explains why, when I first started to learn to program, it took me
hours to find one missing semicolon in 15 lines of C code, but after 20 years
I can basically glance at a screen full of code and find them almost
immediately.

~~~
deepsun
Yea, they underlined in red now.

~~~
moron4hire
Not on my screen

~~~
Wildgoose
I know what you mean. I was called over to a colleague's desk to answer a
query he had with a change he was making, (in an old IDE without colour-
highlighting). It just looked wrong.

So I rearranged the code slightly and it was immediately obvious he'd
mismatched his closing parentheses.

It wasn't conscious. I just knew it was wrong.

------
jwkane
Programming is somewhat unique in the size and complexity of the structures
expert practitioners have to hold and maintain. But only somewhat. It would be
certainly be interesting to compare with other professionals with similar
years of experience.

~~~
thedirt0115
How might one quantify "size and complexity" for different domains? Physical
architecture seems to me like maybe it's somewhat similar to programming, but
even that seems hard to me to compare. Fiction author also seems like an
interesting comparison, but again, I 'm unsure of how to begin to quantify
size/complexity in a way that's apples-to-apples with programming.

------
lmilcin
When I was young kid and teenager I would spend a lot of time playing checkers
with my father. My father wasn't master or grandmaster level but he played
well. We would sometimes spend entire evening playing dozens of fast paced
games.

When friends asked me how it is possible to calculate so many moves in advance
in such short time (I would typically have response prepared for whatever move
they made) I realized I don't really know. Only occasionally I would spend
time really analyzing the future state of the board and I was typically able
to imagine how the board would look like in many moves in advanced and was
even able to predict which moves would look tempting in half a dozen moves in
the future.

It did not feel as if I was playing the game. Retrospectively, it felt more as
choosing from menu of options but I did not know or cared to know where the
options came from.

I came to conclusion after so many repetitions the brain gets somehow wired
and runs all those simulations "behind the scenes" so that the conscious part
of the mind is relatively free to make very high level decisions.

~~~
virgil_disgr4ce
> grandmaster level

...of checkers?

~~~
symmitchry
[https://en.wikipedia.org/wiki/Marion_Tinsley](https://en.wikipedia.org/wiki/Marion_Tinsley)

------
hackinthebochs
I'd love to see work like this done on chess super GMs.

~~~
kleer001
and London Cabbies

~~~
codingdave
[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC18253/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC18253/)

------
trombonechamp
I was pretty excited to see this paper but unfortunately it seems like they
have a pretty big multiple comparisons problem. The spatial structure of their
brain maps and the really strong correlations scream multiple comparisons.
Glancing through their methods briefly to try to figure out why, it looks like
they are performing their decoding and leave-one-out cross validation
independently for each small group of voxels, which should generate a ton of
false positives. This is pretty easy to control for, but they didn't do the
key control analysis: scramble the trial identity (category) to create null
datasets and then recompute the measures. Unfortunately I bet that these null
models would have had similar correlations to what they observed.

------
zelly
In other words obsession. When you are writing code in your dream that's when
you know you love what you're doing.

------
whyaduck
Coming soon - a service to screen prospective software developer hires via
fMRI.

~~~
femto113
followed by 14 books in the vein of "How to Crack the Coding fMRI"

~~~
lima
[https://en.wikipedia.org/wiki/Goodhart%27s_law](https://en.wikipedia.org/wiki/Goodhart%27s_law)

------
40acres
Not surprising but good to see some research. Just off the top of my head I
assume working memory capacity may be slightly increased, whatever portions of
the brain are used to decode / encode information, and perhaps even spatial
intelligence.

------
uberdru
So do expert carpenters. And expert musicians. Etc.

------
cheez
> For the first factor, we adopted programmers’ ratings in competitive
> programming contests (AtCoder), which are objectively determined by the
> relative positions of their actual performances among thousands of
> programmers

Ah perfect.

~~~
flafla2
This makes me extremely skeptical of the study. At best, it says something
about people who are whizzes at programming competitions, and certainly not
"Expert programmers" in general.

~~~
cheez
Ever met a normal person... They have no idea what an expert is like. For
them, easily ranked = source of expertise.

