I recently had a younger engineer ask me, “Do you ever feel unmotivated to code? You just get to work and don’t want to work on bug fixes or write those lame unit tests or the other kind of “unfun” parts of being a software developer? What do you do when you run into coders block to push through and finish a particular painful to develop piece of code?”
Short answer, yes! I certainly have had felt that before. There is drudgery in almost every job, and programming software is no exception. Some days are exciting and we’re solving awesome problems, and sometimes it’s all I can do to put my hands on the keyboard. In my experience, mental blocks happen for a couple reasons: 1. You don’t understand the problem you’re trying to solve, 2. You’re unhappy with the problem you need to solve, or 3. You’ve done it a million times and you just don’t care to do it again (ahem.. CSS?). There are a couple things that I have found helpful on those not-so-sunny days, but the number one thing that I’ll talk about here is this: Be vulnerable and communicate. Here’s what I mean:
If you are working with a good team, or even better, are lucky enough to have an assigned mentor, ask them if you can bounce some ideas off of them for a couple minutes. Be honest about your problem. Explain that you need help getting unstuck or motivated. I usually say something like, “I’m just wading through mud today. Can I bounce some ideas off you for a minute?” If they have time, you’ll have the opportunity to explain the problem out loud– which often is enough to trigger some new ideas on its own– and rehash the possible solutions you’ve already come up with or tried.
If you’re like me, Best case scenario, they may be able to look at the problem with fresh eyes and offer a possible solution, or even be willing to pair with you on it for a few minutes. ALWAYS pair in those situations if you have the opportunity. It’s a great motivator to have someone looking over your shoulder :). Worst case scenario, you might have a good laugh about what a terrible problem you’ve been tasked with and enjoy some fellow programmer camaraderie. These connections are important for your mental/social health, and make the days less monotonous. And sometimes, they’ll give you just enough of a smile to put your hands back on the keyboard and get to work.