Home DevAcademy Foundations Blog Outreachy Internship Blog

Andria Hibe

DevAcademy Foundations Blog

Problem Solving

30 September 2019

Whatever our background is, we’ve faced tricky challenges and have had to navigate confusing situations. Whether that’s making outlines to break down into smaller chunks the research paper we need to write, talking to a friend to help us work through a problem at work, or even just Googling things or asking a message board to see if anyone has been in the same situation as us, it doesn’t take a tech background for anyone to build up an arsenal of problem-solving techniques that works for them.

Given that at its core being a developer is being a problem solver, it is even more important now to hone, improve, and add to these techniques to make sure that the problems we face won’t overwhelm us.


Reflect on how confident you feel using the problem solving techniques and process:

Pseudocode

I do this a lot now ever since I started doing coding challenges. I find that I get confused easily on what I need to do and get overwhelmed so breaking a problem into smaller and simpler problems makes it less daunting and easier to solve.

I’m still getting the hang of it but I find that practice does make it easier as well as just generally increasing my knowledge and skills.

Trying something

This is definitely the best way to answer the niggling “what if I do this” questions that always pops up in my head when trying to solve problems. I do try to think through first how what I want to try could solve the problem instead of just going straight to trying everything my brain comes up with a la throwing things on the wall to see what sticks

Rubber ducky method

This one I’ve done for years even though I’ve only started coding. Whenever I get stuck on something, I tend to talk myself through it as if talking to a really dim child and end up figuring things out before I even finish what I wanted to say.

Now that I’ve started coding, I try to explain what I’m trying to do, how I think I’m going to achieve that, and what’s happening once I’ve done that. I found that this has been really effective in figuring out which parts of my code I’ve messed up!

Reading error messages

This one I definitely need to brush up on. I do read the error messages but oftentimes they make me even more confused, especially some of the JavaScript error messages. The more I learn, however, the easier it gets so I’m confident that I’ll get better at this as time goes on.

Whenever I come up with an error message that I don’t understand, Googling it tends to solve it pretty easily since someone else would have no doubt asked the same question already!

Console.logging

Console logging is one of the first things I do to (1) make sure I’m doing things correctly and (2) to figure out what I’ve done wrong when I inevitably end up in error hell. This is definitely one of the problem solving techniques that has been the most effective for me.

Googling

The ol’ reliable. I do try to figure things out on my own first before going straight to Google and I definitely avoid Googling solutions to coding challenges as that defeats the point but at the end of the day, someone on StackExchange would have already asked the same questions I want to ask and gotten ten good solutions for it.

When I find the solution to my problem, I try my best to study it instead of just copy-pasting and understanding why the solution worked so I can try it for myself.

Asking your peers for help

Oftentimes I hesitate to ask my peers for help, especially when I feel I can tackle a problem on my own. If I do ask them for help, it usually means I need a sounding board rather than me actually wanting to rope them into acting like my teammate.

Asking coaches for help

Similarly, I also hesitate to ask coaches for help. I tend to think of their guidance and advice as something to seek as a last resort, especially if I am expected to be learning from them. I would rather take what they’re teaching and learn and apply it by myself first rather than asking them to clarify and help solve a problem I have.

Improving your process with reflection

This is something I’ve been working on recently. Reflecting and improving your process through that is a big part of this program, and I’ve realised it is quite effective.