I've been doing a lot of soul-searching. That's no surprise. You've probably figured out by now that I'm a soul-searching kind of guy.
What do I really want to do for a living? I've been so unhappy. How can I be happy, in particular happy in my work?
I've been struggling with this question for years. I've already written here about my (apparently successful) transition from GUI to embedded development. Well, it solved some problems (I'm able to please my embedded clients in a way I never seemed to be able to please my GUI clients), but I'm still not happy.
I wrote a few months ago about how maybe I really should go back to GUI. I've toyed with the idea of being a professional writer. In my more outrageous fanstasies, even a musician or a composer. From time to time I think of going to graduate school, maybe even going back into physics.
But lately I've been thinking that maybe I can find happiness doing just what I'm doing now.
I was talking to my new psychiatrist last week. We've mostly been talking about my work. He said, "You know, lots of people have crap jobs, but they're able to find happiness in other ways". I told him about my love for the piano, and how I'm taking lessons now. My p-doc thought the piano lessons were a great idea, and strongly encouraged them.
Here's the problem I have: I'm not exactly unhappy with my work. When I'm able to work productively, I actually enjoy it just fine. The problem I have is that I spend so much time not working at all, feeling like I ought to be working, but filled with despair at the prospect of doing so. Many days go by that I don't even crack open my development environment.
Instead, I post to Advogato, Kuro5hin, Slashdot, mailing lists and the Usenet, I write articles, I analyze my web server statistics. I have found all manner of things to do while sitting at my computer which keep me occupied but don't contribute to the bottom line.
What's crazy is that when I can get into my work, I actually really enjoy it, and I'm very productive. When I merely try to work, I find it incredibly boring and frustrating, and the smallest problems completely stymie me.
But when I am in the groove, I am unstoppable. It's not that the code gets easier, or that I have no problems, but that I have no problem making the needed effort. Whereas I would otherwise throw up my hands and say "I can't do this", instead I say, "Well that didn't work, I'll try this instead". I'm able to get by at all because I'm so productive on the days when I can be productive at all.
What is ironic is that, when I am able to work, I am a far better programmer than I was back in the old days when I was a far more productive, but far less skilled programmer. I wasn't so good, say, ten years ago, but I really did enjoy it. For most things, it doesn't matter if there's a few bugs, if you're able to ship the product on time. Now my code is far more reliable, performant and maintainable than it ever used to be - but it is always late, and I spend most of my time at my computer in a state of hopeless despair.
I tell Bonita that I do all these other things because they're contributing to my community, socially useful, or just because I enjoy them, but you know, I really don't enjoy the experience that much. In the end I just feel tired and guilty.
But day before yesterday I spent the morning saying to myself, I want to get this one thing working in my code. I'm just going to focus on this one thing. When I went to my office, I did some of my busywork, like checking my mail, but soon set into productive work. And worked late into the night. I enjoyed it, I really did.
I didn't figure out the problem with my code, but somehow that didn't matter much, I knew I would eventually. What mattered is I spent an evening feeling good about what I was doing, able to focus completely on the work which I do to provide for myself.
What was different? Why were things so different two days ago than on so many other days? (Yesterday I took the day off because I have a bad cold, and expect to take the rest of today off too.) Over the years I've developed all kinds of little strategies to help me get started at my work, only to find that none of them really help when I'm faced with such despair.
The only difference I can find is that I just decided I was going to focus effectively on my work. Everything else followed from that.
That's when I started thinking maybe I'm doing the right thing for myself after all. I've contemplated so many ways to go chasing after happiness - but as Buckaroo Bonzai said, "Wherever you go to run away from your troubles, there you are." Maybe I can find happiness right where I am.
There are many advantages to programming, even being a software consultant. I can't pretend that any of the alternatives I imagine would earn as much money. As a consultant, working out of my home, I can live anywhere I want, and have been living in the most out-of-the-way places since I've been consulting.
I truly love to write, but I have doubts that I would still love it if it were the way I was making my living. I also write very obsessively - it would be very hard for me to write in any kind of balanced, measured way. I fear that if I were to ever write a book I would either starve to death or die of exhaustion.
I have had a plan, throughout the entire economic downturn, that I had been on the verge of abandoning now that things seem to be getting better. My plan was that I would do whatever it took to get by somehow, to provide for myself and for Bonita, even if I didn't like my work - but I would get by by writing code.
I felt that if I could just keep body and soul together for a few years, and (importantly) keep my skills current, then when the recovery inevitably happened, I would be in a very good position to do very well for myself. I could steadily raise my consulting rates, and get enough work not just to get by, but to pay off my debts, and save up money so that if the economy collapsed again I would be prepared, and never have to suffer again what I have these last few years.
But the last few months, since things have been starting to get better for most people, I've been increasingly sick of my work, and ready to abandon it.
I asked Bonita why I should dislike it so, when I used to find great joy in programming. She seems to find it unsurprising - my transition to embedded development was pretty damn hard, with not just one but two projects taking far longer than expected (or bid for). We spent quite a few months doubting for our economic survival, with both of us feeling quite desperate all the time. Earlier, before I started the embedded work, I was able to get by OK but I hated the work I was doing, writing a specialized financial database. Frankly I resented doing it at all, and got out of it at the first opportunity.
Bonita seems to think it should make a lot of sense that I should feel despair when I contemplate my work. She also points out that as long as she's known me, I've never spent much of my free time doing anything but hanging out on my computer, so I am at my keyboard for both work and play. She thinks that's very unhealthy.
I think it is already helping that I am finding other ways to enjoy myself, like my music. Ways that don't involve computers. But that can't be all there is, I won't be able to continue to tolerate programming unless I can find some joy in it too.
Maybe I can find it again.
Perhaps not at all coincidentally, I'm going to be forty years old in a week. That's very old for a working coder. Bonita thinks I'm having a midlife crisis.
Yesterday I ordered Mihaly Csikszentmihalyi's book Flow, which I first heard about after someone mentioned it in their diary here. What Czikszentmihalyi calls "flow" is precisely the experience of being "in the groove" that makes my coding enjoyable, during the rare times it is.
I've been strangely hesitant to order it. I felt it would be helpful to read it, but I've read all manner of books - technical books, self-help books, books on productivity and organization - and worried it would be just another book full of good advice that somehow did not address whatever problem I was really having.
I really wanted to find a copy in a brick-and-mortar bookstore that I could leaf through before purchasing, but I never could find one. Finally yesterday I decided it would be worth giving it a try.
Any advice you may have for me is greatly appreciated. My email is crawford@goingware.com
