Lately, I’ve been in a bit of a self-reflective mode. So, this blog post is going to be a little different than normal. Usually, I try to post about very technical / programming things. However, due to some things at work that I probably shouldn’t air in public, I’ve started to think about what I put my energy into at home and at work.
Like many software engineers, I really, really like writing software. It doesn’t matter what the software does. So long as it solves a problem, I’m happy to work on it. This also means that my hobby is (drum roll please) -- writing software. So, at work, I write software. I come home and I write software. It’s part of loving the creative process and having a bit of a one-track mind. It’s part of being compelled to learn something new and fulfill the ever-so-eternal quest to improve on existing processes.
If that describes you, I would consider you a compulsive programmer. I say this with the most positive meaning of the word and with all due respect. Your compulsion is what probably makes you good at your job. After all, remember, I’m talking about myself, too. As a side, here’s a great example of “one of us.”
If you can’t really relate, you probably already know what I’m going to say in the rest of this post. I would consider you a less-than-compulsive programmer. You are no less of a programmer -- I’m sure you’re very good at your job, too. You are just not driven to constantly run in the same mode, all of the time.
So, let’s say your hobby is writing software. Cool! Now, let’s say you get a job writing software. In essence, you’ve turned your hobby into a career that you love. Cool! You are one of the privileged few whose passion is also their career. People all over the world long for what you have. There are millions and millions of people that go to work at a j-o-b. They do their job with diligence, but it doesn’t cause a spark to go off in their soul. Some are even stuck in a soul-killing j-o-b that they should really find a way out of, altogether. You, however, get to go to work. You get to work on cool and interesting things. You get to create!
Now, imagine someone told you: “you’re not allowed to write software at home any more.” The only time you get to commit to your passion is from 8am through 5pm. That’s it. Would you still love your job? Would you still be just as passionate about what you do during the day, as you were before?
That’s an extreme example, of course, but think about it for a minute. I found myself thinking in those terms, recently. Really, the question boiled down to: if I could do anything else during my free time, that wasn’t computer-related, what would it be? The answer I came up with was, “I don’t know.”
Right now, those less-than-compulsive programmers that are reading this should probably take a moment and pick your jaw up off of the floor. To you, that was a ludicrous answer to such a simple question. Alternatively, if you count yourself amongst the compulsive programmers, you might come to the same conclusion I did: I just don’t do much other than learn, read, use, and write software.
Of course, I play with the kids, do yard work, take care of the house, and all of the other “normal” things you might expect, but when I’ve got really free time that isn’t being used for anything else, I levitate towards the computer. It’s just so fun to sit down and create something. Imagine, though, if that was taken away.
In case you’re wondering, I have not been told that I can’t write software at home. That was just an example to get you thinking. The principle remains, though: it seems that my life is not as well rounded as it could be. My life needs to be defined by more than software development.
I was introduced to computers during my formative years. I saw them as a challenge, at first. Like many, I was intrigued by the variety of things they could do and thrilled at how I could make them do things most people couldn’t -- by programming them. I went to college to learn more about computers. I found jobs related to computers. I was and still am a computer geek. Looking back, I’ve been on a single track for quite some time.
Ultimately, the problem is this: because I have spent so much time doing this one thing -- and it’s all I do, I fear there is a strong possibility that I will get burned out on software development. Then, not only would I have lost my passion; I would be left with nothing afterwards.
When you’re looking at starting a new programming project, one of the first things you should ask yourself is: does the problem warrant a software solution? Perhaps the problem could be solved in another way (a change of process, for example). Maybe it doesn’t require a new piece of software after all. However, if you think a new project is needed, then you can figure out what that new piece of software will look like.
I’ve come to the personal conclusion that this problem does require a solution. What does the solution look like? I’m not entirely sure. For now, I’m going to try to solve it with a new hobby. Is that the whole solution? I’m not sure, but I’m going to try it out. I’ll prototype something and see how it goes.
What does your solution look like? Maybe you’re already solving this problem. Either way, I would love to hear your ideas. I don’t usually request comments, but if you would leave your feedback here or tweet me (@centrolutions or #HobbiesForDevs) I would really like to hear your ideas.
If you’re a compulsive programmer and find yourself in the same boat I did, I encourage you to think about what life would look like without software development. What would you do? Do you see a burnout coming? Take a moment to examine yourself. I think you’ll be better for it.