Sprint 4 - Technical

Problem Solving


A story about a time I got blocked on a simple problem

In one of our challenges we had a game that as you clicked on the dots they changed colours. The last part of our challenge was that we had to write some code to count the colours of the dots and updated the live counter to how many dots there’s were on each colour. I did so much research I thought the problem was complex when really it was quite basic.

How did I solve it elegantly you may ask?

I remembered that we actually did a few challenges on freeCodeCamp on a problem similar to this. I was able to go back and do a couple of similar challenges which helped me to realise the problem was bot so complex and sort it out.


SO What was the Problem

The main problem is that I keep overthink problems and assuming they are harder than they really are.

What problem solving techniques did I use?

My main problem solving technique I used were Google, just trying out different things and asking others for help.

How did I feel throughout the process?

It was a mixed bag of feelings throughout. And the points where it felt easy I felt like I could really do this and that I was getting better. However when I got stuck, I really got stuck and at times questioned if this was a good career path for me. Very easy to get caught up in self doubt when you're in amongst it however when I can remove myself from the situation and get perspective I am amble to get my head right and I don’t often stay in that mindset for too long.

What did I learn?

I learnt that no matter ow hard something may seem there is always a way through. And if what you’re doing is not working then try something new until you find it.


Different problem solving techniques and I feel about them.

Pseudocode ★★☆☆☆

Pseudocode is a problem solving technique specific to coding. It means to write out basic instructions on what you want your code to look like or how you want it to work. It is done by writing comments in your code using // or /* which leaves just very basic instructions for you to refer to as you go.
Pseudocode can also be used as instructions or explanations for other coders who may be accessing or completing your work.

Trying Something ★★★★☆

Trying something is such a useful and underrated way to find out if something works or not. By trying things out you are able to use a process of elimination and usually as you are trying out different things you are also learning as you go. I usually like to follow the rule "try something twice and on the third try... Google"

Rubber Ducky Method ★★☆☆☆

The rubber duck method comes from a book where programmer carried around a rubber duck and when he hit a bug would force himself to explain the code line by line to the rubber duck. The basis behind this method is that as the coder is being forced to explain what the code is supposed to do and what the code is currently doing they can usually find the discrepancy between the two and therefore can figure out how to fix the code.
It's not the rubber duck in this method that is important, you can use this method with any object you like. Its the explaining out loud that is usually what helps the coder find the problem.
I have not yet used this method but definitely plan on trying it out when I hit a problem in my code.

Reading Error Messages ★★★☆☆

Reading error messages is something that just comes with time and practice. The more you make mistakes and get error messages the more familiar you get with them and are able to recognise what the issue is. Some errors now I immediately know I have forgotten to export something or maybe have an extra comma somewhere. However some errors can really throw you a curveball.

Console.logging ★★★★☆

Console.logging has quickly become one of my new best friends when trying to write JavaScript. I find it very helpful to console.log as I’m going to see if I am on the right path or not instead of writing a bunch of code and then having to try and figure out which part of it is not working.

Googling ★★★★★

Googling has probably been my #1 problem solving technique for years now. Whilst it may seem very easy and straightforward sometimes if what you’re trying to find is quite technical what you actually type into the search bar can make a huge difference. However if you know how to word your questions correctly Google can be one of the greatest problem solving tools and can almost always provide the answer you are looking for.

Asking your peers & coaches for help ★★★☆☆

Whilst asking Google for help is great sometimes it just can’t compare to asking your peers and coaches for help and being given help "kanohi ki the kanohi". Asking from someone who has probably experienced the same thing and can either help explain things to you better or to help guide you to finding out the answer for yourself is one of the best ways to learn and solve problems.

Improving your process with reflection ★★★☆☆

“What you don’t assess, you can’t improve” - Using reflections as a way to assess where you are, how you are going and what you may be doing right and wrong is such a great way to improve yourself and solve problems. By actually writing these things down by journaling or by saying out loud to someone else means you can find exactly where and how you can improve and be better or what you may need to fix.