As software engineers, our job is to solve problems. And the reality of the job is, getting stuck sometimes. Please do not think you are less of a software developer or engineer just because you get stuck often. It's part of the job!
This is my 2nd submission for the Hashnode #4article4week challenge.
In this article, I'll outline a few things you can do to be unstuck. No matter what your stack or your problem, this process will be useful in finding the solution.
Yeah. It sounds basic, but I can't even count how many people skip this. Just take the error that is popping up or the situation that you are in and Google It! It's half our job! Here are a few tips on how to google it better
Write it down!
Okay, most of the time, you'll just get the answer on google. But if you don't, it's time to get your writing skills out. Just write down the problem you are facing, the probable causes, and the feasible solution you can think of.
Sometimes, just doing this helps you think of a solution. Writing helps you understand the problem better. You solve stuff better if you understand it.
From now on, take time to document your understanding, possible solutions and everything. I know it's a lot of effort, but it's worth doing.
Okay, again a basic one, but Read the F ing Manual!** The excellent engineers behind the tools you use are also kind enough to write documentation. Treat it as the single source of truth. Understand how things work. You might find a solution or a better understanding to think of one.
You Ain't a Snowflake
As much as we want to feel like snowflakes, we aren't. At least in the context of building software. Your project might be different, and the problem might feel different, but chances are someone faced this issue before. So look for people who were where you are right now.
Search on forums, GitHub issues, stack overflow, and maybe even subReddits.
Take a Break!
If you still haven't solved the problem, take a break. Fresh eyes are amazing at giving new perspectives. You don't need someone else for fresh eyes, you can just take a break.
When you'll come back to the desk. Read what you wrote down. You'll get a different perspective. You'll get more ideas. Write them down and start experimenting.
I've seen many people do it. I've done it myself. We tend to work on research about a problem and forget to experiment with them. You don't need the perfect solution. Just start implementing one and remember. Git is your best friend in this. Don't mess up your progress because you forgot to commit stuff before your experimentation.
Ask For Help
Once you've done everything you can, and written everything down. Ask For Help. Rephrase your documentation into a consumable summary and ask for help. Reach out to seniors or colleagues and send them the document. This way you don't waste their time as you have the resources upfront.
While you talk to your seniors, put the internet to work. Take the question you asked your colleague. Also, post it on online communities like
- GitHub issues of the technology
- SubReddits like r/webdev r/programming and even specific ones to your technology
- Discord servers
- Twitter (reach out to me at @kavii_suri)
Share! Share! Share!
Once you're at this stage and hopefully have found a solution, remember to share. Why? Because the software community thrives on this. Remember how I said someone faced this issue before? Well, be that someone for someone else.
If you can help at least one person, that's worth it! Of course, there are benefits of posting online: personal branding, and networking but in the end, this isn't just about that, it's also about giving back to the community that supports you every day.