22 ms·
To the brain, reading computer code is not the same as reading language
- java-man 6y agoTake that, COBOL! But seriously, by recalling and introspecting the thought process occurred just before an interruption, I think coding is moke akin to navigating a landscape -- it has a substantial spatial component. Simply put, it's like thinking about consequences and dependencies at every given line/statement. Something that we don't do (or do rarely) while speaking or reading.
- xaduha 6y agoAlso, take that Larry Wall! I guess?
- metricmessd 6y agoI wonder what kind of computer code was shown. I find there are times when reading boiler plate code/code that has more to do with API calls or the likes one does not need any kind of logic/problem solving but just shallow understanding
- wanderingstan 6y agoIt's in the original paper. They were shown "snippets" of Python or Scratch, and then asked about what it would do.
- dboreham 6y agoNo s%%t Sherlock.
- wintorez 6y agoOf course it doesn't! But I'm interested to know if that's also the case when reading cooking recipes or instruction manuals?
- phnofive 6y agoOr a blueprint, or sheet music, or telegraph transcription, or stenography, or anything where language is a non-prosaic abstraction.
- kroltan 6y agoOr perhaps legalese?
- goodpoint 6y agoNot at all. Legalese is human language and it's the opposite of programming: the shorter the text the more fuzzy and unclear it is.
- brodie 6y agoI can't tell if you're talking about legalese or programming. Oh well. Time to go code golfing!
- red75prime 6y agoShort code may seem unclear, but it does do exactly the same thing as longer code (if written correctly). It's exact opposite of natural language, where short sentences heavily rely on context and supposedly shared knowledge to beget correct understanding. And as such short sentences are prone to misinterpretation. A program can also be seen as an awkward natural language, conveying programmer's intention to other programmers, of course. But it's a different modality of the code.
- goodpoint 6y ago> short sentences are prone to misinterpretation Exactly. That's why laws or contracts written by lawyers are so verbose. Think of a rent contract or a software license like GPL. Contrast with WTFPL and similar...
- grawprog 6y agoI wonder if editing a piece of written work would activate some of those same problem solving areas as reading computer code does. It that case you're more concerned about structure, grammar, correct wording and such. I find personally i'm in a different frame of mind that reminds me, at least, more of a coding frame of mind than a reading frame of mind. A lot of the time editing, I'm not really paying attention to the meaning of what's written, but whether the meaning is conveyed properly and clearly in any given sentence or paragraph.
- wanderingstan 6y agoI had the same thought—reading computer code seems more analogous to editing, especially editing something like a technical manual where you're concerned with how others will interpret the instructions. Reading through the research methods of this study, it says the participants read a single line of English text or Python/Scratch code at a time. (Example English sentence of "NOBODY COULD HAVE PREDICTED THE EARTHQUAKE IN THIS PART OF THE COUNTRY"). So this study was looking only at the very granular level of "reading".
- hnick 6y agoThat sounds reasonable, I've helped edit a few things and need to decide on each pass whether I'm reading for content or structure. Totally different mindset. I've also found when I'm deep in a problem solving mode like coding I tend to be far less empathetic. So it seems to mess with my people skills too until I come up for air.
- xwdv 6y agoI think many programmers often lose empathy from too many long hours of deep problem solving and never really get it back. A therapist for instance once said that John Carmack had little to no empathy for other human beings.
- schoen 6y agoApparently this is from a psychiatric evaluation when he was caught perpetrating a burglary at age 14. That's definitely an unusual and disturbing thing for an adolescent to do. But do you have reason to think Carmack got that way at that age specifically because of his interest in programming, or that his interest in programming kept him that way thereafter? I'm skeptical of this because he went on to be a successful, respected computer scientist and business leader, as well as starting a family. While of course many people who've done each of these things may be bad at empathy (or worse!), I'm not aware that Carmack has somehow continued along the course he was on at 14.
- geodel 6y agoSo I can't replace reading of 'War and Peace' with 'Enterprise FizzBuzz' edition.
- banjomet 6y agoIt was interesting to read. There aren't many google results for 'multiple demand network' that I could easily parse, but I did happen to find this paper on it in primates[0] (also happens to be from MIT) when I was trying to find an image that showed what parts of it are activated. I found this slide from a lecture very interesting[1]. [0]: http://web.mit.edu/9.s915/www/classes/duncan.pdf http://web.mit.edu/9.s915/www/classes/duncan.pdf [1]: https://i.imgur.com/xdYzbev.png https://i.imgur.com/xdYzbev.png
- turndown 6y agoYou are right, that slide is very interesting indeed. I wonder what it is about the different languages that triggers the brain to use different regions?
- canjobear 6y agoIt's probably noise.
- vanderZwan 6y agoOr it could be a sign that logogram-based writing is handled in a different way than one based on a phonetic alphabet. https://en.wikipedia.org/wiki/Logogram https://en.wikipedia.org/wiki/Logogram
- wizardforhire 6y agoSo obvious next question is how does reading the law compare?
- klyrs 6y agoYeah, laws and contracts are basically pseudocode; I'd expect it to be much more similar to code than literature.
- bonoboTP 6y ago> Yeah, laws and contracts are basically pseudocode; Are they? Do you say this as someone who is familiar with actual laws? Genuinely asking. Because I know that engineers (my past self included) like to imagine formalizing laws and turning them into code, which is extremely naive, once you see actual laws and how much human common sense judgment is needed to decide on them, including inferring intent, judging potential consequences, interpreting imprecise terms, etc. Perhaps a part of the tax code is like code. But a lot of laws are far from it. It's more formal than novels but it's firmly natural language that you need to understand as a human.
- klyrs 6y ago"Basically" was sharing some heavy lifting with "psuedo" on that sentence. Tell ya what, I've got gobs of experience with pseudocode, and much of it requires tons of common sense judgement, inferring intent, judging runtime and memory management consequences, interpreting imprecise terms, etc.
- bonoboTP 6y agoAgreed. Vague pseudocode and fairly narrowly focused laws are quite similar in nature. I'd also compare these two to mathematical proofs written in natural language in textbooks or academic papers. They have recurring structures and patterns, but are not formalized proofs, leave things explicitly or implicitly as an exercise to the reader or assume cases as trivial. (The gap to a formal representation is often nontrivial effort and has never been totally done for most of math) But then again, we have lots of similar things. Household equipment user manuals, revenue reports, soccer match descriptions in newspapers, stock market updates, phone calls to make an appointment at the dentist, etc. Lots of things on various points of the structured/formal/closed -- unstructured/informal/open spectrum.
- wanderingstan 6y agoLink to actual Research Article: https://elifesciences.org/articles/58906 https://elifesciences.org/articles/58906
- jude- 6y agoThis would explain why I can listen to music or TV while coding, but not while reading a book.
- throwaway316943 6y agoSomewhat opposite experience for me. I can’t listen to anything with words while coding. TV, podcasts, songs with lyrics all torpedo my ability to parse code. Instrumental music especially with a strong beat seems to help though.
- f00zz 6y agoSame. I play some 90s Goa trance on my headphones if I really want to get stuff done, but anything with lyrics completely throws me off.
- red75prime 6y agoI've noticed that I make more errors while listening to any kind of music. But, upon further reflection, it's probably because I tend to listen to music when I'm in the flow, writing large amounts of code.
- sosodev 6y agoI’ve had the same experience. I’ve talked to my coworkers about this before and it seems like we all have different experiences in that regard.
- GirkovArpa 6y agoI'm reading this while listening to music.
- jraph 6y agoI constantly read and program with music including lyrics. Music tracks I don't know would probably be harder.
- uncomputation 6y agoThis is hardly surprising. The only reason "programming languages" are called that is because early computer scientists borrowed from linguistics research at the time which defined language as a set of strings. Programming is general purpose problem solving, the fact that it is expressed in mostly English words is arbitrary e.g. Brainf*ck.
- sosodev 6y agoSeems like a weird conclusion to draw. If programming languages are arbitrary why didn’t we stop abstracting or creating new ones? The language is often a reflection of the problem it was intended to solve. Would you really argue that Brainfuck can solve your problems just as well as Python?
- uncomputation 6y agoNot that programming languages are arbitrary, but that the choice to use words (Python) rather than, say, punctuation (Brainfck) or emojis is because is easier for our human brains, thus arbitrary. But the task at hand is still problem solving, not language processing (at least not in the capacity of a typical conversation). I think a good example of this is the popularity of code visualizers. The only thing stopping Brainfck from solving your problems as easily as Python is the ease of human understanding, not some fundamental property of Python being more “language-like.”
- sosodev 6y agoThat’s not what arbitrary means. If we make languages in a certain way because it’s easier for our brains then it isn’t arbitrary by definition.
- imtringued 6y agoIt's irrelevant how a language is implemented. Math notation is also a language and it barely uses any English words. I don't see meaningful differences between languages whether they are computer languages, human languages, math notation, except how the human brain processes them. >linguistics research at the time which defined language as a set of strings. Fundamentally there is nothing wrong with that. You can have trivial languages that follow simple rules. In practice humans tend to use more complicated languages but that is just their personal and cultural preference. People here are too hung up the message that is being communicated rather than the general idea of language as a communication method. Programming languages usually express algorithms and trigger logical sections of the brain but nothing prevents you from using a human language to express the same algorithm and trigger the same sections of the brain. The reason why people associate programming languages with logical thinking is that they were exclusively designed to communicate logic and nothing else.
- jkhdigital 6y agoThe description of the “multiple demand network” makes it sound kinda like the brain’s universal computer i.e. Turing machine simulator.
- the_cat_kittles 6y agobased on my own experience and intuition- programming is most akin to machining or woodworking. its a craft, and its only because its highly paid do people think you are smart because you are good at it.
- User23 6y agoAs someone who is fluently bilingual and speaks a third language and is also proficient or better in a half dozen programming languages along with having written code in many more, this is completely obvious to me. Learning a programming language is much closer to learning a complex board game than it is a natural language.
- danishdev 6y agoI am autistic.. I read code and "interpolate" across lines quite well. On the other hand, finishing one basic written sentence can sometimes be a surprising struggle.
- DoreenMichele 6y agoHuman language tends to be pretty fuzzy. Code seems to be quite precise and very pedantic about details. In human language, you can play with idioms, metaphors, double entendre, etc. In writing code, you miss one symbol and it breaks.
- magusdei 6y agoYou can play in a similar way with code. It's just that other developers will hate you for it.
- astrange 6y agoIt was pretty popular when Ruby and JS came on the scene. I think it’s receded now but there are still tools like Homebrew that are worse than what came before, but people switched to them because they were written in Ruby instead of Perl, and somehow that made it cool.
- eyelidlessness 6y agoThis. And the more programming languages you learn (especially across paradigms), the more each new language is more of a tree search of basic fundamentals. Certainly some paradigms fit oddly in others, but even then familiar patterns emerge[1]. [1]: For example it’s occurred to me a few times that early Node interfaces were an opportunity to introduce monad types to idiomatic JS development. Sure, it was callback hell, but basically everything that touched IO had an Option type, just in the form `type Callback<T> = (error: Error, value?: never) => void | (error: null, value: T) => void` Edit: I’m sincerely disappointed the sibling reply got downvoted and dead, it was a valuable contribution. To resurface, the sibling commenter distinguished the cognitive experience of code versus human prose from the perspective of someone who’s autistic. It’s a distinction I share (diagnosed ADHD, undiagnosed but strongly suspect ASD spectrum). Edit 2: no longer dead so I'll defer to the sibling comment.
- 11thEarlOfMar 6y agoIt's only briefly mentioned, but learning to read music is quite similar in terms of brain function to learning programming. It's symbolic, logical and structured. My university went so far as to allow students with a bachelor's degree in music to directly enter the computer science master's program.
- bing_dai 6y agoFascinating! Any chance I could know which school it is? I have worked in both computer science and classical music, and found many crossover talents. Two previous Director of Music at my school (UBC in Canada) in the last few decades are both musicians and engineers/physicists.
- 11thEarlOfMar 6y agoNorthern Illinois University (though it's been.... a while... since I graduated.)
- analog31 6y agoThe one thing I think is different about reading music is sight-reading, where you're reading it at speed while playing it. I can do that with music and text, but not computer code, even in a language that I'm super familiar with.
- Bob_LaBLahh 6y agoYep. My hypothesis is that this is largely because code is non-linear whereas most written music is usually read in a linear fashion. Agree/disagree?
- analog31 6y agoThat seems plausible. Music is written to be read in that way. Writing and sight-reading are a sort of symbiosis. There are no subroutines or abstractions. And a good reader recognizes a lot of patterns by familiarity. There's stuff that goes straight from my eyes to my fingers while I'm thinking about something else. But if you write some completely random note pattern or rhythm (or both at the same time), I might be in trouble.
- nitrogen 6y agoI wonder if REPLs would be processed closer to a spoken/written language. I really like "conversational" command lines, and I'm curious whether that subjective feeling of conversationality is because I am using linguistic brain structures, or if it's something else.
- ipnon 6y agoAnd yet natural language aptitude highly predicts programming ability[0] [0] https://cacm.acm.org/careers/243179-forget-math-language-skills-are-stronger-predictor-of-programming-ability/fulltext https://cacm.acm.org/careers/243179-forget-math-language-ski...
- gxs 6y agoI'm not intending to make some grandiose point here, only that I suspect natural language aptitude is highly correlated with success in various different domains, not just programming.
- ipnon 6y agoIt really is misunderstood by the public what a difficult intellectual task programming computers is.
- GolDDranks 6y agoOn the other hand, "natural language aptitude" as measured by Modern (modern = ca. 1960s) Language Aptitude Test, which they used in that study, doesn't actually predict success in language acquisition. The test scores correlate with ability to perform well at _early_ phase of language curricula – but this is exactly the phase when the learners are still using the "general processing mechanisms" to process language, and not the mechanisms specialized for language that get engaged when they gain fluency years later. Sadly, this is underappreciated in the general psychology and linguistics community. Some researchers in Second Language Acquisition research community are more concerned about this kind of mis-interpretation and confusion of different meanings of "language skills/aptitude".
- syrrim 6y ago>And yet natural language aptitude highly predicts programming ability Its all correlated with g. >[0] They contrast "language learning ability", ie intrinsic intelligence, with "math knowledge", ie amount of schooling. For reference, you can take (a version of) the math knowledge test used here: https://www.idrlabs.com/numeracy/test.php https://www.idrlabs.com/numeracy/test.php If the article wanted to give a more honest interpretation of the paper, they would have focused on the leading predictor of programming ability, "fluid reasoning and working-memory capacity". One supposes this to be quite useful in math and engineering.
- tomcam 6y agoUsing the term “computer language” was an unforced error. Made perfect sense intuitively yet one could argue it’s a disservice since, as others have pointed out, it lights up completely different sections of the brain.
- vincent-manis 6y agoI have never liked the term “programming language”. Niklaus Wirth said somewhere that a better term is “programming notation”, and that has always stayed with me. That said, I like to understand a program (especially my own) by explaining it in English. There, I'm using generative, rather than recognition, processing. There might be some fruitful research in asking people to explain how programs work, rather than what they do, under fMRI.
- tomcam 6y agoVery well put. And Wirth was right there with the correct insights once again.
- Razengan 6y agoI’d say it’s more akin to reading the directions for solving a puzzle, like the moves list for a chess game or something, while imagining the board in your head.
- dmingod666 6y agoI think it's closer to legal work, like drafting an agreement or a contract. You have to define the behavior of all the actors the ways they will interact with each other etc.
- corford 6y agoTotally agree with this. A weird hobby of mine is reading through dense legal contracts, government acts and things like double tax treaties. I enjoy it like I enjoy programming. The mental process I use for understanding these docs and thinking about how I would modify them maps very closely to the "board game" analogy made higher up in this thread.
- mproud 6y agoWhat about reading Perl? Or Inform?
- SulphurCrested 6y agoHaving fumed for years about the too-often poor state of software documentation and program comments, I was not surprised by the result, although it was nice to see it proved. What did surprise me, though, was the lack of similarity to mathematical thinking. Was, this, though, because they used fairly simple snippets of Python, a programming language which is not very mathematical in its notation? Would a different result have been obtained had they asked the subjects to reason about a multithreaded C++ program which copiously used autoincrementing pointers and polymorphism? And, can personal preferences in programming languages be partly down to which parts of their brains people like to use? And, as the problems were simple, the study doesn't say anything about expert programmers. Is the often-quoted 10× difference between the best and worst programmers associated with the best ones also involving the mathematical and linguistic parts of their brains? It's probably not practical to measure programming at a high level (or indeed violin playing at a high level) inside an MRI machine, given the cramped and noisy conditions, so we may not have answers to the interesting questions raised any time soon.
- madhadron 6y ago> What did surprise me, though, was the lack of similarity to mathematical thinking I've noticed that many programmers hit a wall when dealing with Haskell or mathematics because notation that I parse effortlessly they have to puzzle over symbol by symbol, so I suspect it is a different system.
- red75prime 6y ago> a multithreaded C++ program which copiously used autoincrementing pointers and polymorphism I'd hazard a guess that the results would be the same. It all boils down to (multiple) sequential processes, which can be analyzed by spatio-temporal reasoning. Functional programming, on the other hand, may be different. When "execution" of your program is driven by beta-reductions and control flow can be abstracted away, it becomes less certain that spatio-temporal reasoning is the right tool for the task. And, yes, I hit the wall madhadron mentioned in the sibling comment.
- nl 6y agoDid the title and link for this get updated silently some hours after being posted?
- red75prime 6y agoI wonder which brain zones light up while writing functional code with extensive usage of functors, monads and such.
- harrygeez 6y agoI find this to be true only because learning a language is not just writing – there's also the speaking and listening component of it. I find that I'm able to start writing a language and learn its grammar fairly quickly, but once I have to listen and converse in it it's like a whole different ballpark.
- 1970-01-01 6y ago>The subjects in the study were all young adults proficient in the language they were being tested on. They name Python and ScratchJr, but no hints on what spoken languages were examined. I've been told Chinese and Japanese are much closer than Romance languages to code.
- rvense 6y agoThat's a very strange statement, since Chinese and Japanese are not at all similar languages. There are some loanwords, the shared writing system and a lot of historical and cultural, err, interchange, but they have no shared linguistic ancestor and grammatically are just about as different as languages can be. Linguistically, Japanese and Chinese have about as much in common as English and Navajo.
- 1970-01-01 6y agoThey are similar because they are both logographic languages. The MIT team should of added logographic languages in their experiment for the same reasons in this blog post: https://blog.fluent-forever.com/logograms/ https://blog.fluent-forever.com/logograms/
- rvense 6y agoChinese script is logographic, Japanese only partially so. But a language is not its script. By approximation all modern languages that have been written have been written in the Latin script. That doesn't make them "similar languages" in any real sense. And conversely, many languages use several different scripts for the same language in different regions/groups depending on politics.
- mnemotronic 6y agoIMHO, It's a mechanical problem. Someone who is good at understanding or designing Rube Goldbergs or mechanics can understand programming.
- raxxorrax 6y ago> designing Rube Goldbergs !false
- jlmorton 6y agoWhen I'm coding, I often listen to music, and when I listen to music, I often end up singing along. One thing I've noticed is that I can type out code at the same time I'm singing a song aloud. If I tried to do that while writing English, I'd start typing whatever I'm singing.
- wait_a_minute 6y agoDitto! I can also listen to a podcast or have a video playing in the background and still write code. Definitely can’t do that when trying to write English.
- lgessler 6y agoListening to music with lyrics is already hard for me when I'm writing code, but listening to a podcast is unthinkable--what kind of podcast? Don't you get distracted by the people talking?
- wvenable 6y agoI've tried to listen to podcasts while coding but when I'm in the zone I don't retain the content. I can't follow the podcast at all. Yet, like the OP here, I can also sing along with music and code at the same time.
- barrenko 6y agoMuch like the other comment - I can't really listen to music while learning to code, but if it's something I alredy know how to do then music sometimes seems to be helping.
- tasuki 6y agoI can't imagine anyone can actually listen to a podcast and actually program at the same time. Perhaps if the podcast is uninteresting and the programming is copy-pasting.
- nutanc 6y agoActually when I write blogs I listen to music. So I dont think it matters a lot whether we are writing code or English. The songs and music just sort of goes in the background.
- Mikhail_Edoshin 6y agoNiklaus Wirth wrote that the term "language" is not too fitting to computer languages and that a more precise term would be "notation".
- quickthrower2 6y agoI prefer language to notation because language means to me syntax and semantics, both are important to differentiate say Go and Java
- Mikhail_Edoshin 6y agoAnd I myself prefer "notation" because with notation we tend to look at the underlying thing, not the notation :) E.g. there are different notations for chess parties, but their peculiarities are not that important, it's the party that matters.
- vanderZwan 6y agoGiven that words like "language" and "notation" both come with a set of expectations, I wonder if APL and similar languages that we might as well call "notation-oriented" would have become more widely adopted if we had used "programming notation"
- Mikhail_Edoshin 6y agoTo me that phrase of Wirth certainly opened new lines of thought. Notation is clearly a tool. One can be better than another, but there's no reason to become fascinated with the notation itself and strive to perfect the expression (e.g. to write "pythonic" code). If the notation doesn't fit the task, it's the notation that should change. And so on.
- cryptica 6y agoAs someone who has over 15 years of coding experience with many different programming languages, I'm not surprised to learn that coding uses many different parts of the brain. I've noticed that people become more logical in all aspects of their thinking as their programming skills improve. Also, I've noticed that a lot of religious people become atheist or agnostic as their programming skills improve. It trains you to become good at holding a lot of information in your head and being aware of how they relate to each other and how they conflict. When it comes to coding, I prefer dynamically typed languages because they don't have any constraints and that makes them more effective at training your brain because you can't outsource or put a boundary on any part of your thinking.
- Grustaf 6y agoWhy would it be the same? Just because both happened to be called “language” doesn’t mean they have much in common.
- nutanc 6y agoSo this may mean that language models like GPT-3 are not best suited for code generation tasks. And networks trained on languages may not learn the feature embeddings needed for programming languages.
- magusdei 6y agoWouldn't the empirical success of GPT-3 in simple programming tasks itself be evidence against this interpretation? Furthermore, GPT-3 is only a language model because it is trained on textual data. Transformer architectures simply map sequences to other sequences. It doesn't particularly matter what those sequences represent. GPT-2 has been used to complete images, for example: https://openai.com/blog/image-gpt/ https://openai.com/blog/image-gpt/
- nutanc 6y agoEmpirical success shows that the GPT-3 model has seen the sequence before(maybe many times). Transformer architectures do map sequences to sequences. What is not known is that the task of programming is a sequence problem. This experiment seems to suggest that maybe its not a sequence problem.
- vincentmarle 6y agoI wonder if that also applies to legal writings. When I'm reading legal agreements, my mind tends to be in programming mode as well: I see lots of defined variables, if-else boolean statements, and error handling (quite literally).
- amelius 6y agoPerhaps we shouldn't call it programming language then. Suggestions for a better name?
- kzrdude 6y agoTough one. Maybe script. That will make everyone groan. It's still a language metaphor (Latin script, Korean script). Or programming system in analogue of writing system. Becomes progsys for short. I know - why not just call it code? That's what we already do. We can just make it the preferred term.
- amelius 6y agoI think code would be ambiguous. For example in "I'm working on the code" do you mean what we now call the actual code, or the language?
- kzrdude 6y agoWe could use a longer for thing like coding system (codesys)? And then you could say I'm working on the Rust coding system, or the Rust codesys, or the Rust code itself (lazy version).
- nutanc 6y agoThis may be the reason why you can still learn programming even when you are 40 years old, but its very hard for you to learn a new language the older you get as you language acquisition skills fade away. Also the experiment was "The researchers showed them snippets of code and asked them to predict what action the code would produce.". This may not be the best way to prove the thesis conclusively. Because when I read code I check the syntax fast and then I try to figure out logic. "The researchers saw little to no response to code in the language regions of the brain" This may mean that the participants quickly scanned the sytntax(language part of brain is used) and then they tried to figure out the logic(multiple demand network of brain is used)
- tgv 6y agoFirst: that language acquisition at a later age is so much harder is not true. It takes a child 6 to 10 years to get fluent in their first language, and they don't spend 3 hours per week studying it, but 80. For adults, there are language schools with an immersive program. They are expensive, but successful. You probably won't get as good as when you'd have been immersed from day 1 in your life, but you can get quite far. > This may not be the best way to prove the thesis conclusively. It certainly isn't. For starters, it does not provide a comparison to normal language. > The researchers saw little to no response to code in the language regions of the brain And I say: screw that logic. It's faulty beyond comprehension. That a brain region doesn't light up doesn't mean anything. It could even mean their scanner was broken.
- nmfisher 6y agoDo you have a source for that? It’s something I’ve always believed, but have never seen actually rigorously researched. I’ve long suspected the “adult language learning difficulty” is simply due to having less time as you get older (not to mention an often ossified/obstinate attitude towards learning something new from scratch and feeling clueless).
- knolax 6y agoHave you never met any immigrants before? There's a very stark cutoff age before which learning a language results in no accent and after which the accent is almost impossible to eliminate.
- visarga 6y agoThe relation between programming and math or natural languages is well known, but the link to spatial navigation is novel to me. I assume it's conceptual-space-navigation for programming.
- touisteur 6y agoWell code reading is executing or interpreting some sort of abstract machine, at least for me, and it's the way I push my interns to learn. You get context and specify system 1 global, unsound pattern matching set-up by familiarizing with the language, runtime, system&software design, and you use system 2 for no-false-positive-or-negative drilling. The more system 1 is 'trained' the more you're 'efficient' at code reading and I'm guessing that's one of the things that separate 'senior' from 'junior' programmers or software engineers. You look at some code on your colleague's computer screen in padding and it feels... Not right... Stopping in your tracks and sitting down to discuss.
- homero 6y agoTo me it's like reading a map, where am I, where was I and where am I going exactly turn by turn
- sfg 6y agoAre the algorithmic (Leetcode style) questions asked in many coder interviews more like coding, mathematics, or neither more like one than the other; and, whatever the answer, is this relevant to anything important?
- combatentropy 6y agoThe human brain has specialized hardware for encoding and decoding language. That is why even a child can pick it up. No grammar lessons required, just lots and lots of exposure. It is also why speaking and listening are as easy as falling off a log. You put about as much thought into it as you do touch-typing. Learning a second language, likewise, is best done the same way as the first: through immersion, if you can swing it. The high school student who spent a summer in Mexico came back far more fluent than I was even after three classes in high school and one in college. The plasticity, though, of this area of the brain will decrease over time. It is easiest to pick up a new language before adulthood. Most people don't appreciate this or don't believe it. For more information, read The Language Instinct, by Steven Pinker. Programming? Yeah, I guess it spins the CPU more than any specialized chip. I hate how I can't be interrupted while doing it, and for a few moments trying to come out of it, I am in some kind of daze.
- Talinx 6y agoIn programming the variables are saved in RAM and RAM is limited and has scopes (e.g. global scope, local scope). You also have linked lists, arrays etc. I imagine spatial navigation is very useful to handle all of these. In math you don't care, your variables are defined globally and if you have multiple with the same name the context decides which one is used. Math is not concerned with implementation details.
- 8bitsrule 6y agoThere was a time when 'a set of computer instructions' was called a 'routine'. Computer 'languages' are extremely restricted, and are primarily logical. Unlike human languages: English (and probably most others) has hundreds of words that can be used to nuance, imply, suggest, refine, gradate, distinguish, obscure, conceal, intimate, impute. If we don't know what they mean we can often skip right past them. (Computers don't do 'gist'.) Illogic is not only permitted, it's often essential.