Perfectionist and The Epic Failure Meltdown

Hello,

My name is Zach Berwaldt. And this is a very delayed response to Zed’s blog post about Perfectionists and The Epic Failure Meltdown.

I had one today. I was working on ex43 of the Python book. I was working through it and I got to just before Zed’s implementation and in my head:

“Well, I can’t do this.”
“How am I supposed to make it exactly like Zed’s?”
“Welp, I guess I have no choice but to look at the answer”
[proceeds to scroll down and cheat myself out of learning]

which is why I’m here. Perfectionism is annoying, and I don’t wish it on anybody.

I become more convince every time I have one of these “meltdowns”, that it’s the single biggest obstacle that will keep me from reaching any worthwhile level of proficiency at programming. More importantly, thinking, problem solving, and creativity (which is just problem solving).

Personally I think perfectionism (at least for me) stems from a couple of things:

  • Feeling like you don’t know enough
  • Lack of confidence
  • Lack of process, and I mean a process to work through every time you catch yourself going into meltdown mode.

A sidebar: You can probably wrap these all together, because in some ways they are interconnected, and have some weird sci-fi symbiotic relationship. They feed off each other until you overload and meltdown.

The rest is:

  • unfounded beliefs
  • Some level of OCD
  • Too much pride/high expectation of self.

For example:

  • I believe I have to get it right on the first try.
    It’s a dumb belief and expectation to have, that has no basis.
    But I have it for some reason that is ingrained in me.
    Nature, Nurture…pick your flavor.

Few Strategies that helped me:

  • Go outside for a walk: Having a meltdown is always a good cue to step away for a minute. Leave your Ipod and/or cell. Then enjoy, walking is like meditation.

  • Be cognizant of yourself: I know me, I know where I tend to go off the rails. Knowing is half the battle to mitigating meltdowns. Consciously challenge your thinking. But not for too long because then it becomes a negative feedback loop.
    A Simple: “Hold on a minute, why do I believe that? that’s not accurate. It’s a simple problem, let’s break it down…” will suffice most times.

  • Commit to changing yourself: I don’t see any other away around this last one, but that doesn’t mean there is not one. But being a perfectionist in a lot of ways is a learned behavior pattern, and it I think it comes down to exercising discipline and trying hard to force yourself to not follow that pattern. Create an environment where you have to do that. Close the book and really focus on working out the problem for brief periods of time. The Pomodoro technique can help with this, so you don’t burn out.

Now mind you, I’m still learning to do this, and I’m a grown man. So be kind to yourself.

Deep down, I know I’m learning a new way of thinking about problems and that takes time and patience.

I understand probably most of this is “duh, common-sense!” stuff. But I’ve been struggling with it and creativity and finding problems to solve (which is a whole 'nother can of worms), for a while and these are the conclusions I’ve arrived to thus far.

I feel like I’ve lost my train of thought, so I’ll stop here.

I hope it was helpful. If not, I’ll do my best to clarify. Or if it’s really bad, not continue at all.

Zach

4 Likes

Hey Zach, that’s an awesome reply and thanks for laying that all down. It’s very similar to what other people say, and I think the key thing that connects everyone is their need to make something perfect from the start.

So one way I tell people to get around this idea is to watch other people you respect make something real. Not a studio recording or a performance after months of practice. Not a staged cooking show with everything perfectly set up. I mean a real thing. You’ll find out that the difference between you and them is they embrace the mistakes that come up in the beginning and slowly form it toward what they want, and only at the end (or close to it) decide if it’s not good enough.

In programming the way you do this is to trick your brain into not caring. In my More Python book I push you to make a bunch of “hack jobs”. Code you’re going to throw out. It’s not real code, it’s garbage that works. Then after the garbage you’ll get serious and make the real code. It’s alright to make a mistake with garbage, that’s what it’s for.

Seems dumb but I do this with painting. If I start a painting with “I’m going to do a study of this, then I’ll use this for a real painting later” I do a way better painting than if I tried to do a “real” painting. One way to make me do this is to use a chipped or broken painting surface. I can’t do anything “real” on a chipped board. Duh. And then I just embrace all those mistakes and somehow what I do comes out awesome
(then I regret not putting it on a good panel but that’s a whole other story).

Try that. Just turn that OCD into a constant stream of “meh this is just a hack job. it’s garbage that works. I’ll do a real one after this, but now I’m just hacking.”

3 Likes

I think this is a common disease.
I guess before starting to learn coding I watched too many hacker movies where these super humans were watching a screen for a spilt of a second then figured out what happened to that system. Then they would type extremely fast for say 3 seconds and bam:
“I’m in! Go, go go!!!” :smiley:
Living with a software engineer for 10 years + didn’t cure the disease either.
I just went into the office and he was always typing fast like he knew what he was doing.
So I didn’t pay much attention, I wrongly assumed perfection is part of the requirements of being a programmer.
And this somehow got embedded in my brain till you said programmers are not super humans at all.

I was listening to The Changelog episode with @zedshaw. During the episode he talks about “Magic” functions. To which the response is:

“No it’s not. You just don’t know how it works”.

Which, I think, ties in nicely to what you say:

From 10,000 feet any task looks like it’s easy if it’s performed by someone proficient at it.

I think that’s another super important for anyone coming in:

  • Avoid making assumptions

  • Try not compare yourself to others

Also, coincidentally enough, I came across this article yesterday.
Which dives into perfectionism rising these days:

Thank you for all the replies!

I got a big confidence boost. Now it’s time for the Confi-dance!

3 Likes