Today, let’s talk about a dirty little secret of mine – Perfectionism. I’ve been observing myself for a while now, and I’ve come to realize that my perfectionist is getting out of control. So, I think it’s time to share about it. Firstly, let’s have a look at the accurate definition in Wikipedia…
Perfectionism is a personality trait characterized by a person’s striving for flawlessness and setting excessively high performance standards, accompanied by overly critical self-evaluations and concerns regarding others’ evaluations.
To put it simply, if you become obsessed with imperfections in your stuff (or sometimes, others’ stuff), when you wanna fix it almost immediately and once you’ve done it, you enjoy the pleasure for fixing it, then it’s a nice sign of perfectionism. At least, that’s how it started for me.
How did it start?
As far as I can remember, it started somewhere around my high school days, when I had this desire to collect stuff. I was a philatelist and a coin collector once (but I also collected comics, cards, and plenty other nonsensical stuff). And, no matter what they are, my stuff gotta be neat! For instance, here’s a slice of my stamp collection…
Note something? No empty spaces! That’s the goal. Every time I get a new stamp, I put them in such a way that they totally fill up the page (that no spaces should be left out!). Or else, I get obsessed – stress & anxiety conquer my mind. Well, I now know that it’s been an obsession all this time. A similar thing goes for my other collections (too bad I can’t show it to you – I gave away most of my collections).
Soon, my first computer came home and I lost my interest in my old stuff. Then, my “desire to collect” phenomena shifted from real to the virtual. I began to stuff my computer up with whatever things I found interesting, or I thought would be useful in the future – could be YouTube videos, movies, software, games, wallpapers, GIFs, etc. (Honestly, I wasn’t aware of coding till I came to college).
Here’s where things became a little complicated. In a few months, I mapped out some rules for my files.
|Software||– File should have a proper name & version|
|Videos||– Quality of the video depending on their genre|
|Music||– Proper attribution like author, album art, title, year, and must have 160 kB/s bitrate.|
|Movies||– Matroska container – with video & audio tags mentioning its bitrate (along with subtitle)|
All have a common attribute – title case for all words except articles & prepositions (I call this style, “Proper English”). I remember wasting so much time sorting everything and filtering out my collection according to those rules, but I did it somehow and was able to maintain my collection for a long time.
As I got into college…
I was so dumb when I got into college, but I realized two things – that education in college is nothing but a total waste of time (provided the level of our educational system), and that Physics is much more interesting & diverse than I had previously thought (when I got into Physics Stack Exchange). So, I spent most of my time learning Physics, when something new popped into my collection.
I began writing my own notes. Whenever I understood something (or some way to approach an existing theory), I wrote it down. Now, another rule jumped in.
Don’t try reading the image. All you have to observe is the arrows, partitions and most importantly strike-outs! Actually, this page has the least strikeouts (so to speak). One can expect at least 5 in every page of mine. Anyways, I was able to control my arrows, but the strikeouts were like a shadow. They haunted me everywhere (including exams), that they gained me some popularity among the staff & my fellow mates (an year ago, they prefixed my name with “strike”). What’s a strikeout? It’s a horizontal line made through the middle of a text to obscure it.
The obscuring part didn’t work out with me very well. It has to be perfect, and so I had to amplify my obscurification, which led to the growth of my “striking out” phenomena. So, what if I don’t strike? The same obsession & anxiety problem occurs…
One thing led to another and now I encounter my “perfectionist” almost everyday in my life when I try to keep my (real & virtual) stuff in order (which could be almost anything), I’ve never tried to eradicate him because (apart from bullies) I’ve never had much problems with being a perfectionist as it always leads to pleasure once the imperfections have disappeared. It’s only the “when” that’s undefined.
So, where exactly is the problem now?
My code. It has now gotten into my code! About two months back (when I got into Mozilla), I got to see Mozilla’s beautiful codebase, when I realized that code needs to be as elegant & beautiful as it can be. It was soon followed by my day in a hackathon. All these events and upon spending further time in the internet (awed at more code), my perfectionist made one new rule! Write beautiful & perfect code! A scientific impossibility, but well… it’s my perfectionist we’re dealing with.
Whenever I submitted my patches to Mozilla, I double-check them to ensure that my changes to the code synchronizes with their style. I don’t easily get satisfied, and so this consumed my time (which was okay with me). For the past two months, I had a hard time writing my code because I was nourishing my perfectionist.
I became a Pythonist about an year ago, and I’m sure there are more than 100k lines of code in my repo (from calculations or solving some problem, to working with files – I use Python for a hell lot of things in my laptop). And, this is where the recent trouble started. I got to see my old ugly Python code (compressed all the way down using semicolons). So… what happens now?
Yep, you guessed right – it’s obsession time!
I had to clean them up somehow. So, I spent a few hours trying to write a script that cleans my code. And, I did (but badly). I wasn’t satisfied because I can never know whether all of my code is just as I had expected. I lost my patience, that I finally started going through my scripts, until I broke down. I understood how complex someone’s code style can get. I can never make my script understand how I write, covering all possible cases, and finally transform everything into my new style – it’s nearly impossible! We’ll be needing an AI for that…
Then, I realized a few things (last week). Looks like all this time, my view has been obscured by my perfectionist, that my goals have been changed from “making something to work” to “waste time by trying to make a hypothetical something”.
So, I had to make some decisions.
There’s no fixing the past! And, there’s no flaw-less future. All I can do now is try to get the expected results and look forward towards the better future and, I can never ever expect something to be perfect! I know that struggling to achieve perfection has consumed too much time in the past and so, I’ve decided to control my perfectionist.
How? By deliberately making a mistake everyday! For example, as a start, I’ve been ignoring the title cases in some of my code, comments, file names, etc. over this week. It was indeed a great obsession (along with anxiety) for a while, but now I feel somewhat improved, that I don’t seem to care about it nowadays…
All I expect now (for anything, not just code) is to just “be good enough” (not “as good as possible!”). Inner peace…