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.

Loved the article? Hated it? Didn’t even read it?

We’d love to hear from you.

Reach Out

Comments (3)

  1. I’m glad to know that I’m not the only person who hates multitasking. When there are several big-somethings going on at once I get frantic. I feel very much in control if I have one big-something going on at a time, even with very tight deadlines. It makes me feel like I have a better grip on the details.

  2. Yeah, I am okay at multitasking when I can change tasks from day to day. But when something comes up in the middle of my day and I have to switch gears, it is so hard for me to come back to what I was originally doing. There is something about that context shift that just throws me off. Having multiple large projects going on at one time though is just impossible.

  3. hi justin,

    good luck with LINQ provider for SDB. just out of my head I can see so many complications to overcome, I’m not even sure if it’s possible to come up with some decent LINQ abstraction on top of SDB. please, keep us posted, I’m interested to see where this goes.

Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

More Insights

View All