Q: I seem to be struggling with myself. This happened several times and seriously affected the quality of my life.
I'm assigned to implement a feature, usually vague, and something that I think adds unnecessary complexity to the codebase. I try to reason with my managers, but usually their decision has already been made. Then I struggle with myself for hours to force myself to finish the feature. Not because the code takes so long, but because I can't bring myself to do it. I spend hours trying to persuade myself to do this. Also, I spend a lot of time trying to make something as readable, maintainable, and simple as possible. This means weighing the merits of different solutions and choosing one. I am very hesitant when making decisions, which leads to more wasted hours.
Most importantly, my managers don't fire me. They don't see how many hours I wasted, how demotivated I am. Instead, they treat me as one of their most valuable collaborators (this is ironic!). (At the moment, I cannot change jobs. I am helping my best friend's startup doing this job.)
Have you been in such situations? How do you immerse yourself in the work and do it when your whole being is rebelling against the task? Jonathan Blow's
answer :I am a 42-year-old very successful programmer who has gone through many situations in my career, many of which were highly demotivating. And the best advice I have for you is to stop what you are doing. Seriously. Even if it seems to you that you are not able to do it, then know - you can. This is normal. You are free. Okay, you are helping your friend's startup, but what is the corresponding cost for that? Would she make you do it if you knew it would crushing your soul?
I do not use the phrase "trample your soul" lightly. When it happens slowly, as in these cases, it is difficult to see the scale of what is happening. But this is a very serious situation, and if left unchecked, it can damage your potential to perform well for the rest of your life. The reasons:
- , . โ . , , , . . , 12 , . .
- . , , . ! , /, , . , , , , .
- , . . , , . , - - . . - , , , . . . .
So if you put yourself in a position that is not really difficult, it is inconvenient day in and day out, and you do everything slowly, this is not just about slipping. You keep that compounding curve down for the rest of your career. This is a serious problem.
If I could go back to my early career, I would mercilessly erase all my shitty work (and there were many).
Something else about personality. In the beginning as a programmer, I often found myself in the situations you described. I didn't like what I was doing, I thought the leadership was stupid, I just didn't think my work was very important. I was very depressed about projects, I moved slowly, at times I got into a regime in which I pretended most of the time that I was making progress simply because I could not bring myself to get the job done. I just didn't have the heart to do it. (I know a lot of people here know what I'm talking about.) Over time, I got depressed about this: Do I have a terrible work ethic? Am I just a bad programmer? Bad person? But these questions weren't as verbalized or intellectualized, they were more like a general malaise and disappointment in where life is heading.
Later, I learned that my work ethic is not at all bad and that I am not a bad person. I'm actually quite ferocious and do a huge amount of good work when I think what I'm doing is important. It turned out that in order to capture this sense of importance, I had to work on my own projects (and even then, it took me a long time to find the ideas that really moved me). But once I discovered it, it actually turned me into a different person. If this works for you, the difference between these two lifestyles is HUGE.
Okay, it was long and incoherent. I will stop here. I wish you the best of luck.