In the last few years, I developed an efficient routine to improve my abilities as a developer. I contributed to open source, read a lot, wrote blog posts and was active in social networks. Yet, I had a constant feeling that it's not enough - that I'm not good enough. I thought I had to keep working hard, otherwise I'll go downhill.
At some point I realized I was very stressed, and that I was concerned all the time, and that I couldn't rest properly. I couldn't accept positive feedbacks and found reasons why they are wrong. Generally speaking, I was very hard with myself. At some point I became aware of this situation and decided to make a process to change it. Now, a few months later, I feel much better with myself. I wanted to share my process, so that it will help others out there in similar situations.
Feel like you're working hard and it's still not enough? Are you unhappy with your job even though it's pretty good? Are you generally stressed about your value as a developer? This post is for you. Take a few minutes to read through - you'll get a new perspective.
In the past, I had a strict daily routine. It aggregated to the following weekly agenda:
- Reading a tech book - 1.5 hrs/week
- Side projects, open source or writing - 10 hrs/week
- Reading and keeping up to date - 3 hrs/week
Usually, if I had spare time, I spent it on side projects or reading. I didn't rest.
I learned a lot and created a lot of content. I was confident my work "pays off".
With time, I noticed some things about myself:
- I was always stressed.
- I couldn't rest properly.
- I was very sensitive to issues at work, and they influenced my mood.
- Even though I got positive feedbacks, I wasn't able to accept them. I found reasons why the feedbacks were wrong, and gave myself negative counter-feedbacks.
- I had "tunnel vision" when encountering issues. I couldn't see the "big picture". I was too busy being concerned how I'll be perceived.
- I constantly swung between finding flaws in myself and in the environment (the company, the process, my coworkers).
- I thought about work day and night. I enjoy thinking about technical challenges, but this was a different experience. It troubled me where I was wrong, and what will my coworkers/supervisor say.
- I had a very strong imposter syndrome. I felt less professional than my surroundings and was afraid people will find out about it.
For a long time I thought that this is the price for having a good job, and that I have to accept it. I thought that if I'll learn and do more, I'll feel better with myself, since I'll be "more professional". I remember telling myself "you can learn more, instead of resting in the evening - spend the time by reading some more". So I pushed it a little more.
In 2020 Covid came along, and a personal disaster happened about at the same time. I started thinking about how I spend my time and what I sacrifice. I realized that the routine I'm having was taking its toll. It led me to some serious thinking about my goals and their prices.
I talked about this a lot with my wife, who is — luckily — a personal consultant. This led me to a decision to make a change. I adjusted my goals, determined to be happier.
Now, these are some big words. What does being happy even mean? Don't worry, this post won't get a spiritual twist 😜
"Happiness" a profoundly personal definition and will differ for each individual. For me, I wanted to have a balance between:
- A challenging and rewarding day job.
- Time to spend with my family and friends.
- The ability to maintain my hobbies.
Or in other words: retaining a good job, without allowing it consuming all my energy, all the time.
I started a process to achieve my new goals.
My process took part in two seemingly orthogonal parts. The first one is simple: I reduced the "extra" time I spend (side projects, reading, etc.) to an acceptable minimum. I still spend time, but considerably less. But, this isn't enough by itself. I can't "switch off" the part of my brain which constantly judged and said "it's not enough".
This was the second part, which required some more work. I observed at my thoughts and feelings about not being good enough. I noticed the following:
- I thought I needed to know everything. I was afraid of encountering the unknown since it felt like a test. Each time someone else knew something I did not, I felt very bad. "I should have known this" was a common thought. On hindsight, I tried avoiding the unknown by trying to learn as much as possible.
- I was very concerned with how I'm perceived. This made me feel occasionally under test (even when I wasn't). When struggling with a technical issue, the soon-to-come feedback troubled me more than the issue itself.
- I had unrealistic ideals. I know a few very successful individuals, and I take them as role-models. Yet, unconsciously I thought I can have all the positive aspects from my idols (writing blogs, contributing to open-source...), without having any of the negative aspects (the sacrifices).
- I understood that my ideals made me very judgmental about myself and my surroundings. When things didn't go as I imagined I became upset. It could have been something in the workflow, or a coworker that didn't see things as I do . The gap between my ideals and the reality made me believe (sometimes) I don't fit.
- Almost all my feedbacks were positive. This part is important - my feelings about not being good enough were not based on any external feedback. Objectively, I was doing ok.
After learning about my thoughts and feelings, I started making cognitive changes.
To achieve my goals, I needed to cognitively change the way I think. This may sound abstract, and it's easy to be cynical about it. However, it is feasible with a lot of hard work.
- I accepted I CAN'T have it all. I'm no superman. I adjusted my ideals and "lowered the bar".
- I remind myself where I'm doing OK. I don't have to be overwhelmingly great, being OK is good enough. I allowed myself listening to external positive feedbacks.
- I decided to gain meaning from myself, and not my surroundings. If negative feedbacks show up, they shouldn't affect my self-esteem. Having areas that need improvements don't make me a bad developer.
- I accepted I can't know everything. Learning is great. But, naturally, it is not possible to know everything. It is GUARANTEED I will bump into things I don't know, and someone else will. No one can escape this scenario. This led me to an important understanding. Professionalism is measured not only by what you know, but how you learn what you don't know.
- I accepted that people have different values than me. Sometimes I have opinions of how things "should be", that weren't in line with my coworkers' opinions. In times where I couldn't convince my colleagues, I felt very bad. Instead, I now allow myself letting go of some of my ideas. "Chasing" them and trying to make them happen at all cost was frustrating.
- I accepted my judgmental nature. When a judgmental though came to my mind, I noticed it, and labeled it as such. I doubted it instead of accepting it as is. Eventually, I could separate cases where things are truly "bad" or rather they just don't match my ideal (which is my problem). I moved from a passive point of view ("This is bad" or "I am bad") to an active point of view ("Should this be improved? Can I improve it? What can I do?").
- I decided to spend less time "learning" and "pushing myself forward". Instead, I spent some time with non-work things. I learned to juggle. I improved my chess skills. I exercise more. I even play more PC games (an extreme luxury in the past).
Now, I know what you're thinking. "Huh, that's a one way street for becoming a mediocre developer, or worse". Is it so?
Naturally, this change may slow my career progress. However, the pros beat the cons. I don't feel stressed, and I'm more energetic. Non-work activities were more enjoyable. I'm more concentrated at work, and I solve problems quicker. When incidents come up at work, I'm much more calm and focused. Innovative ideas come to my mind more often, and I have time to implement them. I learn and create because I want to, not because I have to. Once you realize you don't really chase anything - the meaning of speed matters less.
Being a developer is very demanding by itself. On top of that, each person in the dev community has something to say about what you should learn, and what you should do. FOMO is inevitable, and it's easy to feel bad (or simply not good enough) with yourself.
I wanted to share my story, maybe it will help other devs with similar feelings. My main message to you is: Relax, breath. Remember to slow down sometimes. You're doing alright 🤗
On a more personal note (if that's even possible), it was very difficult to me for write on such a personal topic. I'd love to hear your thoughts about this - feel free to approach me at any way (comments, DM, emails - you name it)