Programming and Emotions

Monday Oct 28, 2019 by Dave Glassanos

There’s going to be times when you’ll feel stuck. Your energy, drive, and emotion will go up and down over time during your career. Managing your enthusiasm during the day to day work as a programmer takes significant practice. There’s a good chance you will go through many ups and downs. I’ve found that it helps to visualize it as a time-series graph of your emotional state over time. It’s important to have a general sense of where you are in relation to your historical emotions in the past.

When I talk about emotions I’m talking about how excited you are to wake up and get to work on whatever project you’re working on that day. Some days you’ll jump out of bed because you’re working on an exciting project. Perhaps it’s something new you’ve never worked on before. Maybe you have to solve a difficult algorithmic problem or work on designing a new class or service. These kinds of projects are what get us excited to go do our job every day. Sometimes it might not even be the technical side of things. Many engineers thrive off of the positive feedback they get from the people who use their software, whether they’re customers or internal team members. We all love recognition for our work, and times when the software you write gets praised, whether it’s for the intuitive user experience, the simplicity of the interface, the challenging problem you solved, The critical bug you fixed, the magic that your code does to save the team hours, or even days worth of effort. There’s a real sense of accomplishment when your efforts get recognized by other people. These are good times, and you should enjoy your accomplishments.

The day to day emotions are something you need to learn how to control though. One good day or one bad day at work won’t make a difference in the short term. We all have bad days, but it’s helpful to be aware of when you string together multiple good or bad days in a row at work. Maybe even one or two bad weeks, and things suddenly feel much duller. It’ll get harder to get out of bed in the morning. You start dreading your commute into the office. There may be a coworker who is difficult to work with, and it’s hard not to let it affect your mood in the office. There may be a bug in production you just can’t seem to figure out. You’ll want to bang your head against the wall because you’re so frustrated. You’ve thought through every scenario and read over your code changes multiple times. Why won’t the code work?

You’ll feel like you’re going insane. We’ve all been there. The faster you can learn to manage your emotional state during frustrating times like these, the faster you’ll grow as a programmer. You’ll learn sometimes the best thing to do is walk away from the keyboard. For small issues, this could mean going for a quick walk outside to get some fresh air. Other times it may mean calling it quits for the day and heading home. We often do our best thinking away from a computer screen. Some of the hardest algorithms or trickiest solutions have come to us while we’re not actually thinking about the problem. It could come to you in the car during your commute, in the shower before work, or even in your sleep.

My point is, do your best not to let your frustrations take over. The work will still be there tomorrow. Walk away from the keyboard and give your brain a chance to recover. Managing your mental and emotional state isn’t something you often hear, but it has a big effect on our career.