The Neuroscience of Computer Programming 161
Hugh Pickens DOT Com writes "Chris Parnin has an interesting read about an international team of scientists lead by Dr. Janet Siegmund using brain imaging with fMRI to understand the programmer's mind and to compare and contrast different cognitive tasks used in programming by analyzing differences in brain locations that are activated by different tasks. One recent debate illuminated by their studies is recent legislation that considers offering foreign-language credits for students learning programming languages. There have been many strong reactions across the software-developer community. Some developers consider the effort laudable but misguided and proclaim programming is not at all like human language and is much closer to mathematics. Siegmund observed 17 participants inside an fMRI scanner while they were comprehending short source-code snippets and found a clear, distinct activation pattern of five brain regions, which are related to language processing, working memory, and attention. The programmers in the study recruited parts of the brain typically associated with language processing and verbal oriented processing (ventral lateral prefrontal cortex). At least for the simple code snippets presented, programmers could use existing language regions of the brain to understand code without requiring more complex mental models to be constructed and manipulated." (Read on for more.)
"Interestingly, even though there was code that involve mathematical operations, conditionals, and loop iteration, for these particular tasks, programming had less in common with mathematics and more in common with language (PDF)," writes Parnin. "Mathematical calculations typically take place in the intraparietal sulcus, mathematical reasoning in the right frontal pole, and logical reasoning in the left frontal pole. These areas were not strongly activated in comprehending source code." The new research results are a much needed, but only a first step in revealing the neuroscience of programming. Other questions remain including: Can we finally provide a neurological basis for a programmer's flow? How relevant is the mastery of language skills for programming? Are there certain programming activities that should never be mixed, due to higher chance of cognitive failure (and resulting bugs)? Do code visualizations or live programming environments really reduce mental load? "Programming involves a rich set of cognitive processes," concludes Parnin. "Although the study found a particular pathway that was strongly associated with language processing, there may be other pathways associated with other common activities related to programming (debugging, editing, refactoring, etc).""
Reading vs writing (Score:5, Insightful)
In my experience, coding and reading other's code are two completely different tasks.
Re:Reading vs writing (Score:5, Insightful)
In this case, reading, writing, listening, and speaking a foreign language should all be different tasks. The neuroscience doesn't lie: the region of the language processing center lights up; portions of programming are similar to foreign languages.
I found they were for me (Score:5, Interesting)
Re: (Score:3)
I'm similar. While I can read French to a reasonable degree my ability to understand it while listening is poor, and my ability to speak it is laughable. OTOH I can read pretty much any computer language and am fluent in...um...a lot...I can't really recall.
Re: (Score:2)
The problem is probably with lexical analysis, when you break the stream of sounds or letters into words. When a language is fluently spoken there are few if any pauses between words, your brain adds those. It's possible to be familiar enough with a languages grammar and vocabulary to read without difficulty, but not yet familiar enough for your brain to subconsciously break sounds into words.
Re: (Score:2)
So then, repeat this experiment but with snippets of Scheme code. Get rid of the lexical analysis and parsing and focus on the problem.
Re: (Score:2)
Since in college I was hopeless in my foreign language class when listening/speaking were stressed. (And failed those classes multiple times.) When all I had to do was read it(at the same 4th semester level) I passed it the first time and I wasn't even close to failing. (Yes, I realize this is an anecdote but I wouldn't be surprised if there were a difference between reading and listening.)
There can be a difference between reading and speaking/listening, but there shouldn't be. In short, there are multiple possible ways to extract the information from a written text, but only one of them is the "correct" way. You need to read the words in order, from start to finish, and you need to associate the written word with the spoken sound. Any reading strategy that does not do that will interfere with your ability in the spoken mode.
Our education system places a heavy emphasis on reading and writing
same brain region != equivalent cognition (Score:5, Interesting)
While it seems logical to me that there would be heavy overlap between the brain regions used for natural language and those for reading programming languages, it's important to remember that "using the same brain region" is *not* equivalent to "thinking in the same way". For example poetry and mathematics both activate many of the same brain regions, presumably because they both involve a lot of pattern recognition and abstract thought.
For that matter, if I recall correctly the language centers of the brain are themselves mostly a subset of the vision centers of the brain, even when dealing with purely spoken language. Probably that pattern-recognition stuff showing up again
Re: (Score:2)
In this case, reading, writing, listening, and speaking a foreign language should all be different tasks.
Not true. Reading a foreign language and speaking it has a lot in common. Otoh, reading code and creating code is very different. But I'm not a neuroscientist, I'm just a person who's capable of writing code, reading code, writing/speaking three foreign languages, and reading five foreign languages.
Neuroscience doesn't lie? (Score:3)
http://www.wired.com/wiredscie... [wired.com]
I suppose that dead salmon should get credits for social science classes in such case...
Re: (Score:2)
But this does not mean that learning a programming language should ever count towards a language requirement at a university. That's the cheezy way out, the university is about learning but everyone seems to want to minmax it.
Re: (Score:2)
The neuroscience doesn't lie: the region of the language processing center lights up; portions of programming are similar to foreign languages.
Woah, hang on there! "The neuroscience" is NOT some fMRI data figure showing a bit of the brain being more active in one condition than it is in some other condition. Neuroscience is a set of theories, skills, and tools that allow us to ask and answer such questions as: "What conditions do we scan patients under in order to isolate the effect we are interested in?" "What does the strength and location of the BOLD signal we pick up in our fMRI scan actually mean?", and "How can these results be interpreted
Re: (Score:2)
You want to see bits of the brain "lighting up"? You're going to need to get some genetically modified mice. If you want to understand the brain it's not that simple.
Well, we could use the genetically modified mice to program inside of an fMRI, then extropolate the results into a human brain using highly sophisticated neuro mathematical linguine anal isolation probes to produce results that prove, what were we talking about?
Re: (Score:2)
I doubt you'd recognise it.
Re: Reading vs writing (Score:5, Insightful)
The article claimed that programming activated regions of the brain associated with language, not foreign language. Most programming languages they I've seen are in English. If you are a native English speaker, I don't see how this would count as a foreign language. If you are not a native English speaker, I suppose it could count as a really basic English credit.
I think you are confused. Since I assume that you are a native english speaker and a monolingual one at that, I can understand how you have trouble with this concept. While most programming languages might have "keywords" written in english, they have a distinct syntax that is not exactly the same as natural english syntax which is why it is like thinking/reading in a different language than you are used to.
Re: Reading vs writing (Score:5, Interesting)
Indeed. Most Americans would probably find it straining to listen to someone speaking using English vocabulary but German grammar for extended periods. To say nothing of Latin. Even though the words are the same, the way they are organized to express concepts are quite different. I think most anyone who is both multilingual and accustomed to "watching" their own mind can attest to the fact that learning to truly think in a fundamentally different language doesn't just change the words you use, it also subtly changes the way you think about things.
Re: (Score:2)
The article claimed that programming activated
It made no such claim. It said that "reading" code activates language processing.. Wow, imagine that. It's nice to know this as a fact instead of assumption, but it was an obvious one. Who would have ever thought that reading used language processing?
Re: (Score:3)
Re: (Score:3)
You missed the point by an enormous margin. Writing code is absolutely nothing like writing words because the act of writing has relatively little to do with the act of constructing the things to be written (and the former takes up much less time than the latter in most cases).
"Absolutely nothing" is a gross overstatement.
I've been doing a lot of coding recently, and it just so happens that what I'm coding is language learning software (I have degrees both in Comp Sci and in modern languages).
I would say that I reach what appears to be a "flow state" once I internally understand the logic of the task at hand completely. At that point, I am working linguistically -- I am expressing my thoughts in a codified form. The point where coding becomes non-linguistic is when I have to work
And reading code isn't "coding" (Score:3)
Reading or writing code is a translation to/from the imagery which is the real "code". The imagery is the abstract representation of the solution and where the problem solving happens.
Re: (Score:2, Insightful)
Stupid study.
Hey guys! Reading written statements (code) uses language centres of the brain - well fuck-de-doo.
Re:Reading vs writing (Score:4, Insightful)
The good part is where the programmers just know that it can't be so.
MRI? No idea what it is. But if it contradicts my preconceptions that:
a) mathematicians are smarter than literature types
and
b) I'm really really smart
so
c) what I do must be more like the former
. . .
then it's phrenology by a different name.
Re: (Score:2)
However, in this case, they have a point. Here's an analogy for you.
Imagine they put a novelist in one of those machines when they were working. What would be the most active part of the brain? Probably the areas involved in language. Is this the area that is most important to writing a novel? It's certainly indispensable, but the unique skill involved in writing a book is the imagination, and the composition of events, consequences etc... you know, the story.
Or to put it into physical terms: even if it tak
Re: (Score:2)
I'm not sure if Science is phrenology by another name, but they certainly look similar at your level of detail:
a) Part of the task under study is definitely linguistic
and
b) No effort has been made to separate this linguistic part from the rest of the task
so
c) The study has not produced evidence because of a validity threat: namely the confounding factor that the task has been presented in a linguistic form.
I wouldn't want the terminology to get in the way of the original point: the task has been phrased in
Re: (Score:2)
Balderdash (Score:2)
Of all the fully employed programmers you know, how many of them have degrees in English, French, Japanese, Chinese, Literature, Journalism or creative writing? How many in mathematics or physics?
Re: (Score:2, Interesting)
Re: (Score:2)
Well, I know myself.
I believe the results in this study are obvious. Most of the time reading code involves parsing which is essentially a linguistic task.
Mathematical thought might be more active in specific code sections but language will still account for 99.9% of your mental work.
Writing code is probably the same or even more skewed towards language.
Of course, I am assuming most people think before sitting down to write code.
There are, I believe, a number of people responsible for the development of programming languages whose formal credentials are in linguistics.
Nor does a connection with mathematics make computer languages unique - I would say that any communication system - including human languages - can be described at least in part in mathematical terms. Or perhaps even the reverse. Mathematics is as much about symbolic manipulation as it is about numbers, and symbolic manipulation is at the core of language.
That doesn't
Re: (Score:2)
There are, I believe, a number of people responsible for the development of programming languages whose formal credentials are in linguistics.
Sadly it's all Chomskian structuralists, though. Generative grammars (BNF etc) still plague modern linguistics to a very great extent (despite better models following about two years after Chomsky first published) and are still one of the first things a linguistics student will be introduced to (thus polluting their minds with out-of-date garbage).
And I think it's misguided to suggest that linguistics led computer programming, because it was really computers that started it. Chosmkian grammars were a comput
Re: (Score:3)
Languages take time and effort to learn. Try to remember, C++, although complex by the standards of most computer languages is ridiculously easy compared to learning French. If the programmers spent a proportional amount of time on the foreign language, I think they would have the same level of mastery.
Re: (Score:2)
Languages take time and effort to learn. Try to remember, C++, although complex by the standards of most computer languages is ridiculously easy compared to learning French. If the programmers spent a proportional amount of time on the foreign language, I think they would have the same level of mastery.
Yes but telling jokes in a ridiculous C++ accent has no comedic value whatsoever. However if you said "I am a programmer, let me manipulate your objects" in a French accent, that's hilarious!
Re: (Score:3)
Re: (Score:3)
I am a programmer and have a degree in Math/Computer Science, but I always scored better on language related aptitude tests than math ... did significantly better on my SAT and ACT tests (in 1989! I'm sure they've changed alot since then!) in language related areas than I ever did in math. Luckily I still got into a good computer science school, got my degree, and have had a pretty good career in software development. I never realized that my skew towards language skill may actually have been a boon for
I don't agree that coding is more like math (Score:5, Insightful)
For quite a long time now, I've been explaining to everyone who will sit still long enough to listen that the term "computer" is a bad name for what these boxen do.
While strictly speaking they do carry out mathematical operations, that's not what most people use them for. They got the name "computer" because one of the earliest uses of computers was the numerical solution of differential equations. For example the Von Neumann architecture was developed by Dr. Von Neumann for use in designing hydrogen bombs. The Difference Engine was Charles Babbage's fat defense contract for the purpose of calculating firing tables, that is, how to aim a cannon, taking into account the wind and so on.
Really these boxen are instruction following machines. I was able to finally explain to my mother what I really do, and what a programming language really is, by asking her to compare her applications that I might have written, to her writing down the recipe for chocolate chip cookies. That recipe could be written in English, or in German or what have you. English and German could then be taken to be recipe languages, much as Java and C++ can be considered programming languages.
Why just the other day, I told a good friend that I wanted to return to graduate school to complete my Physics Doctorate, but had forgotten all my math. This because it is exceedingly uncommon for programmers to need to know much more than very basic arithmetic on the job. It is actually uncommon for me to use floating point on the job, or fractions. I cannot recall the last time I used a trigonometric function on the job.
However coders do need very strong verbal reasoning skills. If you could win on the debating team, or you studied philosophy in college, I assert you could be a good coder.
Re: (Score:3)
Just because the skills and brain activity of reading and writing code is more akin to math, doesn't mean the required knowledge is identical to math.
Re: (Score:2)
Oh well. You must have been in "enterprise computing". Where about any "application"
Re: (Score:2)
For all your shitty sarcasm, all you're saying is that programming about highly mathematical subjects involves a lot of maths.
Don't confuse programming per se with the problem domain, kid.
Re:I don't agree that coding is more like math (Score:4, Informative)
As another poster already mentioned, you are confusing your problem domain with programming. Your argument is little different than someone saying programming requires a significant amount of accounting knowledge just because they work for Intuit.
Programming itself rarely includes more math than simple algebra. There are of course very specialized fields of software engineering that need quite a bit of math, such as data science or other research oriented fields. But at the risk of making up statistics, I doubt more than 5% of programmers use more than a 10th grade level of math in their entire career.
And regardless of your young and naive view of the software development industry, writing line of business software is rarely just a front end to a database. That may be true for many SMB projects, but things are much different at the enterprise level. I have done research in academia and have helped design global software systems used by millions of users in almost a dozen countries, and I can say the level of complexity can be just as high in either specialty. One field does require a lot more math though.
Re: (Score:2)
You got it right, that's exactly what I was saying: if you want to use your advanced maths then find a domain that uses them in addition to using a programming language. Coming back to the actually unnecessary complexity of "enterprise" software, here's how we g
Re: (Score:2)
Programming itself rarely includes more math than simple algebra. There are of course very specialized fields of software engineering that need quite a bit of math, such as data science or other research oriented fields. But at the risk of making up statistics, I doubt more than 5% of programmers use more than a 10th grade level of math in their entire career.
If your definition of maths is "algebra + calculus", then this is true. If your definition of "programmers" is script kiddies, then this is true. But any non-trivial program will rely heavily on graph theory.
Re: (Score:2)
Re: (Score:2)
Actually I've been doing drivers and desktop GUI (Score:2)
I only have a vague understanding of databases.
Actually I was heavily into scientific computing when I was in school. I'd like to get back into that.
I don't know whether it's changed any, but in 1993, the FORTRAN code used in high energy physics was an awful rat's nest. There was a movement afoot to rewrite it all in C++/
Re:I don't agree that coding is more like math (Score:4, Interesting)
Perhaps they hold the name of their first use. In France and Spain computers are called sorters, "ordinateur" and "ordenador" respectively. In those countries they'r spread started with services like banking and accounting.
Re:I don't agree that coding is more like math (Score:4, Insightful)
While strictly speaking [computers] do carry out mathematical operations, that's not what most people use them for.
But calculation is not mathematics, either - or, more precisely, it is not mathematics as practiced by mathematicians doing mathematics. Calculation is what scientists, engineers, econometricians and so forth do when they apply the results of mathematics to issues in their own fields.
I agree that the current practice of programming is not much like either of these things. Where mathematics (in the applied sense) plays an important part in the development of software (e.g. cryptography, signal processing), the mathematics is generally applied to the problem before coding starts.
Re: (Score:3)
I'm glad there are a few people here who recognize this. Mathematics requires computation, but since its inception in Greek geometry that has never been the focus of the subject. Writing proofs is almost exactly like writing code, and it's not a coincidence [wikipedia.org].
Re: (Score:3)
Re: (Score:2)
It is called a computer because that is all it can do - compute. It carries out mathematical procedures. Nothing more.
Then explain the mathematical equivalency to a jump instruction, a variable assignment or an I/O operation.
Re: (Score:2)
Or this one.
https://github.com/c00kiemon5t... [github.com]
Re: (Score:2)
The Curry-Howard isomorphism is a way to relate programs to proofs and types to propositions. Control flow can be expressed in terms of call/cc and relates to Peirce's law in logic.
Re: (Score:2)
Variable assignment is basic algebra, X=3.
I/O, again basic algebra. O = fn(I)
Do I also need to explain that "all a computer does" is set a bunch of switches on or off?
Doesn't make much sense it you look a bit harder (Score:2)
2. How many can program in more than 2 languages?
Its likely the answers are 1. not many and 2. most.
I think equating spoken languages to programming languages like this is misguided and makes sens only to tech-ignorant policy makers and scientists looking for juicy grants based on half-baked non-peer-reviewed research.
Makes sense to me... (Score:4, Insightful)
Make sense to me... Language processing areas of the brain are a component of programming.
Try this experiment: Count backward from 100 by 3s. As in 100, 97, 94, 91, 88, etc.
At around 85 have another person -- yes an actual living breathing person -- start calling out random numbers between 1 and 100. See how long you can keep counting.
It's all pure math. But very few people have the ability to keep going amid distractions, even when the numbers are being called out in a foreign language they do not speak or understand.
Programming is like counting backward from 100 by 3s, only thousands of times more complex. Coding while someone is talking nearby can be downright impossible. Clearly there is some overlap between language processing and writing/reading/understanding code.
Re: (Score:2)
Language and logic shares the same part of the brain, the one dealing with deep structural analysis. Language is partially duplicated elsewhere but those are no exact and mostly deal with picking out general mood and your name.
Re: (Score:2)
Coding while someone is talking nearby can be downright impossible
Only if you are interested in what they are saying.
I can happily program away with somebody sitting right next to me and addressing me directly. Also, listening to music with intelligible lyrics is no problem at all. Having the a video playing while programming is also no problem whatsoever.
The key here is that I can only focus on one stream at the same time and will not process the words of the other stream at all. If I focus on my programming, you could say to me that a beautiful and sexually skilled nymf
Re: (Score:2)
You're forgetting the complexity of learning each language and how repetition aids retention. Languages like LUA and Go have as few as 25 keywords and can be learnt in an afternoon. Try and do that with Japanese.
Re: (Score:2)
Why? (Score:2)
First, somebody needs to explain why some schools have a foreign-language requirement. The job of high school is to prepare students for jobs upon graduation (not so much any more) and/or prepare students for college. How does one or two years of mandatory foreign language study do either?
Re: (Score:3)
It prepares you for jobs because it's not uncommon you will have to deal with people who don't speak your native language. It's also not uncommon for people to move somewhere else because of a job. In non-english countries, it's in your best interest to teach your students english because a lot of information is available in that language.
Re:Why? (Score:5, Interesting)
Sorry, but it's much more deep-rooted than being able to talk to someone in a foreign country.
If you don't get that, you probably don't have many bi-lingual friends and certainly haven't asked them about it.
Being bi-lingual allows you to find patterns, origins, etymologies and structures of words. It's not uncommon from being able to speak French and English to being able to understand Spanish, Italian and maybe a little Portuguese WITHOUT having to learn anything, just hearing a native speaker.
It's provides much greater command of grammar and language structure than is available in English alone.
I speak as someone who was forced to learn only "tourist" German in an English school, who now lives with an Italian fluent in English and has entire swathes of friends who speak foreign languages.
English is universally derided among them for being the easiest to learn. The grammar is pathetic. The rules are arbitrary but easily picked up. The words all comes from Latin or Greek or Germanic originally.
And being bi-lingual opens up the creative areas of the brain associated with language. While you're 3-7 years of age, your brain will accept another language with ease. It won't even hinder you learning other things as you learn it. And you'll be bi-lingual by the time you're an adult with no extraneous effort. However, if you don't get it into the language-processing areas of the brain by that age, you will GREATLY struggle to learn a language later.
And by learning a language, I mean being able to live normally in the country for a year without resorting to translation tools, not asking the way to the airport in a single, broken accent.
My girlfriend's command of multiple languages is impressive. And it comes about because she was taught English in school and it was SO MUCH easier a language to learn than her own. It's basically the baby-language of foreign languages.
It's not about tourism.
It's not about being able to phone up a foreign company and sell to them.
It's literally an expansion of your whole thought processes and language interpretation that allows you a much richer method of communication, no matter what the language.
And while you're a child, you'll just absorb it - like any child in a bi-lingual home. But when you grow up, you'll struggle and have to spend 10 years learning to get the grammar, accent, structure, phrasing and wording correct enough to blend in. And it will never be "natural". But, learning a foreign language in school, it can be "natural" to your thought processes.
They say you know when you've actually learned a language because you dream in it. That's how natural it becomes and you get the richness of expression available from all the languages you know.
It's not about whether you know Perl, or French. It's about being able to genericise concepts enough that even when speaking in several languages at once you get a deeper understanding of what the grammar means and how the structure should be to be common to all languages.
Someone who programs professionally in a range of programming languages will, generally speaking, be more fluent in any particular one. The same as someone who speaks more than one language being, generally speaking, more capable with their use of language overall.
Zero points (Score:2)
A lot of people think that. A lot of people think they speak (and write) it better than they do. There's quite a degree of overlap.
And they're wrong. If it was the case, then English kids would be speaking in full sentences at 6 months whereas those who speak your idealised perfect un-pathetic language[1] wouldn't be able to ask for milk before they're hitting puberty.
I don't even know what that's supposed t
Re: (Score:2)
English is universally derided among them for being the easiest to learn.
It's odd to deride a virtue.
Re: (Score:2)
Re: (Score:2)
English is "derided" for being "easy to learn"? What the fuck kind of world do you live in where that's a problem?
The world's common language should be easy. I'm learning an Asian language and it's difficult as hell for no good reason. I and everyone else learning it certainly wouldn't criticize it if it were easy.
Re: (Score:3)
English is universally derided among them for being the easiest to learn.
English is easy to start learning, but very difficult to master. The first year of learning English is easy, whereas the first year of learning (eg) French is pretty difficult. But after that first year, you know the hard parts of French, and all that's left to learn is the easy stuff. English... well, the worst is yet to come.
The grammar is pathetic. The rules are arbitrary but easily picked up.
Rules that are truly arbitrary are never easy to pick up. Rules must maintain some internal logic.
The problem with English is that its simple syntax and lack of inflectional complexit
Re: (Score:2)
Alas, I have no mod points for you, but think highly of your post.
Re: (Score:2)
The job of high school is to prepare students for jobs upon graduation (not so much any more) and/or prepare students for college. How does one or two years of mandatory foreign language study do either?
If you can identify what a 12-year-old is going to do for a lifelong career, then you can use school as a work training camp. If you cannot (and I have yet to meet anyone who can) then school has to teach a broad base that covers two roles: understanding the world around you and giving you enough knowledge that you can learn more. Many of the most difficult hurdles in language learning are dealt with in the first two years. You encounter idiomatic differences like English's "I am X years old" vs Spanish/Fre
Re: (Score:2)
Chinese should be a mandated prerequiste at every high school today
They said the same thing about Japanese in the 80's.
Perl, Larry Wall, and Linguistics (Score:5, Interesting)
Larry Wall [wikipedia.org]: Wall developed the Perl interpreter and language while working for System Development Corporation, which later became part of Unisys.[5] He is the co-author of Programming Perl (often referred to as the Camel Book and published by O'Reilly), which is the definitive resource for Perl programmers; and edited the Perl Cookbook. He then became employed full-time by O'Reilly Media to further develop Perl and write books on the subject.[5]
Wall's training as a linguist is apparent in his books, interviews, and lectures. He often compares Perl to a natural language and explains his decisions in Perl's design with linguistic rationale. He also often uses linguistic terms for Perl language constructs, so instead of traditional terms such as "variable", "function", and "accessor" he sometimes says "noun", "verb", and "topicalizer".
Re:Perl, Larry Wall, and Linguistics (Score:5, Funny)
May I ask you to stick to the subject. We are talking about reading code. Everybody knows perl is a write only language.
Re: (Score:2)
Nice (deserves better than a 0). I was unfamiliar with the terms write-only and reald-only languages [wikipedia.org].
Re: (Score:2)
That's rather a surprise.
Moliere's Bourgeois gentilhomme springs to mind...
Re: (Score:2)
and in turn, Perl is a language favored by folks who tend towards linguistic expression. Guys who spent their time in college doing a math major tend to favor languages like python, and they love to talk about the lambda calculus, etc.
From TFA:
Frankly, that's a decent choice for a first pass - rather explicit and "uninteresting". Further research would be interes
Re: (Score:2)
Re: (Score:2)
Wall's training as a linguist is apparent in his books, interviews, and lectures. He often compares Perl to a natural language
And that's the downside to the language. I love Perl and use it as my scripting language of choice. However, as somebody I know who was trying to learn it said, "too much syntax". You don't need, and aside from a little syntactic sugar generally don't want an unnecessary profusion of different ways to do the same thing. It's a nice characteristic for poetry, but not programming.
Re: (Score:2)
He also often uses linguistic terms for Perl language constructs, so instead of traditional terms such as "variable", "function", and "accessor" he sometimes says "noun", "verb", and "topicalizer".
That would explain why, as a programming language, Perl is so damned inpenetrable. Hint to Larry: Vogon poetry is not a programming language.
Math is a language. (Score:2)
I have always felt coding was a language skill (Score:2)
While computer languages are about math a lot more than human languages, coding isn't really like doing math. It's more like telling the machine how to
Programming is about goals and organisation (Score:3)
A lot of programming is about understanding a problem, seeing what the real needs are - not the ones that the users think they need. You then need strategic planning on how to meet those needs, a lot of that will be about understanding how the new program will fit into the existing ecosystem. Next comes the translation of that strategy into a programming language (or more: you may also need some SQL, HTML, shell, ...) and the completely different skills of debugging. Finally: documentation for the users and also the programmers [actually: I find that doing the first draft of the documentation before writing the code is a really good idea].
So: programming is much more than just language skills.
Some here have asserted that programming is a branch of maths. This may be true for some sorts of programs (or some subroutines), but it is not true for most of what I do -- although an understanding of maths does help some parts.
Summary: please don't be simplistic, programming is a complex skill that requires many different brain subsystems, language is just one of them.
Re: (Score:2)
Sounds like my typical experience... (Score:2)
"Mathematical calculations typically take place in the intraparietal sulcus, mathematical reasoning in the right frontal pole, and logical reasoning in the left frontal pole. These areas were not strongly activated in comprehending source code.
Usually, when I'm reviewing legacy source code, I find that the author's mathematical and logical reasoning centers were not strongly activated while writing the code, either.
Re: (Score:2)
It's like writing an essay. The quality of the source code really depends on a number of things; whether it was something new or familiar to the programmer, how distracting/peaceful the environment was, how much time was available to polish up and refine the code, and whether there was any framework that they could use (such as node based programming, GUI widgets, or the TCP/IP network layer models, template files for writing new modules).
Re: (Score:2)
Oh, I understand completely, and an embarrassing large chunk of the legacy source code I have left behind falls into the "I could have done that better, if..." category. Nonetheless, it's amazing how many business and even life safety critical systems are creaking along on "proven" steaming piles of "could have done better, if..."
Programming is a form of writing (Score:3)
I've always thought that a good essay writer can make a good programmer. In particular, good essay writers can make good programmer/analysts or project managers. In both worlds, you struggle with scope, organization, and fact finding. Answering the question "What is this paper/program really and truly about?" is the primary task.
Code is closer to legalese than math (Score:2)
Both try to m
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Law is fuzzy. Programming is usually not.
Law is often inconsistent. Programming (or the underlying logic) usually cannot be inconsistent.
Law is relatively simple once you get past the fuzziness and inconsistencies. A lot of software is multitudes more complex than legalese.
There's often an easy way to test your program. Not so easy to test a legal theory or opinion. (You go to court, spend thousands or millions on legal fees before you get a judge to decide on the matter -- and then you have appeals)
Lawyers
Re: (Score:2)
But law is stuck in an archaic mode. It is using natural language with words having imprecise meanings and sentence structures that can not easily handle complexity. It is like the biology books before the widespread adaptation of pictures in print. Elaborate naming conventions, trying to unambiguously descrine leaves branching off the stem two at a time, or one
Re: (Score:2)
(Sorry for stereotyping but) you're a typical geek. You think that words can have a precise, context-free meaning, and whether something falls within the meaning of a word (or a technical term) can be done in polynomial time.
The real world is much more complicated than that.
Take for example, what is a male and what is female? You'd think it's easy enough to determine that if you have access to the genitals, but there's still difficult corner cases to handle. For legal questions, it can be even more complica
for school, either programming or foreign language (Score:2)
I use several programming languages, and I can read about 3 human languages. While there are some similarities, I'd say the two things are quite different. However, that doesn't settle the question of what should be taught in school.
I've gone back to school. I'm getting a degree from WGU. For my degree, I could take either American history or sociology. By giving me the choice, the school isn't implying that history and sociology are the same thing. They are saying that either one will improve my educat
Re: (Score:2)
Backin the early 1970's the college I went to allowed FORTRAN to satisfy one of the two language requirements.
Some programmers? (Score:2)
Of course language centers were active... (Score:2)
Re: (Score:2)
Too true. Although, honestly, in most cases the criticism is justified.
Of course when you go back and look at your own code a few years later and think the same thing ... then you have problems!
Sigh. Yet another fMRi study with poor controls. (Score:2)
The control groups should have been two other reading selections designed to bracket programming code reading: for example, reading mathematics, such as algebraic proofs, versus reading in an unfamiliar non-math vocabulary like a dense legal contract. It's possible that all would have looked similar, or that two but not three would have been similar, or all different. We just don't know.
And don't let me even get started on the fact that most fMRI studies use far too few subjects and then use absurd values
Here we go again.... (Score:2)
Maybe if they look at computer memory with an MRI....
But lets get to reality here and consider what the topic really is... abstraction. http://abstractionphysics.net/... [abstractionphysics.net]
Listening, reading and writing (Score:2)
There's a huge difference between listening, where you have no control over the speed of delivery/level of difficulty and reading where you can take your time, look up 'words' [or pieces of unfamiliar syntax] and writing, harder than reading but you can still pace yourself and work around difficulties.
Otherwise there's anecdotal evidence that 'extra' natural languages are easier after the fi
The question that we really need to answer (Score:2)
Can FMRI be used to program without keyboard or voice input?
That's what I really want to know.
Re: (Score:2)
I used to think all programming languages were more or less the same, and this opinion was based on having programmed in a variety of languages, and noted how easy it was to understand the gist of a new language pretty much immediately upon seeing it, and coming to understand any nuances involved without too much further study.
Then I ran up against OCaml. And I was humbled. I didn't really realize that there could ever be a computer language as hard to approach as learning a new spoken language, but OCaml