I've tried lots of different tactics to improve my efficiency and my abysmal estimation capabilities. In large measure, they have all been what I consider to be unsuccessful. In fact, I 'failed' so many times and in some many ways that I began to consider those failures as an accurate estimation of myself. That caused lots of trouble...
So once again, I feel bad that I recently let my clients down. I was out of contact for days. I missed deadlines. I failed to get things working. And it made everyone involved stressed out and upset - including me. It's torture, really. Why would I want to keep doing such a horrible thing to myself? I must be insane!
...
Yeah... I am. Ha-ha!
In addition, I must be some kind of masochist because I'm climbing right back up on that horse that has already thrown me hundreds of times!
It's easy for me to think that I've failed as a programmer. But that begs the question: what is a success? To review, I feel like I have overcome the very unhealthy habit of directly linking my programming output to my self-worth. That's not true, and I actually believe it at this point. That's some major progress. I've overcome some of my phobias (email, phone ringing, etc) to the point where I no longer feel utterly incapacitated by the technology that I love. I sometimes still have bad days in this area, which is why I sometimes 'drop off the grid'. This is an on-going struggle for me.
The length of my 'crashes' has shortened massively. A few years ago I'd go down hard for two or three weeks. I've improved that to 2-3 days and I feel pretty proud of that progress. When I compare my output and mental state to me ten-years-ago, it's easy to want to feel despairing. I'm clearly still broken, but as Ed once told me, "Even broken crayons can still color a picture." I think about that saying often - especially when I'm pulling out of a mini-crash.
But enough with the history and ramblings...
In my recent ponderings, I have tried very hard to separate the emotional trauma I put myself through when I fail to hit a goal from the idea - the pure concept of self - that being a programmer is for me. And I've had some new ideas that I'm going to work on. Here is what I've come up with:
- I want to feel like a total master of my domain; I need to learn new tech/languages.
- I want to do some programming every day, even if it's non-critical or a small thing.
- I want to create something cool every week - something I can think about and grin at my mad-sciencey-ways.
Those three things really are at the core of what I think being a programmer is.
So I'm putting together a schedule. Making time for these things to happen each day and week. Because if I don't feel like a programmer, I'm going to feel like I'm living a lie. And that's no way to go through life, son!