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.
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.