What I do When I'm Stuck As A Developer
10 Helpful Tips About How I Get Out Of A Sticky Situation While Developing Software
The relationship we developers have with software development has to be arguably the most toxic thing out there π . Software developers have a love-hate relationship with their profession, so much so that watching a stuck developer sulk can be quite amusing (as long as the developer doesn't catch you observing π).
Make no mistake though, it's not always highs and lows. However, most of one's character development (and experience) comes from the highs and the lows, not the parts where you have everything figured out and it's like a walk in the park. Today I'll be focusing on the days when software development drives me up a wall and how I wiggle my way out.
I generally believe that debugging is one way developers make lemonade when the machine gives us lemons π€£. While mistakes happen, the process of handling them and communicating during and after debugging with stakeholders (or your friends π) can earn you points, especially with testers.
I've found that being able to explain what went wrong and how you fixed it to a tester gives them confidence in your skill and can help smooth things over. Now that we have all that preamble out of the way, let's get down to the crux of this article. I think a listicle will suffice for this.
Review The Basics
I can't count how many times I have wasted hours on a bug only to find out that the mistake was very simple, a lot of developers hardly think to do this first, we humans are known to see our work from the lens of what we thought we did rather than what we did, a lot of times these mistakes come from boilerplate code we've written so frequently we don't think we can make mistakes withπ.
A study revealed that even well-known platforms like Wikipedia and Encyclopedia Britannica make an average of 2.92 and 3.86 mistakes per article respectively. If they can make mistakes, why can't you? π.
A developer who has more experience in writing code than I have in being alive (π€§) wrote an insightful piece that helps put a number to how many times we're likely to make these basic mistakes. I personally have lost tons of hours to mistakes that came from a missing letter π£.
Another reason why reviewing the basics is important is because if you're a newbie or working with newbies, you need to stop making assumptions as to what they know. I once spent some time debugging the HTML page of a newbie developer only to find out it wasn't working because there was no HTML tag in the code. Because I assumed, I didn't think to even look at the code, I kept mouthing off different solutions that couldn't work because, without the HTML tag, the machine didn't even know to interpret the code as a webpage!
Compare Text
When writing code or following along with a tutorial, there are times when you need to reproduce some text exactly as seen, if the text is fairly voluminous and/or is an encrypted string of letters, it can be somewhat difficult to notice subtle differences between what you wanted to write and what you should have written.
Luckily, tools like this can help spot these differences quickly. As much as possible, you should avoid trusting your eyes when it comes to comparing the content of two files or strings because we have a way of seeing what we want to see rather than what is.
Compare Versions
As developers, we leverage a lot of tools, SDKs, packages, and the likes, so much so that we often underestimate the consequences of installing the latest versions of our favorite tools. For newbies especially this can be a huge mistake. When leveraging tools that you're used to using, or are using for the first time (while following a tutorial), it's important to take notice of the version you're used to using or the version used by the tutor.
Often, the reason why code that should work doesn't work is that the tools you're utilizing are a different version of the tools you should be utilizing. Aside from software development, you need to be familiar with software versions in order to implement software supply chain security and protect your code (and organization) from exploitation π.
Get An Extra Pair of Eyes
There's only so much you can see on your own, asking for help isn't always a copout, there are some challenges that can't be compared using tools, and you need someone to spot these extra evasive mistakes. I once had challenges with an API till a colleague pointed out that there was a typo in a particular payload parameter that was preventing me from retrieving value (for that parameter).
Restart Your IDE/Code Editor
I know this sounds funny, but it works. A lot of times, your code has no bugs, your code editor/ IDE (Integrated Development Environment) is probably just hallucinating π. If you're very sure you did nothing wrong, or you're seeing so many errors that don't make sense, try restarting your tool.
I think we take for granted the number of complex operations our computers (and tools) carry out in order to respond to our orders. At times, this can be overwhelming for the machine which is why restarting seems to solve a lot of problems (even PC problems).
Clear Your Head
Some bugs can wear the mind really thin especially when it's a project that has been fraught with many challenges. To avoid losing your cool, it may sometimes help to go for a walk, and if you feel too exhausted to do this, try going to the bathroom and washing your face, I find it just as refreshing.
Use A Formatter
We exchange information across the internet in various ways, sometimes your work may involve composing these exchanges using JSON, XML, XAML, and the likes. You're likely to make mistakes and it's ok. If your payload isn't delivering, I suggest you try using a formatter like this to help evaluate the payload you're trying to send and offer corrections.
Seek Help
Strength in numbers is really a thing in this line of work. Asking for an extra set of eyes on work you've done is a lot different from asking for help. At times your code isn't efficient enough, at times a code snippet or two is all you need, at other times the error you're battling with is something that someone else has surmounted and can show you how to.
Online communities like Stack Overflow, social media group chats of like-minded developers, or your colleagues at work can bail you out of a tough situation and save you hours of beating yourself up π .
Read The Documentation
I hear some developers will rather chew sand than do this π. I think as a developer, one has to get comfortable with reading documentation on the programming language and/or tool you're trying to leverage. Your ability to grow is somewhat nestled in how well you can feed straight from the source.
Sleep
Yes, sleep π and I'm not the only one who feels this way. Sleep is one of the best debuggers out there! sometimes your mind is exhausted, and if you can get just a bit of shut-eye, your subconscious can ruminate on the code long enough for you to either wake up with a solution or wake up feeling refreshed to soldier on in your battle of resolve against the machine π€£.
Finally...
This isn't an exhaustive list, you're welcome to add yours in the comment section. Ultimately, your experience with software development is greatly influenced by how well you ride out the lows, some days you'll feel like you can do this forever, other days you'll feel like you can't take it anymore. Software development takes a huge toll on the mind, hopefully this article takes some load off you π.