Greetings. I've been a professional software developer for a long time now. Almost as long as the ages of some of the people I work with. In that time, I've been able to make a few observations, one of which I recently voiced to a colleague (a programmer at a client site).
The conversation went something like this:
Him: I'm feeling stressed, man.
Me: Why?
Him: I'm feeling stressed, man.
Me: Why?
Him: Because I've got to get this (feature) to work, and it's due next week and I just can't figure it out.
Me: Bummer.
Him: Yeah, and I felt so good this morning when I came in because I just got (some other feature) to work before I left yesterday!
Me: Bummer.
Him: Yeah, and I felt so good this morning when I came in because I just got (some other feature) to work before I left yesterday!
That's the nature of software development. One minute you're on top of the world ("I am the GREATEST PROGRAMMER EVER!"). The next you're at the bottom of the ocean ("I will never get this to work, I'll get fired, and be disgraced!"). Congratulations, and welcome to software development.
I've noticed that as I navigate the waters of any given software project that I have ups and downs. Almost manic/depressive in nature. One minute I'm the greatest programmer ever for getting (some feature) to work or figuring out some really tough problem (usually with the help of a forum post or two, I probably should mention that, huh?). The next, all I can see is how I cannot get (some other feature) to work and I should just give up, quit software development altogether, and just take that night manager job at McDonald's.
I've noticed that as I navigate the waters of any given software project that I have ups and downs. Almost manic/depressive in nature. One minute I'm the greatest programmer ever for getting (some feature) to work or figuring out some really tough problem (usually with the help of a forum post or two, I probably should mention that, huh?). The next, all I can see is how I cannot get (some other feature) to work and I should just give up, quit software development altogether, and just take that night manager job at McDonald's.
So what makes some of us like that? I don't suppose knowing the answer to that question would make any difference, or prevent it from happening. But it's a curious little tick of most software developers I know (arguably most of whom are overachievers). Whenever it happens that I'm down (depressive), I try to remember to tell myself that the feeling is illusory and that while I may not be the greatest programmer ever, I'm competent and I will figure the problem out. And when I'm up (manic), I try and remember that this too shall pass and later today (or tomorrow or next week) I'll run across some seemingly insurmountable problem and round it goes again. And again. And again.
Now, if you'll excuse me, I have to get back to coding. I just figured out (some really difficult problem) and feel like I'm the greatest programmer EVER! I am, right?
--jsp
--jsp