Why does every developer need to have a blog

Ngụy Đức Thuận (NDT), team leader of Safewhere team, has a few tips about how to start a developer blog for software development. We are happy to cross-post it.

Because this post is about the HOW, you can simply head to Scott Hanselman for reasons about why you should have a blog.

After knowing why you may want to have a blog, it’s time to discuss about where to host a blog and what and when to write blog posts.

Where to host my blog

As a developer, I would recommend using Github pages because of the following reasons:

  • It means you write a post by adding a new Markdown file to your Git repository, add content and commit -> push exactly the same way you do with code.
  • Because you want to take part in Github which is where virtually all good open sources projects are hosted now, right?
  • It’s static pages which render very fast. You want your blog to be rendered very fast everywhere, right?
  • Github handles all the server thingies such as CDN, high availability, backup for you, security etc. for you.
  • Https is supported.
  • Custom domain is supported.
  • Use Cloudflare to setup Https for your custom domain.
  • All the above are free!

Note that for getting started, you can use Github’s in-browser editor or Visual Studio Code to write your blog posts. As a side note, you don’t need to setup the whole Jekyll thingies on your local machine at all.

What to write

Let meet Sam who is a junior developer. Sam wants to start a blog but he might find many challenges to write his first few blog posts:

  • As a junior, Sam doesn’t have much experience about many things that he can write about.
  • For everything that Sam knows, someone else already wrote about it.
  • Sam is afraid of making mistakes or his post might be not good enough.
  • When English is not his native language, Sam’s worried that others might laugh at his writing skill.
  • An ingenious excuse: I don’t have time.

So what can Sam do? My suggestions are:

  • Unless Sam is totally useless at his job which is obviously not the case, he must learn something from his daily tasks. It may be something he learned from implementing a new small feature or fixing a bug or a clever tip to write a good unit test. All those things, no matter how small Sam thinks they are, are worth a blog post.
  • Even if someone else already wrote about it, who cares? As long as Sam writes his post in his own words, it is good enough. A post doesn’t have to be long or about something important. Even the legendary Ayende sometimes wrote a two-line post.
  • Making mistakes is a part of the learning process. I have no doubt that many good bloggers now went through the junior phase before and their first couple of posts weren’t as good as what you see from them today.
  • Yep, it might be true that Sam’s writing skill is not good yet. On the other hand, Sam can’t improve his writing skill without practicing it. Therefore, I would suggest Sam starting writing now and asking for feedback from his peers. At the same time, he can easily find plenty of good resources about how to write a good blog post on the internet. The most important point is to start.
  • Don’t have time? I hardly believe that a junior developer is busier than all the popular bloggers out there. It’s his life and his career and thus his choice.

When to write

The best time to write a blog post is when the following conditions are met:

  • When Sam has a fresh idea is his mind and before it fades away. Sam many times had ideas about blog posts before that he wanted to write and totally threw them away the day after.
  • When Sam has time to think about the idea well enough.
  • When Sam has time to write!
  • When Sam has polished his post and thus it is ready to publish now. Yep, the fact that he doesn’t need to have a perfect post doesn’t mean he can publish a crappy post.

Unfortunately, you can easily find that all the bullets above seem conflict to each other. One way which works for me is:

  • When I have an idea, I write it down immediately to either an unpublished post or OneNote. For instance, when I fix a subtle bug which causes by an interesting issue, I can take quick note about it. Making sure it is synced to a source control or a cloud service is important because that helps you access update the idea from anywhere.
  • Think more about how I want to express it. Good time is during lunch or when I’m driving home.
  • For every new detail I think I can add to the post, I write it down ASAP.
  • In a weekend or at a late night, I can spend a couple of hours to turn all the quick notes into a good blog post.

As with almost everything else, getting started is the hardest step. Writing the first couple of posts will also be hard. However, after I went through those steps, I would find blogging a lot easier.

Letting the world know

Now that Sam has published his first post, he wants to let the world know about it. In addition to all the SEO stuff, he can send it to his colleagues and tweet about it. As long as he spends decent efforts on his blog, eventually he will get more and more readers. Btw, in order to help him improve his writing skill, I have a follow up post about how to write a good blog post.

Hope this help 🙂


Images used in this blog post are provided by: