In a post, a few months ago, I drew a few parallels between programming skills and language communication abilities.
That these two are different is very obvious. But what strikes me is apparent lack of appreciation of the fact that programming is not about syntax, its about encapsulating complex concepts in an intelligible depiction. (Thats exactly what language — as in English language — is all about.) Also, language skills are vital not just for communication but for thinking also.
Bad communicators can be good programmers — I know and respect a lot of such people — and many good communicators would be scared of programming. What’s important to realize is that these skills are complimentary: one can reinforce other.