Saturday, February 21, 2009

Lessons Learned in One Year of Technical Blogging

My first post on my Atalasoft blog was almost exactly one year ago (Feb 20th, 2008) and since then I’ve written over a post a week. It's been an interesting year in that, while I've had many blogs in the past, they had never had never gotten the kind of attention that my this has. I feel that big part of this relative success is in that I've actively tried to supply interesting content for a particular audience, instead of just writing about whichever projects or ideas were currently floating around in my head (that’s what this blog is for). In this post I'm going to go over some my successes and failures in an attempt to discover what has worked and what hasn't.


Top 5 Features Your Cellphone Should Already Have (February 20th, 2008)

This was my first attempt to write about something that I thought people would care about. I used the "Top X things" blogging pattern and tried to include a catchy title. By almost any measure, post was an overall failure. It sank like a brick on all of the aggregator websites I submitted it to and, in the end, no one outside my company read it.

Why didn't they care? In retrospect I would say three reasons:

  1. It was completely off topic. I work for a software company. No one had any reason to care about my opinions on cell phone features.
  2. It followed a pattern too closely. Patters are a good starting point but without your own style you can't stand out from the background noise.
  3. I didn't link to anyone else. This was a lesson I’m glad I learned early on. No man is an island, especially in the blogosphere.

At the same time, in this post were the roots of later success:

  1. I started blogging and found that I liked it for it’s own sake. The first step is always the hardest.
  2. I applied patterns that I inferred from other successful posts on the web.
  3. I started to develop my own style.


    Clojure Impressions (March 21st, 2008)

    I owe much of my passion in blogging to Rich Hickey and his Clojure presentation in Northampton, MA. This talk really brought home the power of functional programming, which I has previously considered to be for academic use only. I was also shocked in that I suddenly realized there was a whole other aspect to programming that I knew very little about: the properties of a language which make it more applicable to solving specific types of problems. Eventually this lead me to spend much more time reading about both functional and object oriented programming.

    There was also much success to be found in the content of the post itself as it was my first reaching over 1000 page views and it had my first comment from someone other than a coworker. Both of these things are of course due to me linking to, and being linked to from, other bloggers who went to the same event.

    How did this effect my style of blogging?

    1. I attained 1OI ignorance (I knew that I didn’t know) on the topic of the quantifiable properties of programming languages.
    2. I became much more interested in functional programming which in turn lead me to Microsoft’s new language: F#.
    3. I learned that success in blogging is heavily dependent on reciprocal linking.


    .NET Memory Management Series: Part 1, Part 2, Part 3, Part 4, and Part 5 (April 3rd – August 20th, 2008)

    This series changed significantly how I saw the utility of blogging. Some of my previous tutorial blogs had seen moderate success (my post on using NGen was my first post with over 2000 visitors), however this entire series of posts were all broadly viewed, some with over 5000 visits. This was also the first time I was linked to by a news source outside of the blogosphere, Channel 9. In this (still very moderate) success, I realized that posting well researched and useful tutorials about often misunderstood aspects of .NET (or any complex technology) could build a significant amount of recurrent readership.

    After this, I wrote several more tutorial style posts. I found that, while they were all well liked and received a significant number of hits, they took a great deal of time to research. I was always very careful to be sure I was posting correct information (or at least to specify unknowns), but often this research would take days. I had similarly big expectations for my newer Process in .NET series, but they are all on hold for now. Unfortunately, now after the economy crashed hard and I am feeling more pressure at work, I no longer find myself with time for these kinds of in-depth and well researched posts.

    What did I learn from this?

    1. Readers appreciate well researched information on useful but not well documented topics.
    2. Relating blogs by putting them in a series can build readership momentum.
    3. Well researched information takes large amounts of time to generate. However, the effort can be worth it in that it builds expertise.


    Why Are Our Programs Still Represented By Flat Files? (Jun 06, 2008)

    With well over 11000 visitors, this post has been by far my most successful. I was particularly proud that it, and the community discussion it caused, was presented afterward in an InfoQ news feed article by Sadek Drobi (a site which I respect greatly for it’s strict professionalism). This was the first time one of my posts was taken seriously by programming language intellectuals and it gave me confidence in future writings on the topic.

    The topic of this post was large inspired by playing with NDepend and it’s visualizations of .NET classes but also had much to do with much of the reading I had been doing after Rich Hickey’s Clojure presentation. I have since written several other posts along the same vein, my most successful of which was Why OO may not suck, or, Take a ride on the Falsus Omnibus. With just over 7000 hits, the majority of which were from programming reddit, it has been my most successful post in recent history.

    I learned quite a bit from these posts:

    1. It can be good to take a strong stance in order to facilitate discussion, even if you don't feel quite that strongly about the topic.
    2. Don't be afraid to challenge difficult ideas or big names as everyone else out there is just a person like you. You can get a lot of credit for pointing out the elephant in the room.
    3. The most topics which are the most fun to write about are usually also the most controversial. Don't hesitate to go for it if you feel you have something interesting to say.


    Additional Lessons Learned Outside of Specific Posts

    1. RSS Readership can drop very fast if you stop posting or change topics. I’ve seen two examples of this: The first was in my post-august slump in which I only posted a couple of times in one month. The second was in my move from mainly .NET tutorial to language theory posts. I still try to write an occasional tutorial post but I feel like whenever I post an opinion piece all of the tutorial subscribes immediately ditch my feed.
    2. Coming from this, readers can be largely represented by (somewhat overlapping) classes based on the type of material they are interested in reading. If you do not provide enough material your reader is interested in, they will look elsewhere.
    3. Language can present both a barrier to entry for some and a red carpet for others. Using difficult vocabulary or jargon will turn off people who don’t understand enough of it. However, most intellectuals feel at home with this kind of language and so won’t take you seriously if you don’t use it.
    4. Blogging is fun for it’s own sake. Although, having a large audience makes it more exciting.


    Conclusion

    In retrospect, much of what I’ve learned seems obvious now. However, just starting wasn't long enough ago that I can’t remember feeling that I was jumping into a big unknown. All I knew at that time was what I could infer from reading other successful blogger’s posts. That also is not to say that I don’t have a long way to go in terms of skill and general knowledge. I’ve learned much from both my successes and my failures in the past year but I know I still have a long way to go.

    No comments: