A Coder’s Feelings Chart and the Emotional Lifecycle of Learning Software Development

Coding and emotions? These two subjects are hardly coupled (coding pun intended!) in an article nor a conversation related to Software Development. However, while recently learning Java and Kotlin from online tutorials, I was strongly reminded of the unique back-and-forth experience of feeling frustration and elation while coding as expressed below:

The back and forth between frustration with errors and jubilation when the code works.

To be clear, the frustration of programming is more often felt than elation. Yet, once I see the magic of code compiling correctly, the elation and excitement is unlike other joy I’ve felt. Pondering this vacillation between prolonged frustration and short-lived elation, I began analyzing the other emotions that accompany the process of learning Software Development.

Yet, before further discussing, I’ll first provide some background information about my journey. I am an abstract artist and a deep feeler. I spent a year gathering data on emotions and painting abstract expressions of said emotions. I used Instagram and face-to-face interactions to engage the public, asking my audience to pick the best painting to represent a feeling.

With this information, I painted over 20 emotions and created/ published Feeling Heart and Healing Heart.

I then pursued Software Development for a stable career, attending Nashville Software School’s 6 month Web Development Bootcamp from February to August 2020. Relying on the last 10 months of my experience learning to code, I created a Feelings Chart for coders using the art I had already created in 2019. In reflecting on the process of learning, I realized the emotions are oddly specific. Here are the emotions I selected from my portfolio:

This chart is based on my project: Feeling Heart.

While making the chart above, I started visualizing the mind map/ flow chart of these emotions: how and when they are experienced. Hence, I created this chart below to demonstrate a sample emotional lifecycle (second coding pun intended!) while learning to program.

There are obviously infinite possibilities and personalized iterations of an emotional lifecycle. Yet, for purposes of simplification I’ll explain the one I chose:

  1. Excited: “Yeah! I’m excited to tackle this new challenge. Let’s go!”
  2. Hopeful: “Ok, let’s serve this app up/ npm start/ press play/ compile etc. Fingers crossed this works!”
  3. Confused: “Wait what? Why is the code mad at me? What’s all this red in the console? Alright, time to debug! Let’s Google, use Stack Overflow. Ask friends (in my case, classmates at Nashville Software School).”
  4. Frustrated: “I’m banging my head against the proverbial wall. I’ve tried everything and anything. I’m in a mental cycle, circling around possible solutions with no exit in sight.
  5. Anxious: “I’m starting to panic. Do I even know what I am doing? Will I graduate this bootcamp? What if I don’t pass ? When will I ever feel confident that I know how to code? What if I don’t get a job?”
  6. Despair/Shame: “Maybe I’m terrible at this. How is (insert classmate/colleague) getting it right and not panicking? I hate my life, I hate myself. Why can’t I figure this out?!?!? I’ve exhausted my resources and my brain. I’m intellectually fried.”
  8. Proud: “I’m so proud of myself and my work/ my team. I cannot believe I wrote all this code! Look at all this beautiful work. I’m gonna show it off.”
  9. Gratitude: “Imposter syndrome is real. I’m so thankful for the dev community and everyone who helped me figure this out. I’m grateful I chose this path of learning software development. I’ll be kinder to myself next time; I’ve just got to be patient! Onto the next ticket…”
  10. Repeat steps 1–9.

You will notice that I also included Vulnerability, Shame, and Despair on the “Coding HeART” feelings chart. These three emotions are specifically addressing the “growth mindset” (feeling vulnerable) and the often talked about “imposter syndrome” (causing shame and despair). Nashville Software School prepped my class day one on battling imposter syndrome and keeping a growth mindset to successfully navigate a lifelong career in Software Development.

Even with those reminders, during the 6 months at school, I experienced 3 emotional low points, aka breakdowns, where I cried and felt defeated. I will forever be grateful for the Junior and Lead instructors at NSS who jumped into my Zoom breakout room to give me a reality check, validate my emotions and encourage me to not give up (and often take a break). These emotional lows were all influenced by exhaustion, my self-doubt and frustration in failing to meet my own nebulous expectations. During the front-end course, I will never forget the Lead Instructor giving me a wake-up-call. He expressed how he wasn’t even worried about my coding skills. Instead, he was greatly concerned with my emotional state, being so hard on myself with my perceived lack of progress. He expressed that this skewed self-perception is dangerous and has led to students quitting the program in the past, despite the reality of their progress. After that conversation and a long weekend away from the computer, I shifted gears. I still experience the same emotions. I’m still hard on myself and have lofty goals. However, I realized that I am not alone in these feelings. I’ve also heard from more advanced, experienced developers that the emotional cycle never ends. I found that both comforting and terrifying simultaneously. For this reason, I end this article with Compassion. I believe that self-compassion and compassion for others is needed in your emotional arsenal for success just as much as any skill set while learning to code.

I’d love to hear your opinions otherwise and perhaps emotions that you experience while coding or in the Software Development field in general. I’m curious to know which other emotions should be included in the chart. Perhaps they will inspire my next round of paintings!

Newly minted Software Developer, Abstract Artist and former French Teacher. https://github.com/sarah-hart-landolt