Can anyone and everyone learn to code?. That's a link to a survey being run by a computer science education researcher I know (previously my CS PhD supervisor), they're looking for opinions from a diverse range of people who are interested in coding and what it takes to get there. Regardless of your level of coding experience or technical education, your opinions are valuable; perhaps even moreso if you've come to Arduino from a non-technical background.
I suspect that there's a lot of useful replies to these questions amongst the Arduino crowd but I'm posting this link without their knowledge so don't blame the researchers if you think this is an unsuitable topic for the forum.
Since Arduino creating an open platform for hobbyists, professionals, beginners, artists, I think this survey suitable for this forum, and it took 2-3 mins. to complete for me.
Humans have the primary characteristic of diversity. Nothing is the same for Everyone. Read Howard Gardner on Multiple Intelligences.
I think you may be asking the wrong question. Maybe it is more like:
What reasonable subset of humans can benefit from the experience of learning how to express ideas as code?
What Intelligences seem to be correlated to humans who become productive and fulfilled in activities that are strongly coding related?
What dispositions do effective coders bring to the learning process and practice of coding?
..did the survey
I agree its a difficult question.
I know i can code as i have done it, some languages are easier than others.
I also know i have great difficulty with foriegn languages but know people that have mastered several including indo chinese languages.
When learning french as a youngster i found it impacted quite badly on my abilities with my native toungue.
Strangely i did not have the same problems with latin.
Almost everyone can learn, but not everyone can excell.
I've been in Mexico 8 1/2 years, and I can tell you that my wife has had a very hard time learning Spanish.
I on the otherhand, hand built an electic guitar and cannot play it at all.
I am convinced that some brains are just wired to accomplish different things.
I code, but I don't code as well as I used to.
I did the survey.
I'm a bit puzzled by the "everyone learn to code!" thing. I think it's one of those fads that happen every so often. I guess it is topical now because of the web-based startup guys becoming zillionaires overnight, apparently just by being a nerd and knowing "how to code".
The interesting thing about technology and society is that technology is successful precisely because users do not need to understand how it works. Imagine if you had to learn electromagnetic theory in order to use a microwave, or quantum mechanics to use a smartphone. There is a relatively tiny pool of experts who create these things, which the vast majority can use.
I'm not even sure that it's useful to have an appreciation of what's inside technology, although it might help to have an intelligent debate about issues such as nuclear power, global warming, GM crops etc.
Anyway, I really don't know why I have an aptitude for programming, and couldn't usefully speculate on why and how other people may have an aptitude for it.