If you aren't having fun, then don't do it.

Has someone ever said that to you? If you are anything like me then you probably think that this phrase is a load of B.S. And quite frankly it is. There are a lot, and I mean a lot, of jobs in this world that would not be filled if people only did things that they enjoyed. But chances are, if you are reading this then you are a programmer, and as a programmer we have it easier than most. And we should be thankful for this, but at the same time, it doesn't mean that we should hate what we do. On the contrary, I hope you love what you do. And that is what this post is about, falling in love all over again...

I don't know about you, but I feel like I really suck at multitasking. Which is a real shame, because it seems like every job on earth wants us to be a programming equivalent of a quad-core processor. I haven't put up a real post on my blog in a week or so because I have been spending all of my time working on my SimpleDB to Linq provider. It is one of those things that I just fell into, especially considering that I really don't have any current uses for SimpleDB. And even though I have no use for it, I can't stop working on it. I don't really know how many hours I have poured into it, but probably somewhere on the order of 20 hours in the past week or so.

I'm not trying explain my lack of blogging, or even apologize for it, because I love what I am doing. I blog because I love to share knowledge and info with others. And since I started working on the Linq To SimpleDB provider I have loved doing that. And as soon as I am finished with that, I'll get right back to blogging. I just hate to switch back and forth, even right now I am having to force myself to write this blog post while I know that I could be putting time into the other project. So why is this? Why do I have this drive to write something that I don't even really have a use for?

I think it all comes back to learning. I love to learn things, I always have. When I was a kid I wanted to be a marine biologist (because I loved whales and dolphins), and then a paleontologist (because I loved dinosaurs), and then I wanted to be an astronaut (because I loved space, stars, and most importantly, aliens). Each time I jumped to a new interest I would make my parents buy me every book and magazine I could find. I would get them to take me to the library and to museums. I would go through my books and magazines and pore over each and every page until they literally came apart and then I would have to get new ones. Then, sometime around 7th grade I discovered the world of programming. A world where not only could I learn about something, but I could also do something. At that age I wasn't able to go and find a whale or dig up a dinosaur, but I was able to write a program.

So, for me, programming is my grown-up version of wanting to be a marine biologist. I have to love doing it, and for a while there it started to feel a bit like I was losing some of it. Being a professional programmer for about 8 years now had started to take away a little bit of the magic for me, but I have recently been actively fighting back. This is the reason I have started my blog back up, I wanted to recapture the fun in learning. While I have never stopped learning, I had for a while started substituting reading computer books for programming. Reading computer books is interesting but writing code is fun, and it was amazing how quickly I had forgotten that.

Programming for your day job can be fun too, if you are in the right place, but sometimes it feels like book reports in high school; you know that you would have really enjoyed reading that book, if only you didn't have to do it. Work is work though, I enjoy a lot of it, and there are other parts that I don't enjoy so much. Programming and learning in my free time is different, and that is where I think the title of this post applies. When I am working on something in my free time, then I better love it, because my free time is too small to not love what I am doing. If I didn't love blogging, then I wouldn't do it, and if I didn't love programming then I wouldn't do that either. So, in the end, by blogging and programming in my free time I am again doing something that I should have been doing for a long time. Having fun.

And, on a final note:

So, why am I really writing a Linq to SimpleDB provider? Well, I wanted to dive deeper into Linq, and this is just my excuse for doing so. I have learned quite a bit about writing a Linq provider and without this series of posts on Matt Warren's Wayward Weblog I would have been lost (In particular his reusable expression tree visitor came in quite handy). I write e-commerce applications mostly, and so I am more comfortable with domain models than I am with tree traversal. (In college I did have to deal with my fair share of in-order and post-order traversal, along with a bit of depth-first and breadth-first searches, but I haven't had to do a lot of it in recent years) But thanks to Matt's passion for programming (which is clear considering how HUGE his posts were) he has helped me out immensely in my endeavors.

You’re annoying your readers and you’re not making any money

AKA: please stop putting Google ads on your blog.

As many of you may have noticed, this blog is still very new. I have been blogging quite often and I have even got one or two posts on the front page of dotnetkicks (which rules by the way), which has netted me about a thousand page views. After a few hundred page views I decided that I would throw some small Google ads at the end of each post to experiment with what kinds of click through rates that I would get. Well, the results weren’t exactly inspiring.

Adsense 0 Clicks

This is a picture from my Google Adsense account for October 31st and November 1st. A total of 408 impressions with zero clicks. At this rate, if I had one click, I would be getting around a .25% click through rate. On my site, a single click would probably be worth about 5 cents to me. So, lets pretend that I get about 1 click per hundred on my site, which is still only a 1% click through rate, which is either poor or average depending on whose numbers you are looking at. This would turn into about 5 cents per 100 views, or about 50 cents per thousand viewers. So, now let us pretend that I have now blogged for a year and I have pushed my subscriber base to an astronomical 5000 views per day, which for a blog that is a year old probably would be an unreasonable target goal if you did not have any advertising or hyper surrounding your blog's launch. More...