Starting a Programming Blog

It is one month ago today that I decided to start a programming blog. I wasn't sure what to expect but I get questions both here and in the real world so I thought I'd jot down some my experiences.

Why Start a Blog?

Fellow StackOverflow user, Brent Ozar goes into this in a way I see no need to repeat in Sow to Start a Blog. Jeff Atwood probably tipped me over the edge when I read How To Achieve Ultimate Blog Success In One Easy Step. Not from any grandiose notions of reaching those giddy heights. It was more the just do it attitude.

I'll just say that for me it's not about earning money from the blog. Other than Joel Spolsky, Jeff Atwood and one or two dozen others, I don't think anyone makes enough money from blogging to justify the effort (compared to, say, spending that time getting paid for professional services). For me, there were (and are) several reasons:

  1. To have a demonstrable body of work on a variety of topics;
  2. To make me a better communicator;
  3. To raise issues I feel are worth discussing such as the future direction of Java;
  4. To write tutorials on technologies, platforms or libraries that I don't think have been sufficiently covered, like my ongoing series on Ibatis; and
  5. For fun.

Interestingly, many of these reasons are the same as why I chose to become a frequent and regular contributor on StackOverflow. StackOverflow luminary and contributor extraordinaire, Jon Skeet has written about writing helpful technical answers, which is worth reading.

Recently someone suggested that new users are at a disadvantage to experienced users in terms of gaining reputation. In a way they're right but not because of the implied reason that people vote for and accept answers just because an "old-timer" answered it but because--speaking as someone who has answered over 1,000 questions on StackOverflow--answering questions makes you better at answering questions.

Blaise Pascal once said:

The present letter is a very long one, simply because I had no leisure to make it shorter.

This applies very much to answering questions and writing blog posts and doing pretty much any form of written communication: there is a skill and an art to writing something that is long enough to be useful and short enough to be read and succinct. I see the difference in my own answers on StackOverflow now versus 6 months ago.

The other positive aspect of answering questions is that it's a really good way to teach yourself a new skill. I had read large chunks of "jQuery in Action", which is a fine book, but it's only when a library is met by other programmers that you start seeing real world cases and problems of how to apply it. I taught myself jQuery by answering questions on StackOverflow.

What to Write?

You get a lot of people who ask "I'm new to PHP, what framework should I use?" Likewise, I've seen people ask "I want to start a blog, what should I write about?" In both cases, people can miss the point: a framework is a tool. It exists to solve a problem you have rather than being a security blanket. It may sound trite but only start a blog if you have something to say.

Other people write very narrowly focused, highly technical blogs that can be of excellent value. I've always been more of a generalist so I deliberately chose not to restrict myself too narrowly, which is why you see posts here about PHP, Java, CSS, ORMs and SQL and a mix of both technical posts and opinion pieces. Is this a good idea? I have no idea. Like I said, I'm new to this.

What to Expect?

I didn't know what to expect going in to this. Would 10 people a day read my blog? 1000? None? This is the situation after exactly one month, according to Google Analytics:

Are these numbers good? Bad? I honestly don't know. I will say that I am pleased and this has exceeded my most optimistic yet nebulous expectations.

My Advice

It may be premature or even presumptuous to start dispensing advice so soon but I have learnt a thing or two worth conveying:

  1. Start from day one under your own domain name;
  2. Use Blogger. Using your own domain is free. It is a paid feature on Wordpress. You could of course host it yourself but why would you?
  3. Turn off "Convert line breaks" on Blogger. It's a real pain to change later;
  4. You're better off writing HTML than you are using the inbuilt editor;
  5. Find, choose and cuustomize a good template. Obviously this is subjective but you don't want your blog looking like every other blog;
  6. Use Google Analytics
  7. Use Kontactr for a contact form. Make sure you have a contact form;
  8. Link any relevant profiles like LinkedIn or StackOverflow or any open source projects you contribute to;
  9. Add a selection of social news links (eg DZone, Digg, Reddit, Twitter) to your profile;
  10. Put your content on the left. This is easier to read on lower-resolution displays, especially mobile devices;
  11. Use Feedburner for RSS feeds; and
  12. DZone is your friend. Of course this will vary depending on your content. For me it has been the biggest traffic source by far.

So there you have it. I must admit to having a Seinfeld moment writing this post. Much like "the show about the show", this is now "the blog about the blog". I hope these observations and tips are of use to you.

Continued in Part 2.


Erlik said...

I have started my own tech blog ( about 2 months ago, also using Blogger, and I have a similar experience: about 9000 visits and 11000 page views. Most of my traffic come from a few social sites like Dzone (very good site indeed). What I noticed is that most traffic bursts come from social sites specialized on the subjects I write for and bring around 1000 visitors, while more general sites like Digg are better at giving you a few visitors each day (long term).

Anonymous said...

I started my blog near the end of this past March and I have to say the biggest kick for me is that it is a motivator to spend more time on things I would not normally spend so much time on. I have not nearly the number of hits but I am please that one of my articles on SVN has received more attention than I expected and while I don't get the traffic I could on Blogger I am enjoying the experience a great deal.
One thing I found is that having a partner is not a good idea and regular posts (more than 1 a week) requires smaller posts so perhaps since my are very long I am shortchanging myself - what do you think?

Anonymous said...

Great article, just recently started up my own programming blog as well ( Much like you Dzone has been a major source of traffic but I also seem to be getting a good 200-300 visits a day just from search engines. Originally I started my blog for personal reference and never thought about getting traffic. Then after posting one one Dzone for fun and getting tons of feedback I got addicted to the thrill of having people debate my topics and trying to build traffic.

Care to exchange blogroll links?

Bill the Lizard said...

Good advice all around, particularly regarding expectations and goals. I started blogging primarily to teach and learn, not to profit. I won't be able to retire from programming any time soon. :)

Thanks for the list of 12 points of advice. There are a few on there that I figured out on my own (Blogger's editor is terrible), but there are several that I need to implement immediately.

One question: Do you submit your own posts to social news outlets like reddit and dzone? I've only done this myself 2 or 3 times, since the reddit community seems to frown on it if they detect that you contribute too many links from the same source.

lol said...

lol u suck. go back to twitter u damn hipster

George said...

Thanks for the excellent article. I just started my blog earlier this month ( and will definitely take your advice. So far I've been finding the blogging experience to be pretty fun and it forces me to think about writing well - an extremely important skill that a lot of engineers don't have. It is a pretty nerve wracking putting your work out there for eyes to see and criticize, but I think a lot of people under estimate what they have to offer.

Anonymous said...

Great article - this really helped me out. When you say that you're better off writing HTML - what do you actually use to blog then? Or are you writing HTML by hand?!

William Shields said...

@codertools: I have no basis for comparison regarding shorter posts if more than one a week. As it turns out in one month, I've had 23 posts, so... :)

@psikokan: 200-300 a day from search engines is nice, well certainly more than I'm getting. My numbers have recently spiked as I've been writing about Ibatis (I'm links #7 and #9 on Google for "ibatis tutorial" now).

@Bill the Lizard: each site seems to be different regarding what topics are popular and general etiquette. As far as I've seen, DZone seems to have no issue with it (as long as you don't spam links) and the others I'm still figuring out. Yes I generally submit my own as I view at least some of these sites as a form of distribution and promotion.

@George: let me first say, I don't normally like "dark" site designs but I really like your blog design. And I agree that it can be a little nerve-wracking putting it out there and seeing how its received. What I find interesting is that sometimes you're really surprised how people react to certain posts, sometimes reacting very well to ones you don't expect (this one for example).

@jaco: yes, don't laugh, but I write HTML by hand. Then again, I'm old school and have been doing that for 15 or so years. If the editor was decent I'd use it. TinyMCE for example would be fine.

Tim said...

Wow, another blogging developer from Perth. There's a surprisingly large number of us around

I'd been toying with the notion of starting a programming blog for a while too, and it was Jeff that pushed me over the edge also.

I reached a similar conclusion as you did about not writing unless you have something to say . I found it out the hard way, after dozens of irrelevant, pointless posts, but I just chalk it up to the many things blogging has helped me learn.

Like you, I've had some success from DZone, Hacker News and Reddit, though I prefer to let other people submit my stuff. I like to use it as validation that I'm not writing totally unreadable crap.

I have to say though, I use Wordpress and prefer to host my own, because I have oodles of hosting and DNS server space so it's really no big deal, and I like that I can upgrade/sidegrade/downgrade to a "roll-your-own" option, especially since the more I use Wordpress, the more I hate (and love) it.

William Shields said...

Perth is over-represented on StackOverflow too, with 3 of the 20 highest rep users being from Perth (Pax, Mitch Wheat and myself).

Go Perth!

Anonymous said...


Excellent advice -- and always glad to see fellow programmers taking up blogging!

Anonymous said...

Thanks again for the advice. Just a tip (if you're interested) - I didn't want to write Html by hand (blogging takes up enough time as it is - I tried quite a few blogging apps and Windows Live Writer is so much better than anything else out there it's ridiculous. I would really recommend you try it.

Anonymous said...

There is one thing that I am not sure about regarding posting for a programming blog, and that's how to embed code in a way that looks half-way decent. From the page sources of your code snippets, it looks like you're linking to an external site for a set of javascript modules ("brush"). Is this right ? What do you actually recommend ?

William Shields said...

There are a few options.

Google Code Prettify:

I went for SyntaxHighlighter simply because I didn't have to host it (as my blog is hosted on blogger rather than a hosted account).

herana said...

Good articles and thanks for sharing! But it's so weird that you blog is in a mess through my new Firefox. I dont think it's my explore problem? Beacuse it's pretty normal when visit other websites.Cool, i am impressed with the views there, it is really a good idea to visit UK to enjoy our holiday!
By Jordan Retro 5

reaearch papers said...

Many institutions limit access to their online information. Making this information available will be an asset to all.

Post a Comment