At What Age is it Easier to Learn?
Maria D asks: "At what age do people learn faster? Suppose you want to learn to write code at a certain level. What age ranges will absorb the lessons the best? There is surprisingly little research on post-early-childhood development. A language won't be quite native if you start learning it after five or so, but what about adult differences? From informal observations in graduate schools, I've concluded that older people learn faster because of their experience in learning techniques, which seems so counterintuitive!"
I'm hardly the person to ask on this, but I think I may be able to provide some insight. Language acquisition seems to be fundamentally different from learning the solutions to other types of problems. Computer code is a very additive learning process - it can be taught most easily (I think) by teaching it as a combination of pre-existing skills. It heavily involves mathematics, logic, "common sense", and breaking down a complex problem into many component parts.
Linguistics appears to be totally opposite. Though there are animals that can learn very basic linguistic abilities, though they are able to do many things that *look* like language, no chimpanzee, gorilla, or other (dolphins, etc) has ever been shown to actually use language. Likewise, no matter how much fundamental knowledge of grammar you possess, translating that knowledge into easily learning another language as a fluent language is extrodinarily difficult or even impossible (I'm learning two dead languages, Latin and Greek, so I feel confident to make this sort of statement).
Children aren't good at doing all of the componentry involved in learning computer code. It's impossible to explain memory allocation to someone who doesn't yet possess the ability to understand basic math (it's hard to teach it to someone who DOES understand basic math!).
I think the best age, personally, is someplace in upper middle school - around grade 7 or 8. Once you've got algebra, functions and expressions make logical sense. Proofs - geometry and others - make a great corrolary to code. You're given a set of known commands and asked to solve a larger problem.
So, anyway. Right before geometry, and continuing through it, probably would be the best time.
I've got a couple of small children. The 4.5 year old can get around pretty well, knows some programs work in windows and some in linux and can boot into whichever one she wants. She can also recognize the icons and start whatever game or explore the system menu and bring up other games and applications. What she can't do is read.
Sure, she's learning. She enjoys sounding out various words and spelling them. But she's gonna have a pretty difficult time writing programs and debugging code until she can read and understand various error messages. I think about the earliest you can expect learning to code to be productive is around 7 years old.
Looking for a computer support specialist for your small business? Check out
I'm past 40 and whenever it's about what interests me the most, I have no problem learning new stuff.
I think it's more fair to ask at what ages are we more easily trained. We learn skills, repetitive routines, and hopefully creative ways to apply those routines when we're younger. The notion of routine and application aren't quite so tedious then because it's all new. As we get older we start to generate interests past the simple routines and our horizons broaden. As a chemist, I'm wonderfully interested in the application of programming and "what can I do?" but I'm no longer so interested in programming that I have the patience to go back and learn the formal syntax and the basic routines necessary to familiarize myself with achieving those ends within the context of, say, C programming.
Basic math is a great example. Throughout grade school we found ourselves doing 50-60 of the same problems over and over. Into high school sets were down to 10-20. By the time we get to differential equations we're solving only a handful of each type of problem because the method is so much more complex. Essentially, however, we're conducting millions (or approaching infinite) numbers of the basic calculatins we did by the dozens in earlier years.
As we get older we tend to eschew formal training in favor of more abstract pursuits. It can be said that we're less apt to learn. That holds true if learning is only defined to be an interest in extremely fundamental concepts that don't have easily perceived real world impacts.
fast as fast can be. you'll never catch me.
I don't have research data or any such thing, but I'm not so sure this is age-group specific. There seems to be a cluster of people who cannot learn even the most simple, intuitive things on a computer. Obviously, no matter their age, computing is beyond them. Others seem to have a natural grasp for the basic concepts - the logic and mathematics and structure - that makes it easier to learn a new computer language. Being older may make it harder to shift to a completely different style of programming language - say from DOS to LISP. But, given a certain level of skills and inherent talent, any age group could learn a new programming language.
The more important factors are desire and motivation. Learning a new language just because some management-level hack thinks it will be the next great thing(tm) could make any age-group lag behind. Learning a new language because it resolves a lot of the issues and difficulties encountered in an already known language or because it is necessary for the project one wishes to work on makes age irrelevant.
I was taking one day at a time, but then several days got together and ambushed me. (from a Rhymes with Orange comic)
There is surprisingly little research on post-early-childhood development.
Really? I'm sure that nobody has studied "the best time to learn a computer language", but if you've done a real survey of the literature, I'm sure you can synthesize your own answer superior to pretty much anything you can read here.
My own conjecture is that "developer ability" (the ability to construct your own abstractions, and use others effectively) as opposed to mere "coder abilitity" (the ability to make code "do this" and "do that") is probably almost directly correlated to mathematical ability, both in the K-12 and upper-level-college senses of the term. In fact I suspect there would be an almost direct parallel between the "numerical manipulation" skills that constitutes most math in a K-12 education, and the ability to do math at a Mathematician's level. To use the somewhat-out-of-date-but-still-useful Piaget naming, "concrete operational" vs. "formal operational".
I'm not saying the two are identical, just that the cognitive skillsets are so similar that the development literature for math is likely to apply quite directly to coding. Trying to teach an average six-year-old "Object Orientation" is probably too much abstraction for them; they may learn to manipulate pre-existing objects but I'd bet that until they become "formal operational" they will have a hard time creating good objects of their own.
OO here is just an example; functional, for instance, I'd expect to be even harder to really grasp in the general case. You could teach simple map and filter, but they aren't going to get the full richness. Again, on average.
So this is a meta-answer: I don't know the answer to your question, and 99 out of 100 people posting won't either. But I can refer you to the literature on learning math and guess that it is as likely to apply as anything, with the mapping I've given you here. I can't be sure, but it's a good guess. And I'm pretty there's been a lot of study on that topic.
(People rushing to reply to this are encouraged to be sure they understand the meaning of "concrete" and "formal operational", and the meaning of the word "average". If so, fire away, but I'm sick of people mentally editing qualifiers like "average" or "most" out of my messages and then firing with all cannons as if they weren't there, and if you don't know those Piaget terms you don't really know what I said here.)
(And while I've defined the terminology, I'm going to point out a lot of people who think they are "developers" are in fact "coders", at least as evidenced by the source code I've seen both in closed and open source projects. Few people seem capable of creating decent abstractions.)
Now where did they put that Submit button....
"Eve of Destruction", it's not just for old hippies anymore...
Before I saw my 13th birthday I recieved a full education in military history, mathematics, and the practical application of militar hadware and tactics. I applied my education in the effort to totaly blow the crap out of an alien race that we were currently at war with. Take it from me it's never to early to start. PS: If you haven't read the book ENGERS GAME don't mod me down, you're just not in on the joke.
Blessed are the pessimists, for they have made backups. -- 0 1 My two bits
Do you think it is the development that gets involved here, or/and experience? To take another example, it is hard to learn philosophy before you reach certain level of thought abstraction, AND experience certain life situations.
:-) What then happens to speed of learning vs. age?
Suppose we pick tasks that are not beyond people's development levels, such as riding a skateboard, or programming a goto operation
I took some speech therapy for foreigners learning English. What helped me learn to distinguish the sounds I could not previously tell apart was not listening to them, but LOOKING at their visual representations. For example, there is an oscilloscope of sorts that draws a "shape" of each sound. As you try to match the correct shape, you learn to distinguish sounds through the visual feedback, and not through your ears - they can't do the job initially. Another helpful visual tool is a diagram of your mouth position as you produce the sounds. You can compare the two positions, try to reproduce them, and through these actions eventually learn to hear the difference.
Personally I started learning HTML in about 5th or 6th grade. I could do some BASIC coding as well. But even at the top of my classes in math and science, I'll admit learning C structure at 10 was much more difficult than when I tried again at around 14 with algebra and geometry under my belt. Anything I suppose could be taught to anyone. But do you all remember struggling with Times tables in 3rd grade? It's challenging to do rudimentary programming without at least addition, subtraction and multiplication memorized pretty good.
>From informal observations in graduate schools, I've concluded that older people learn faster because of their experience in learning techniques, which seems so counterintuitive!
Aiming for a PhD after a score of years in corporate environment, I agree. It is somewhat easier to learn when you have real life experience to which you can attach the book knowledge.
But let's also not forget a major factor: MOTIVATION. Teens and even college kids don't necessarily have a clear motivation to learn, older people are usually learning for a specific purpose. It really helps to focus energy for doing the right things.
Quoting the site http://www.infoaging.org/b-neuro-1-what.html , whose findings agree with other material I have read:
"Most studies show that, in general, cognitive abilities are the greatest when people are in their 30s and 40s. Cognitive abilities stay about the same until the late 50s or early 60s, at which point they begin to decline, but to only a small degree. The effects of cognitive changes are usually not noticed until the 70s and beyond."