I often struggle when writing new blog entries. What should I write about? What's the first sentence? What should the title be? When do I end, and what do I end with?
Copyblogger's Copywriting 101 has some excellent writing advice masquerading as marketing advice:
Copywriting skills are an essential element to the new conversational style of marketing. Whether you're looking to sell something or to build traffic by earning links from others, you'll need to tell compelling stories that grab attention and connect with people.
But there's an immediate problem: what the hell is "copy"? Even the word is boring: copy. Who wants to read that?
Good writing is good writing. But good copywriting is marketing.
The second you start thinking in terms of copywriting instead of writing, you've already lost. Forget marketing. Drop the copy. Stick with plain old writing, the kind we've been practicing for the last few thousand years.
Still, copyblogger's writing advice applies to anything you want people to actually read. What are you selling? The topic you're writing about. Net profit? Zero. But you have to sell your topic to communicate effectively in the din of noise that is the internet:
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.
Of course, all of this assumes that you are actually after, as Mr. Spolsky puts it, "power and influence" as a programmer. Me? I just want to do what I love which is to architect and write code.
Power and influence aren't what we're after. They're a side effect, a necessary evil, a form of currency that makes it easier for us to get things done. It's not machiavellian-- although it can seem that way. Power and influence give you the freedom to architect and write code as you see fit.
Power and influence achieved solely on the basis of solid communication skills is a virtue, not a vice. It's the ultimate form of citizen leadership.