by Yana Yevsiyevich

Why coding and kindness go hand in hand, and how I learned to be kind to myself

x4I02IoFRVCnw2BwpidMEBrl9pZf4VghKDM8

Embarking on the #100DaysOfCode challenge, as encouraged by my husband, I’ve learned some unexpected lessons. First, as I explored in my article A Newbie Coding | The Closest I Feel to Being Bipolar, it can be an extraordinarily emotional experience.

Second, and even more unexpectedly, the experience continually highlighted the importance of kindness. The type of kindness that does not detract from the seriousness, commitment, or rigor of the challenge. This is what I found most surprising and disorienting.

As a recovering perfectionist (see this article), my daily battle is to maintain an acceptable level of control and personal high standards while remaining sane. It’s a lot more demanding than it seems.

This inherently, by the very nature of those suffering with control issues or perfectionism, does not lend itself to great self-love or forgiveness. Rather, it almost defines a strange emotional binarism. On the one hand, you might meet the standard of the day, in which case you rejoice for three seconds and then promptly set the next wildly ambitious and nearly impossible goal. Or, on the other, you fail to meet the standard of the day, in which case you panic wildly, initiate an existential crisis of obscene proportions, and remind yourself that this once again proves that you are not worthy of human interactions.

For a perfectionist, anything short of military precision is often unacceptable and is an illustration of either waning commitment or incompetence.

This mindset, which is about as far away from a growth mindset as spatially possible, does not bode well for coding (or life in general, but that’s a different article). To code is to struggle and strive. To code is to be a professional mistake maker. To code is to recognize personal limitations. But it is also about being part of a community that is encouraging, loving, realistic, helpful and curious.

On Twitter, I’ve become quite fond of the #100DaysOfCode (Alexander Kallaway) community alongside that of freeCodeCamp (Quincy Larson), Women Who Code, Code Newbie, and numerous others. Never mind all the brave souls learning Javascript.

Over the course of the coding challenge, they have become the most wonderfully diverse cheerleaders and mother hens a coding newbie could wish for. From them, I’ve learned some valuable lessons along the way.

UkfFDDR1SXvyzixvwWURiqeNYmpqciK2WBYI

Lesson #1: You’re Not Alone

Perhaps the most jarring aspect of this experience is that I’m not alone. The pursuit of perfection is often a lonely and dark battle with demons who care not for emotional or mental well-being. The frustrations, confusions, small victories and large triumphs are that much more human when you realize others have felt them as well. As humans, all we really yearn for is connection and understanding. Is anyone listening to me? Does anyone hear me? Does anyone care about me? These are the questions we ask as we experience the human condition.

Within the world of coding, everyone knows what it is like to fantasize about strangling lines of code because you’ve stared them for seven hours only to realize you missed a comma and now have an eye-twitch.

Everyone knows what it feels like to either read or listen to a challenge’s instructions 28 times because you’re nearly 97% sure the sentences have no communicable meaning, and part of the challenge is to decipher the vast (idiotically non-phonetic) code of the English language.

And everyone knows what it feels like to FINALLY get the result you’re aiming for, dancing around the room like a lunatic, and then realizing you have absolutely no idea how you made it work.

And those seemingly dumb (and I mean D.U.M.B.) questions that you have (and think you’re the only one in the world to wonder what the bloody hell purpose a modulus operator has), they’re entirely legitimate and everyone has wondered the same.

Perhaps with the exception of your husband creating a twitter poll for coding related baby names (seriously, that included JSON and Codie), it’s endlessly comforting to know that you are not alone. Someone in the ether has not only experienced the ups and downs, but they are patiently waiting for an opportunity to believe in you.

And that’s quite beautiful.

YPd086Bimyh6otVgfTlNPjwZLWZAzIuY0nFJ

Lesson #2: Perfection Does Not Live Here

If there is one sign on the door to coding, it’s Piss Off, Perfection — You Have No Home Here! One could easily imagine that coding is about perfection, and to some degree, that is true. After all, a code does not function or perform unless it follows a specific syntax and is written correctly. But that is true of any language that communicates meaning or actions. Beyond that, however, there is a world of creativity and mess. And it’s not so much about the code itself as it’s about the person behind the code.

Coding is an ever-evolving beast and it seems that there is a new language or program or platform or resource available daily (or at least that you’ve discovered)! And that is enough to make your head spin. As such, the opportunities for learning are vastly endless. And so are opportunities for mess, mistakes, confusion and feeling wildly overwhelmed. For anyone with control issues, that is daunting.

I reached the pinnacle of this panic early last week. On maternity leave and thinking quite brazenly that I would continue my #100DaysOfCode so intensely that I’d be the next female coder extraordinaire (exhibit A below), I fell far short. Oh, the hubris.

K1TNk5M76iuI6QfnBTSoPKUfH97rPPENGioy

Instead, I spent the week napping and binge-watching episodes of the UK’s best form of contraception, One Born Every Minute. Oh sweet baby Moses, that is not to be advised one week from your due date!

The point is, when I awoke from my binge-watching daze five days later, I had a full-blown guilt attack that internally went a bit like this (a little reminiscent of when you’ve overslept and have an exam in T-12 minutes):

What the blazes, I’ve completely wasted this precious time! I could have conquered coding and built a multi-million dollar start-up business by now! S$#! S$#! S$#! Baby due in a week and I’m on R1|D62 of the challenge. S$#! S$#! S$#! Must learn the internet. Wait, have I showered today? What the hell is in my hair? S$#! Focus! Okay. Aw, well-done newbie coder, most people would pull off a limb to have this time coding without interruption! And you SUCK at Javascript — you of ALL people should be putting in the hours. Shameful, just shameful. Seriously, what the hell is in your hair?! You’re a hot mess — go bloody sort yourself out. I can’t even look at you right now.

Listen, I never said it was rational or even remotely in the realm of reality!

Nowhere near meeting my high standards or expectations (and a little concerned about my personal hygiene after emerging from the binge-watching fest), I felt a complete and utter failure. Yes, I did something coding related every day, but nothing on the scale that I would expect of myself. So, I had to reflect carefully on whether (and why) my excitement and enthusiasm had seemingly waned subconsciously.

I realized that it was for two very inter-related reasons: first, because I was overwhelmed with the amount and diversity of material. There’s such an abundance to learn and a plethora of resources to use, which can cause exhaustion at the mere thought of all the options! Second, because I didn’t have a path or clear vision of what I wanted to accomplish. Once I realized this, I had to face my feelings of failure and find a productive way forward.

hU-DJ0g57u7r1zaXrLfA5z2vj8-IiQAYulpR
XfKbngTJW2js2797sxnm3t53Z0yDKP3l3I3Y

I created my Daily Coding Syllabus, not only to help me focus on the areas of coding that I’d like to pursue (for clarity) but also to help me allot the appropriate time for the resources that I’d like to use (for sanity). This way, all my bases are covered and I don’t feel as overwhelmed. And to the credit of the coding community, they were beautifully encouraging and cheered me on all the way!

Now, that doesn’t mean every day is perfect. And I had to sit myself down for a stern, but a gentle word. And this brings me to my final point.

Lesson #3: Be Kind

Although I have yet to complete my challenge, the most important lesson I have learned thus far is that you cannot thrive without kindness. And part of that kindness comes from recognizing reality and priorities. For me, this means realizing that dealing with exhaustion is part of growing a human and resting will take precedence over hours of coding — and that does not make me a failure.

It also means that the challenge is meant to be differentiated for your life. Yes, there are certainly guidelines (have a look at Quincy Larson’s article and the #100DaysOfCode website), but ultimately the approach is entirely up to you.

And there is a time to be pedantic and a time to kindly close the computer screen and take a few deep breaths. Those negative voices that you may have in your mind would never dare speak like that to anyone else, and you should be no different.

And the love, encouragement, enthusiasm, and pride that you shower on your fellow coders … well, shower a bit on yourself too! And not just when you meet your own high standards. In fact, do something coding related (however much you can) every day and bask in it for a moment.

The coding community helped me recognize that, as is the case with all true journeys, coding does not have an endpoint. So, let’s cheerlead ourselves and each other on the path to greatness.

b1XboNh4SBbKu7iollZXBop6ATClWrq9A8kf