Have you ever spent hours, days or weeks even, stuck on a problem? Surely you have, and if you're anything like me, your frustration leads to a tank in self-esteem and completely sours your mood for however long you continue to struggle with it. This is something I've only really become conscious of since becoming a developer due to how prevalent it is in my day to day. I tie a lot of self-worth to the work I do and, while I realise it's an incredibly simple concept, when you're not able to identify that and take a step back when things get bad, it can be a real issue.
It occurred to me today that I've never heard anyone formally discuss the concept of big wins and small wins, so lets have at it. I will be referring to this concept in relation to programming, however I honestly believe that you can apply it to any aspect of your life. I personally think it's going to be relevant to me throughout the entirety of my career, and I've noticed that it can have a significant effect on my mental health, so it seems worth talking about.
The idea is simple; the bigger the challenge, the bigger the feeling of accomplishment, and therefore, the bigger the win. But when you're working towards a big win and it's causing you so much frustration that it's really getting you down, you should try to find a way to feed yourself some small wins to keep your spirits up.
Now, I've only been working as a full time developer for around 9 months, but I've already worked in two very different development environments. My first job involved being assigned to one project with a project manager that kept me on schedule. Meanwhile my current job involves six projects (so far) that I am reasonably free to switch between as I deem fit and allows me the freedom to prioritise my time and efforts. I've been able to apply the strategy of managing my own big and small wins to both situations. You simply have to find the way it can be worked into your specific workflow.
For each bizarre bug that drives me insane trying to find the cause of, and then fix, I pepper in a couple of the more straightforward, simple-to-fix bugs. For each feature that truly tests my skills and understanding of a language, I sprinkle in something small and familiar. Feeling infuriated and unproductive as you sit there figuratively (or literally - we've all been there) banging your head against the wall? Take a break to focus your energy on accomplishing something small, and come back to the problem feeling much better about yourself. You might be surprised by the amount of times that even just that shift in emotion can give you a different perspective on a problem that leads to finding the solution.
Next time you're feeling discouraged by a problem you can't seem to solve, allow yourself some small wins. You'll feel better for it, and as cheesy as it sounds, you'll get there in the end.