Technology is always changing. There's always a new shiny tool in the corner that you should explore by the end of this month, there's a big topic popping up everywhere, and it's machine learning that is really gonna make you stand out as a developer. By the way, have you read 3 blog posts this morning and 1 book this week? Have you practiced leet code today to improve your algorithm knowledge?

This is the head of a software engineer working their way to a black pit called anxiety.

Every day, this is my head trying to figure out how to be the perfect Software Engineer.

What is perfectionism?

Perfectionism, in psychology, is a broad personality style characterized by a person's concern with striving for flawlessness and perfection and is accompanied by critical self-evaluations and concerns regarding others' evaluations. - https://en.wikipedia.org/wiki/Perfectionism_(psychology)

From my perspective, perfectionism works as a loop. First, I get an idea of something that I should do. For example, let's say I want to learn the Java programming language. I quickly start googling around what it is and start gathering learning resources.

I read some blog posts, enroll in courses, and download books on them.

I set a goal to myself that I'm gonna spend an hour a day practicing and learning how to write it.

I manage to accomplish that every day in the first week, then comes the second week, and I have to help a friend with their website. Ok, I can miss one day, that's fine. Then I have to call my family since I've been pushing that back for 1 week already, but I also have to do this damn Java course.

The next day I start getting nervous at work and in my head all of the time, how I need to do this course since I skipped it. Finally, I am tired from stressing and working the whole day, and out of the tiredness and stress, I open my phone and start googling "how to learn stuff," "how to become a better software engineer," "how to become better in java"...

It's been 2 hours. The only thing I have done is stressing so much that I have 6 new grey hairs and nails that don't need cutting anymore.

How to ride the waves

Through my boat ride through perfectionism, I've gained some tools on how to ride the waves. The biggest one being

Mindfulness

Simply put, mindfulness is being fully aware of the present in where we are and what we're doing. Everyone can access mindfulness, and I believe everyone can gain from it.

Mindfulness helped me notice my thoughts and when my brain was in the loop, stressing endlessly. Only when I recognized that loop, I managed to escape it.

Writing down my thoughts

Writing helps you to consolidate your thoughts and to dump your brain. Think of it as going to the toilet with your head.

I keep a notion page that is set to the calendar view. Then, whenever I need it, I create a new page and dump whatever is on my head at that given time.

Be it when I'm frustrated, when I'm nervous or when I'm feeling good about something.

Embracing the amateur mindset

An amateur is always seeking new opportunities and is not afraid of making mistakes. An amateur makes stuff because it's fun to do, not because he needs to make it perfect. An amateur asks questions and is not afraid to be criticized by people.

Embracing this mindset is very beneficial towards breaking your ego and making you seek knowledge from others instead of trying to be perfect yourself.

Conclusion

Having the mind of a perfectionist is hard work. It's also hard breaking out of this mindset since it tends to creep back whenever you think you got it.

But don't forget that breaking the loop is not impossible. And you can do it daily!

Perfectionism as a Software Engineer