Why Start a Blog?

Starting a blog is a little uncomfortable. I'm not quite sure what mode I should be in when starting to write a blog post. Is this informal like an email or is it more like an essay? Am I supposed to follow the 5 paragraph essay format? (probably not)

I think the hardest part about starting a blog is writing (duh). My plan is to write stream of consciousness style and not worry too much about editing. If I let the editor take over I might not get though the first paragraph. Once I have a couple posts I can go back and try to identify areas of my writing that need work. I haven't tried to write an article in many years so this feels a bit uncomfortable.

I have several goals for this blog.

Improve my writing

Since graduating from college I've done shockingly little writing that wasn't in an email or chat program. For a guy that spends >8 hours on a keyboard every day I don't spend much time writing to communicate my ideas. Writing for a public audience is much different from writing an email to the same co-workers you talk to every day.

I spend a lot of time making up stories for my kids or for a dungeons and dragons group. Sometimes I think I might want to write down some of those stories but my internal self critic tells me I'm not a very good writer. I haven't tried to write for the sake of writing in years and, to be honest, it was never my favorite subject in school. I know comma and semicolon, but they were never my friends. Maybe it's time to change that.

Become more comfortable putting my work in the public eye

Writing for a blog is a bit like public speaking. It's not comfortable. At least not at first. If I let that feeling win and continue keeping my thoughts to myself nothing bad would happen but nothing good will happen either.

Share what I know

I've been programming computers for 20 years now most of it professionally. I've used a lot of different technologies and seen a lot of trends come and go. I have seen a lot of things that work and a lot of things that really don't. I might have some insights worth sharing.

I've recently discovered strongly typed functional programming languages like F#, OCaml, Rust, Haskell and it's like a light went off in my head. This is how we should be making software. The industry focus on easy to learn tools and good enough to ship is causing more and more software to be built on flimsy foundations. Type driven domain modeling and avoiding OO spaghetti can build a prototype as fast or faster than the industry standard and will be an order of magnitude more maintainable.

Be part of a community

With the proliferation of new programming languages in the last few years I've discovered interesting communities surrounding new languages. It's hard to feel like part of a community for huge language like C#, Java, JavaScript where your contribution is a drop in the ocean of content. In a smaller community you can make meaningful contributions much more easily.