Today marks almost 2 years since I started blogging. Most of my posts are about my adventures with programming. Sometimes I write about conferences I attend in person and online and oftentimes I blog about new products and tools I come across. It has been an exciting 2 years and my blog has grown from 0 to about 75 posts. This is almost a post every 2 weeks, which is not too bad. Admittedly, it could be better.
Before I go on to explain why you should have a blog and why it is important to write regularly please note that I'm nowhere near as established or respected as some other developers in the community. This post will consist, mainly, of my personal thoughts and insights on why I believe that as a developer it is vital that you blog. So, here goes...
1. You should blog for yourself first.
That's right. Your motives shouldn’t be about readership or traffic. Your blog should be your knowledge base that you build as you experience things. Personally, I believe that this is the most compelling reason to get started and that’s how I got into it. It was something that Scott Hanselman said that made a lot of sense at the time. I will paraphrase:
You should use your blog as a knowledge base. Every time you come across a problem and you find a solution, write it down. The next time you come across the same problem, you will have the solution waiting for you in your blog.
If you're faced with a problem that takes you more than 30 minutes to solve or you find a solution that you feel it's cool, blog about it. You don't need to write 1000 words or produce a polished article that will be published in a magazine. Not at first anyway :) Fire up your blog, write about the problem in the introduction and then tell yourself what you did to solve it. You will be thanking yourself later for it. As you write more and more, keep in mind that you should adapt your writing in a way that it will make sense for someone else to read it. If it is a "how to" guide, provide images and explanations on how to achieve a specific task. Eventually, readers will come.
2. Blog for the community
It is very likely that you come across a problem that someone else has stumbled upon. Or you are looking for a guide on how to get started with a framework, library etc. I tend to lookup things on the web all the time. The answers to your problems can be found anywhere. Sometimes it's StackOverflow, sometimes it's MSDN or some other official site and sometimes it's somebody's blog that contains the right answer.
It is amazing how the community supports itself and you can be part of this. For every solution, how-to guide or idea you post, there is someone out there facing the same problem or question. You never know who could be reading your blog! Consequently, you are not only building up your knowledge base, but you are also helping the community.
3. Blog to become a better communicator
You may have noticed that English is not my native language. And even though I've been speaking and writing in English for over 15 years, I still struggle with grammatical and syntactic errors. Writing and publishing on my blog has helped me improved my language skills through practice and repetition. In the end, the more you write the better you will become at it, as long as you make a conscious effort to produce good content. Ensuring your posts meet certain quality standards will force you to be more aware about what you write and publish. You also need to make sure that your posts are reviewed by someone before you publish them. A close friend or relative is fine. They don't need to understand the subject but they can give invaluable feedback on your writing style and highlight sections that are not clear or straightforward. Ultimately, this will have a knock-on effect on other areas as well, such as written and verbal communication and writing documentation (a task that everyone hates, but a worthy task nonetheless).
4. Blog to become a better programmer
There is no better way to learn about something than to try to explain it to someone else. As the problems you deal with and blog about become more complex, you need to adapt your writing to ensure that your readers can understand the full picture. Although this may sound simple at first, it is really hard to get it write without enough practice. As you hold most of the puzzle pieces in your head, it is common to forget leave one or two pieces out when you transfer your thoughts to "the paper". Your goal is to help your readers understand both the problem and the solution within the current context. And as you write and explain how things should work and why the current solution is appropriate, you have to look things up, check your references and compare against the documentation. This whole process benefits you twofold. On one hand you get to learn about a subject by doing in-depth research on it and on the other hand your post gains validity so your readers will "know you mean business".
5. Use the right tools for the job
Getting started with blogging is easy. There are numerous platforms where you can host your blog for free: Blogger, WordPress, Ghost, GitHub pages etc. Take your pick. As a blogger, you will also need some tools/software to help you create interesting and compelling content. I enumerate some of them below:
-Screenshot software: you will need to take lots of screenshots, especially if you are writing "how to's". I like Shotty(free). There are plenty alternatives.
- Web hosting: if you decide to run your own blog, then you need to host it somewhere. I like Azure (it's free)
- Code repository: if you write lots of code, you need somewhere to host it for your reader to download. I like GitHub and you should too. Even Microsoft does :)
- Spell checker: you should not publish anything that hasn't spelled checked.
I use MS Word to spell check and create copies of my posts. I've started using both the online and desktop versions of Hemingway Editor and it rocks!
6. Caveats - what to look for
Blogging is not free
Blogging is actually free and there is nothing stopping you using this model for ever. Who doesn’t like free stuff? However, you need to be aware that there are some restrictions, depending on the platform that you use. For a start, your site's URL will be dictated by your blogging platform, so if you decide to use WordPress then your blog’s URL will most likely look something like this: https://yourname.wordpress.com . It is also highly likely that your name will be taken so you will need to be a bit more inventive. Also, your free account may have size limitations etc. Once you decide that these limitations are not for you then you need to start thinking about costs. In most cases these costs are fairly small but the point is that there are costs associated with blogging. Some of these costs can be:
- Your own domain name: https://yourname.com
- An SSL certificate: you need an SSL certificate for that precious ‘s’ in https. Note that Google’s search results take https into account now, so be aware.
- The hosting provider: free tiers again have limitations, including Azure. If you need to customize your site, then you may have to pay for it.
- Website customization: you may want to buy a template for your site or pay someone to design a bespoke one for you (designer friends come handy in this instance).
- Scalability: if you get lots of readers then your site may start struggling due to the increased traffic. In this case you will need to scale up your site to ensure your readers can still access your content in a timely manner.
Blogging takes time
My average time per post is 2 hours! That's because I have to write it, proof it, validate it, create the screenshots (if any) etc. Quality blogging (if I can claim this) takes a significant amount of time, so make sure you know how much effort is required. It is no surprise that there are so many aborted, deserted blogs out there. I hope, by now, you understand the importance of blogging.
Blogging requires consistency
Many respected bloggers claim the same thing. You need to be consistent. Decide on a timetable and stick to it. Try to post at least once every two weeks if you are starting with and then adopt a more frequent schedule as you become more confident. Consistency will allow you to stand out from the crowd.