Sometimes others want to express a (non trivial) idea to someone else, and your writing may be the best thing they know that gets the message across. Then they can send it.
Sometimes (or rather, always) your idea and writing is not the best or final thought you have on the subject. But it is not until someone has read and commented/replied (thoughtfully) that you understand what the next refinement is.
And then there is serendipity, just putting it out there to see what might (or might not) come of it.
Plus maybe one finds it motivating to have it actually accessible for others. As a clear goal and a standard to hold each piece to.
1) Main reason is that if I've spent time working something out, I can save other people the time doing that, by writing down the details in a searchable place.
2) If I want to explain something to someone, it's easy if I can just point them to a blog I've already written
3) (bit of an unintended consequence) It helped get me my last two jobs :D Being able to point to a long history of technical blog posting was relevant when I got a job in advocacy as that's one of the necessary skills.
1) Blog for yourself and no-one else. Write things up because you find them interesting or you learned something. Trying to second-guess things like what will be popular or get engagement is not a fun time for what is likely to be a hobby.
2) Keep it low maintenance and simple publishing process. I use Github pages and Jekyll, but other similar options are available.
3) If you're doing technical content, try to have practical examples. I've had multiple times where I thought I knew how something worked and, in the process of writing a blog with practical examples, found out I was wrong about how it worked!