I wrote my first blog post in 2004. It was a fascinating experience, typing into Blogger's online editor for about an hour, followed by a quick proof read and submit. Lo! my little piece of writing was instantly online for everyone to read. It was awesome and it couldn't have been simpler.
I had just written a blog post describing my thoughts on polymorphism. The next day I was even more delighted when I realized that some people had actually it. A few of them even left comments; ranging from thank you to sharing their own insights on polymorphism. But it wasn't just the excitement or the warm fuzzy feeling of having shared something I knew with other people - I actually learned a lot by this simple act of writing.
Writing about polymorphism helped me organize my own thoughts, and responding to comments helped me refine them. Eventually my blog helped me engage with the wider developer community and at times it also led to work. I had just discovered a fun and engaging way to learn, share, and improve my career prospects.
I have always wished more programmers would take to blogging. I have tried my bit by coaxing colleagues and even students when I have had a chance to interact with them. I really hope this article serves as a push for those on the threshold of blogging and gives material for serious consideration to those who have never considered it. In the spirit of listicles, I'll share four basic reasons why every programmer should write a blog.
Engage with the wider developer community
One of the founding goals of the Internet was to connect academicians and researchers, worldwide. Before the Internet the only way academicians and journalists could access each other's ideas, was by reading print copies of scholarly journals and they communicated using what we now lovingly call snail mail, which took days or often weeks to arrive. Yes, Gasp! The Internet gave them a quicker way to communicate and share their research. It enabled a researcher in Tokyo to share her results with a professor in USA with a few keystrokes and the click of a button. Or it helped a student in Germany to publish her thoughts on parallel programming and invite comments from her peers from all over the world. It allowed researchers in Berlin, San Fransisco and Chennai to collaborate on their research. It seemed like the world had suddenly shrunk.
If the Internet shrunk the world, blogging compressed it even more. In the early days of the Internet, publishing was about putting documents behind an FTP server and notifying people that you have something to share. The discussion that followed was mostly private or sometimes public on listservers. The world wide web took made it easier for people to share web pages and blogging took it a step further with feeds, and comments. It allowed people to easily follow each other's writing and comment right there as well.
Besides sharing technical workarounds, tutorials, and thoughts with each other, blogging has also helped developers make friends in distant countries, learn about their culture as well as how the software industry functions there. Many have found it a wonderful way to extend their social life beyond the people they meet in the real world.
Clarify your thinking
When we write something for everyone to see on the Internet, in a certain sense, we are putting up a part of ourselves. Just like we don't want to appear sloppy and ragged in the real world, we don't want our blog to be sloppy either. We want it to be clear, lucid, well thought, and well structured. After all a blog is an online extension of the blogger.
When I write a blog post, I try to ensure that the content is properly organized. I also put in effort to think of various pros and cons in relation to my assertions to make sure there are no holes in my reasoning. The very process of writing good content forces me to structure my own understanding of the topic, it helps me question my assumptions and it makes me think of the questions my readers might have. Blogging has proved to be a great exercise in refining my own understanding of a concept or topic. I have often been pleasantly surprised by how much I learned and how naive I earlier was about the topic I had just written.
Learn by teaching
It is often said that teaching is one of the best ways of learning. However, it can be rather hard to find interested students, when what you are teaching is small and random bits of knowledge or ideas. But interestingly you don't need to look for students if you blog. If you share something that's useful, then those who might benefit from it will automatically find it. Search engines will serve your bog post (sometimes on a platter) to those who look for for it. Isn't this wonderful? You focus on sharing (and learning in the process) what we can and when you can. People will find it when they need to. Everyone benefits!
A secondary advantage of blogging is that, over time, it will become your knowledge repository. If you need to lookup a problem you solved a few years, all you need to do is search your blog.
Improve your job prospects
I know several people (myself included) who have been offered jobs or freelance projects through their blogs. It is a known fact in HR circles that resumes don't tell much about a candidate.
Nowadays resumes only serve as very basic filters besides providing a context for questions in the actual interview. A blog on the other hand is not only an extended resume, but much more than that. It helps a potential employer see beyond what a resume shows. A blog shows your thought process, your organization skills, your humanness, how you respond to others, your passion and your pro-activeness.
Many good recruiters and HR folks search for blogs of potential candidates. Maintaining a good blog with useful posts will undoubtedly be a professional asset.
I hope this blog post inspires you to create a blog if you haven't done so already or cultivate a regular practice if you have a blog but don't write regularly. Any programmer who blogs regularly will confirm that blogging will indeed help you engage with the wider developer community, clarify your thinking, learn by teaching and improve your job prospects.