Monday, March 26, 2012
I already know what you must be thinking. "Didn't this guy already write a post about building a blog site?"
Well, I'm back at it again, and this time I went all the way though with my toils and I am writing this from my new blog site.
Yes, I have heard of WordPress, Blogger, Typepad. I even have used some of those in the past. I know that out there somewhere, there are some Blogger and Wordpress blog sites that I once maintained that have been abandoned. Yes, I know these blogging sites have a lot of features that will take a long for me to reproduce through coding from scratch. I will probably be missing out on a lot of the SEO goodness those sites provide, although, I think I can reproduce the lion share of it for the most part.
So why would I torture myself like this? Here's some reasons why:
The Hacker Way
In Facebook's recent filing to become public, Mark Zuckerberg wrote a letter to the shareholders about what makes their work environment unique. Called "The Hacker Way", it is a culture that believes "in continuous improvement" which is to say that something can always be done better. He mentioned that they have the saying "Done is better than perfect" painted on there walls to reminding themselves "to keep shipping". In this sense, building this blog is what I am trying to accomplish. If you look at the website now, it is especially far from complete. But I hope to keep improving it, and adding more features so that the site continuously evolves.
Another thing he stressed about this work culture is that "The Hacker Way is inherently hands on". I read books, I read blogs, I listen to podcasts and watch screencasts, but nothing sinks into my thick noggin like actually coding it, whatever it is, with my own hands. Some things you implement work, and other things do not. You fix the bugs, and improve the code, and clean it up, and in the process you gain knowledge that you would have never gained from reading any book or post.
The Scientific Method
The Scientific Method is the basic foundation of learning that has been in use for thousands of years but it essentially says that if you want answer a question, you should make observations, and do experiments. Usually when I'm at work, I don't have time to do experiments, unless I can officially call the experiment a POC and it gets funding. The point is, this blog is a chance for me to experiment with different technologies that in a normal work day, I wouldn't have a chance to work with. It's also a chance to be able to make an knowledgeable observation on whether the technology or methodology is cool worthy or not. I want to use this site as a platform for trying out some cutting edge technologies if it makes sense and I have the time. Then the cool thing is, I will be able to write a post about my finding in this series.
Gaah! Why Can't I ... ?
For the most part, I have had no qualms with the blogging tools I have used in the past. They pretty much did everything I wanted them to do. It's that one percent of stuff that came up where I thought, geez, I could do this pretty easily, why can't do it in this tool?
So I am building this site with all the things I want in mind, and if I there is something I need to add, and I can't figure out how to do it, then I have no one to blame but myself.
It's not the most slick website in the world, and there are other blog sites that will put this one to shame, but I am still pretty proud of this baby. It's pretty satisfying to use something you built yourself.
Marketing Your Brand
I've had the privilege of working on some pretty prominent websites, and they come in pretty handy when you need to refer to prior work experience, but with this website, not only can I say, "I did the whole thing myself". I could show them the source code at GitHub. There are a lot things that go into hiring a good programmer, and there are a lot of good programmers out there, so being able to show tangible work can only help you in the hiring process.
The Geek Inside
Lastly, because I'm a geek! I like writing code and I'm actually enjoying building this application. That's what nerds do when they are not writing code. They write code!
So, along with my other posts that I will be writing, I am going to have an ongoing series on my ups and downs with maintaining this blog. I plan to write about the different technologies and best practices in use with the site and give code samples. As I refactor the site and make changes, I plan to write about that as well. It will be a blog about a blog.
Remember you can see all the code yourself at GitHub.