The thing is, I don't think people appreciate how much of a deep skill thinking logically is. It's not something you can pick up in a weekend: there is a monstrous gap between the basic common sense appreciation of cause and effect that nearly everyone attains in their lifetime, and the rigorous analytic mind that can look at a series of instructions and deduce all possible outcomes. This is a skill that doesn't require formal training, yes, but it is a skill that must be mastered, with all its requisite 10,000 hours of training beforehand. The best programmers have all been doing this for years, deconstructing the world and its workings whenever they can, and learning the mechanical structure behind their every experience. This training has given them a unique mastery, and while it's not for me to say whether this skill is fundamentally innate or purely a result of practice, it certainly takes years to develop the right modes of thinking. All I can say is that mastery the ability to think logically is a prerequisite for programming in any deep sense, and not everyone has this skill. This is why when I ask my mathematician and physicist friends to look at a program, they can decipher it in minutes even if they don't consider it particularly gripping, while if I ask my writer and even medically trained friends they blankly stare at a wall of gibberish.
Sorry if this answer is more anecdotal than you are asking for, but in my experience there is a fundamental skill in programming that must be mastered that many programmers take for granted, and you can't expect people without it to pick up deep programming in a reasonable amount of time. That's not to say there's no useful place in a place with colleagues for someone who can't really synthesize new bulletproof code, especially in this age of Google and StackOverflow, but the kind of skill people need to whip up a prototype of a novel application on their own without outside assistance takes years. I think Zed Shaw is right in his response to this blog post, if you really are a "people person" than perhaps coming to a programmer with a completely thought-through user experience designed out matches your skillset better, and it's every bit as valuable to the final product as programming knowledge.
I wonder how you could define a study to determine corellation versus causation here. Maybe I think this way because I've spent so much time fighting computers. Or maybe I've been willing to spend so much time fighting computers because I think this way. It's a fascinating question to me.
You need x amount of time coding, debugging, refactoring before you can call yourself a programming 'expert'. This is time that could have been spent learning some other skill like how to cook, how to fly a jet, how to bungee jump while flying a jet, etc.
The real question is, how much time is the person willing or able to invest in learning how to program?