Do you think that writing about software (i.e. having a blog) and speaking on software (and concepts) make you a better programmer?
Statistically speaking yes. You only retain about 20% of what you read and hear, but 80% of what you teach.
By writing about something or teaching about it, you force yourself to understand the concepts on a much deeper level.
UPDATE:
I wanted to update this with some links to more concrete data to support the statistics that I have been taught numerous times about learning retention rates. However, it would appear there is some controversy surrounding these numbers, even though the NTL Institute for Applied Behavioral Science maintains that research was done to back them up.
Absolutely, for one simple reason: It challenges your preconditions. You could write an article about how perfect .NET is for a given situation, only to find someone has used it, and it turned out badly.
I think the main thing these activities do is force one to more thoroughly research things and research new things. Does this make you a better programmer? I think so.
Yes. In the work force, being able to communicate effectively is as, and sometimes more important than knowing every obscure detail about language X.
I believe that is the case. As with teaching, you develop a firmer grasp on the subject when you have to explain to someone else. You get to see what you understand and don't understand in greater detail.
Absolutely yes. You have the chance to be challenged and questioned and second-guessed in ways you'd never think of on your own. It also gives you a chance to work on the organization and presentation of your ideas. All of this will feed back into the decisions that you make when you're writing code.
I would argue the opposite: that in general the good programmers love to write and speak about software. It shows that they are passionate about it, and won't accept crap.
I think it encourages you to be a better programmer generally by visualizing your opinions and by reading users responses. I don't think the fact that you have a blog or can display the ability that you are knowledgable about developing makes you better inherently but it might help motivate you to be better so you can keep up with your posts.
If you tend to write or speak about software then that means you're thinking about it and you have opinions. Caring about it enough to write makes you a better programmer.
I think that being able to speak and write well make you a better developer. Not necessarily because it will improve your programming skills, but because software development is a lot more than just banging out code. Whether it's for a company or an open source project, all but the smallest pieces of software are team products. In this environment, it's going to be the developer who can best communicate that will make the biggest contribution, not the one who is necessarily the best coder.
Teaching about software absolutely makes you a better programmer. Writing on a blog is not so far off.
Absolutely. Knowledge without regular using is useless. Talking about technologies, languages, methods, development processes, books etc. greatly improves overall experience and points possible ways of professional evolution.
Most of the things that I learned about .NET, I learned when I was reviewing it to be able to train newbie devs. So yes, speaking on software helps a whole lot.
Yes. If you get feedback (eg, blog comments), then doubly so. Others will invariably think of something that you didn't, but may never have had the chance to tell you if you didn't speak up first.