Evidence suggesting that young computer programmers have “bilingual brains”
thecodingbrain.wordpress.com
thecodingbrain.wordpress.com
When I'm speaking a foreign language, I conceptualise what I want to say - language invariant, then find the correct words, and arrange them so what I say or write is grammatically correct. Sufficiently proficient (fluent or close to) speakers of a foreign language don't try convert their native tongue to a foreign one. I can personally attest that this doesn't work - idiomatic expressions and cultural markers do not correspond (for example, 'yellow' connotes drunkenness in some languages; not English). The point is that multilingual people have developed the ability to take what they want to say, as a set of concepts, and convert them to words in the language of their choosing at that moment. Try to think of it as analogous to how a compiler takes an AST (concepts in natural language) and traverses it to produce machine code (foreign language) specific to a processor architecture.
Learning a third language is easier than learning a second because your brain adjusts to become less tightly coupled to the words and phrases you already know. Having studied Hebrew, I have learned to communicate without the verb 'to be', 'have' (the equivalent is literally 'there is to me'), and indefinite articles (a, an). There is also a preposition (את) that I don't know an equivalent of in any other language.
It is my opinion that multilingual people have developed the ability to express their necessarily-not-yet-explicated thoughts (concepts and ideas) in the language of their choosing. Correspondingly, programming languages are a medium for expressing the programmer's ideas about computation. When I'm programming, I'm thinking about concepts, not language specifics, for example "abstract this segment of code to a function" can become
def removeVowels(target):
...
string removeVowels(String target) {...
}
removeVowels :: string -> string
removeVowels target = ...
I don't think of language specific syntax. I have an idea about computation and express it using the idioms and syntactic features at my disposal. Further examples:
In English, when asking for permission, one would say, "May I.../Can I...", whereas in Hebrew one will often say אפשר - which translates to 'possible to [infinitive] ...'. Similarly, in the above example, the python approach might be:
for ch in target: non indexed iterator
Curly brace type language:
for (int i = 0; i < target.length(); i++) { }
Haskell:
map consonantOrNothingFunction target
but all of these approaches yield the same computational result even though fundamentally different in structure and nature. A good polyglot has detached their language facility from their conceptualisation faculties. I certainly think I have. Multilingualism fosters this detachment, making programming easier.
edit: code sample formatting
> Java statement sequences are a monad, with a weird fold notation, for (blah : blahs) { ... }. I can live with weird notations ;)
Interesting how your brain seemed to reason it.
I think there is a zen lesson in here somewhere about attachment...
(And (dreaming (in Lisp)) is (really weird).)
I do have dreams about code, but no scrolling text, usually nailing details of a function down.
...it might be that people with better executive control are more
likely to persist with computer programming. If the latter is
true, one way to help people learn computer programming might
be to teach them a foreign language first.
It might be possible or more straightforward to study the connection between learning/using a non-native language and expressing a solution to some problem programmatically by measuring brainwaves and active areas the cerebral cortex while performing these activities. It seems like this would be step 1, which would then be backed up with behavioral studies such the on in the OP.Can someone with a neuro background comment on this?
[Edit: formatting]
Part of the effort is translating vocab, but the trickier part is changing paradigms to express an idea. Code has functions and for loops and control statements. English takes lots of connecting words and loops are trickier to explain. English to Spanish requires switching word order but even tricker is changing to different idioms for common ideas.
EEG-based techniques are better for responses to sudden events.
It would be interesting to analyse the brain activity while devising algorithms to solve problems, for example.
The algorithm design doesn't have to be explicit. Just ask people to solve a problem with different solutions, some of which are algorithmically more elegant than others.
You could also ask programmers to write programs in the MRI, and check what brain regions are activated.
I wouldn't be surprised if functional and imperative programming activated different brain areas.
Admittedly I have never been immersed in a non-English speaking culture, but even so, I hit a mental wall that I cannot seem to get past. They never 'click' into place the way formal languages do for me.
However, math is a lot unlike language, because, with math, knowledge grows infinitely; but a language is finite, especially with regard to the grammar. That's why I avoid using the term "bilingual" when I speak to another people, even if inside my head it makes a lot of sense.
People speak English/Spanish, Russian/Ukrainian/English, English/Italian/Spanish etc. Some of them also speak Java/C/PHP and they curse :) Seems legit
Taking myself as an example, I learned French in junior high (between the ages of 12-14), never lived in a French speaking country, and never learned a word of Spanish - and yet, I can read and understand simple Spanish. If I upgraded that to full-spanish, I wouldn't count it as a "whole new language".
(p.s. my mother tongue is neither English, nor is it Latin, Germanic or anything else that might have any remote connection to English, French or Spanish)
English/Hebrew/Scala/C/Python/Object Pascal/Haskell
Both groups were computer programmers, so what is he/she talking about? Can someone please clarify the conclusion of the study?