Is it unusual for a good coder to also excel at writing?

I'm going to say something controversial here: at a fundamental level, programming isn't terribly difficult, and most people who write software for a living aren't particularly smart. It has nothing to do with disparate skill sets, intellectual aptitudes, or "ways of thinking." In fact, given that both disciplines are fundamentally a means of communication, the skills required are very much the same.

Natural (human) language syntax is enormously complex and intricate--far more so than any programming language, so most people who have a strong affinity for natural language can easily master significantly simpler machine-oriented languages. The way that programming logic is structured is in fact very similar to the way human language (and thought) is structured, as you might expect: programming languages were quite literally designed as a bridge/translation medium between the way that a human mind works and the way a binary electronic computer works.

This misconception (that most people who write code are also terrible writers) stems from the fact that there's a much lower bar for what constitutes acceptable code than for what constitutes acceptable natural prose. In the former case, there's an easily obtainable and measurable metric: it either works in the sense that the machine "understands" it and does what it is supposed to do, or it doesn't (we can discuss the value of "clean" or "elegant" code another time--the business objective, which is what you're actually paid to accomplish, is clear regardless). In the latter case, spoken or written language that merely "works" (in the sense that some basic idea or thought is expressed to others in a vaguely understandable way) isn't enough; you'd be inclined to think the author/speaker of a statement like, "me food want," is illiterate and possibly even stupid. This certainly would not be an individual who would be taken seriously--who would inspire, convince, or influence--but if you can write the equivalent of "me food want" to a computer, which will respond by spitting out a bag of chips, you've just wrote technically shippable software (of one sort, at least).

So, what of the really hard stuff--scalability/growth of functions, concurrent/parallel programming, statistical modeling, the complexity inherent to large or distributed systems, so on and so forth? What about writing code that's highly functional and efficient, yet clear and expressive to the human reading/editing/maintaining it? Well, now we're approaching the complexity of human language, and this is why people with a natural aptitude for writing really excel even on the technical side of this field.

Finally, there's the obvious fact that social skills, along with the general ability to communicate your thinking (through writing and speaking alike) and therefore influence the thinking of others, is vastly more powerful than any amount of raw technical acumen. That is what will turn you into a force multiplier (even as a so-called "individual contributor") and advance you into positions of meaningful leadership.

/r/cscareerquestions Thread