Agreed. I'd add this thought: code is a human language and like all languages fluency is most easily developed as a child but immersion and repetition can help adults develop it too.
Agreed. I'd add this thought: code is a human language and like all languages fluency is most easily developed as a child but immersion and repetition can help adults develop it too.
Having said that, I do think that learning programming young is a good idea, but not because it's "easier" for children. Instead, they simply have a much longer time to get used to the "logical way of thinking" (I don't know of a more concrete term for this, but hopefully you know what I mean).
I would not expect someone who started at 10 and is now 20 (10 years experience) to be a better programmer than someone who started at 20 and is now 30, or even someone who started at 50 and is now 60.
Experience is a big factor, but I think there's a limit to the amount of language learning most 50 year olds can undergo, even in a decade. But luckily for us we agree young exposure to code is a good thing :)
I wonder why you think this is true? I have personally never been given any reason to believe that a 50 year old is any less able to learn a language than a 0 year old. In fact, if you took a 50 year old and dumped them alone in a foreign country and gave them one or two dedicated language teachers and left them there for many years (which is the environment in which most children learn a language), I expect they would learn the language just as well as the child, if not better.
It's well documented that the median language-learning speed/ability of younger people is greater than that of older people.
Wittgenstein's philosophy of mathematics might be interesting to you. His description of calculation as a linguistic process should settle the issue if you buy it.
Edit: just found this related item on HN, a math prof examining the nature of a proof: http://profkeithdevlin.org/2014/11/24/what-is-a-proof-really...
By the way, older people who share the characteristics of being only lightly acculturated (i.e. eccentric) share the relevant characteristics with children and may be able to learn things like languages with childlike speed. Hence, I believe, PG's observation that startup founders of any age tend to be weird, quirky, or poorly socialized in various ways.
all cultural, mutable, consensus based concepts are more easily learned as a child
There are many "hobbies" that have a cultural component. It helps to learn these earlier, because it removes cognitive overhead during later studies. But its simply not true that children are better at learning everything. They are hard-wired for language tho. Plenty of other things they are un/der developed for.
I have recently found tools that are mostly used for learning natural languages are also useful for learning programming languages. Computer flash card programs, like Anki, are effective at memorizing a vocabulary efficiently. Just like real flash cards, you put an English word or definition on one side, and the word or phrase on the other side.
So as I've been going through a Coursera on the R programming language, every time the instructor explains a new function or way of doing something, I put it in an Anki flash card. I haven't been doing it for long enough to be certain, but so far I think it's been pretty effective. Because 90% of the work of learning a programming language is just like a natural language; the vocabulary and grammar.
You could also use this to learn mathematical notation, but that's only a small part of it. I have yet to find any use for this system in my other Coursera course on logic.