In the Star Wars universe, Jedi in training would be tasked with building their own lightsaber. This was done because Jedi could personalize it to their liking and make it comfortable to use when fighting an enemy. A while back Rob Conery suggested that writing your own blog engine is equivalent to a Jedi building their own lightsaber. I think it’s a great idea for many reasons.
Developers have Shiny Object Syndrome
Whenever we read about a cool new piece of tech, we are anxious to do something to try it out. We can do all the prototyping and skunkworks code that we want, but it really doesn’t matter until you actually have a “real” usage scenario. Well a blog is personal and as close as you can get to one of those scenarios. Your blog becomes your production environment to try out all these ideas and implementations for technologies that you’re learning about.
As an example, you can’t convert your company’s underlying data store to MongoDB just because it looks cool, but you can sure do that with your blog. It only affects you if something gets screwed up, but hopefully you can mitigate that by learning how to do backups.
Developers get the full-stack experience
Hopefully if you’re running your own blog, you are running it on some sort of VPS. This will let you understand what it means to host your software. You learn what it means to be a sysadmin and hosting software that you wrote, as well as what it takes to keep it up and running. This comes in handy during your development day job because when you learn how Apache queues requests, you can derive how to make your software run faster and you have more visibility into potential pain points.
If you’re stuck with a shared host, all is not lost. You at least can explore configuration options of your stack. How do you implement per-client-subdomains in your stack? You can try it out.
Your blog becomes your resume
As Rob mentioned in his post, your blog becomes your resume. You can throw the source code for your blog up on Github/Google Code/Codeplex and people can look at your work.
You can explore new topics, implement them in your blog software, and then blog about it.
Flexible data model
The best part of it is that you can control your data. I control the tables and columns in my database so while my blog is written in Rails today I can write it in tomorrow’s latest Erlang web framework.
Running with it
By blog is currently running my own engine that I intend to use to prove new tech that I’m looking at, hence the repo name: Proving Ground. It’s just a Rails 3 app for now, but I might get crazy and throw in some Node.js or move my data store to Mongo for the only reason: because I can.