We get wonderful emails from programmers almost every week, programmers who are impressed with the effectiveness of Stack Overflow and the platform agnostic community spirit it embodies. We consider ourselves very fortunate to be in a position to get such email, and we greatly appreciate each and every one of them. I always reply and share those emails with our team, but I don't necessarily reprint them here -- I don't want this blog to become a rah-rah marketing effort. But I do want to share with you one of those emails, the one that made me proudest to be a part of this community. (You may know this Stack Overflow user, so I've redacted anything that would make it personally identifiable.)
I'm not sure if you have thought about this side effect or not, but Stack Overflow has taught me more about writing effectively than any class I've taken, book I've read, or any other experience I have had before. I can think of no other medium where I can test my writing chops (by writing an answer), get immediate feedback on its quality (particularly when writing quality trumps technical correctness, such as subjective questions) and see other peoples attempts as well and how they compare with mine. Votes don't lie and it gives me a good indicator of how well an email I might send out to future co-workers would be received or a business proposal I might write. Over the course of the past 5 months all the answers I've been writing have been more and more refined in terms of the quality. If I don't end up as the top answer I look at the answer that did and study what they did differently and where I faltered. Was I too verbose or was I too terse? Was I missing the crux of the question or did I hit it dead on? I know that you said that writing your Coding Horror blog helped you greatly in refining your writing over the years. Stack Overflow has been doing the same for me and I just wanted to thank you for the opportunity. I've decided to setup a coding blog in your footsteps and I just registered a domain today. Hopefully that will go as well as writing on SO has. There are no tougher critics than fellow programmers who scrutinize every detail, every technical remark and grammar structure looking for mistakes. If you can effectively write for and be accepted by a group of programmers you can write for anyone.
There's nothing I respect more than a great programmer. But if you can manage to become a great programmer and a great communicator, there's almost nothing you can't accomplish. I know I've said this several times already, because I tend to repeat myself. I said I tend to repeat myself! But I have to point to my favorite Joel Spolsky quote again:
The difference between a tolerable programmer and a great programmer is not how many programming languages they know, and it's not whether they prefer Python or Java. It's whether they can communicate their ideas. By persuading other people, they get leverage. By writing clear comments and technical specs, they let other programmers understand their code, which means other programmers can use and work with their code instead of rewriting it. Absent this, their code is worthless. By writing clear technical documentation for end users, they allow people to figure out what their code is supposed to do, which is the only way those users can see the value in their code. There's a lot of wonderful, useful code buried on Sourceforge somewhere that nobody uses because it was created by programmers who don't write very well (or don't write at all), and so nobody knows what they've done and their brilliant code languishes. I won't hire a programmer unless they can write, and write well, in English. If you can write, wherever you get hired, you'll soon find that you're getting asked to write the specifications and that means you're already leveraging your influence and getting noticed by management.
To the extent that Stack Overflow is helping my fellow programmers achieve the goal of becoming better writers and communicators, it is succeeding beyond my wildest possible dreams. And for that, I am immensely thankful. Thankful to each and every programmer who sees fit to slice off a small bit of their time to share their expertise and knowledge through Stack Overflow. You guys (and gals) rock. Have you honed your communication skills? Discover opportunities to put them to work in our job listings for developers using Java, Python and many other languages. But remember that those languages are not necessarily the most important.