Reason #1: For the money
There are many websites available with answers to various questions, Stackoverflow is a great example of that. However, you will be amazed to see how much traffic and how helpful a detailed blog post can be.
This blog with only 4000 views per month makes around 20 EUR per month. Not much but it more than pays for the hosting.
Reason #2: Helps to better learn a topic
When you write down a technical blog post, the act of thinking about every little detail and having to write it down forces you to be accurate. By doing this you will be able to discover your blind spots and reinforce your knowledge about the topic that you are writing. This is a tool that is useful if you are a manager too. If you want to make sure an employee has really mastered a specific topic, you can ask him to draft documentation around that topic.
Reason #3: Note taking
I would argue it is better than note taking. There are many note application nowadays which come inbuilt with every operating system and many apps. Personally I switch between PC and Mac, and having a central knowledge base helps me to keep information about technical hurdles that I have previously conquered but have now forgotten. For example I keep coming to my How To: Python Sort Custom Comparator every time I have to write code to compare a custom object.
Reason #4: It is a way to express yourself
It is a way to express and can be done privately if you want to. Privately does not mean without any views. You can still submit your website to Google or Bing and have them index your blog. You will be astonished at the queries search for.
Reason #5: It is catharthic
Blogging can provide psychological relief. You will find that sometimes writing about your painful experiences can be relaxing. It has other psychological benefits as well, it can better help you understand your emotions too, just like software.
Reason #6: For your resume
When you blog, you have something to show recruiters or potential customers. You can show that you have a good understand of a particular subject or if you are looking for a technical writer position then this would serve as a portfolio
Reason #7: To get customers for your product
If you have a product then you should definitely have a blog page. VEED.io recently in a talk showed that they got the majority of their customers by writing blog posts around keywords that customers are searching on Google. They make more than 6 million annual revenue using this method. There is a video online on the microconf Youtube channel that you should search for if you are interested.
There are probably many more reasons to blog but these are the ones that came to mind so far. I will update them if I can think of any new one but if you have any other reasons feel free to comment below 😉