What do you do when you need to think out of the box

It always happens to me I encounter an algorithm problem and man, I just can´t help but be trying continuosly the SAME approach.

Even though I tell myself, Dude, this approach its obviously not working, lets change! The “alternative” solutions are very similar. My mind is still trying to figure out the problem in the SAME way.

I need some advice into this. I know stepping out of the problem for a few days can help a lot, but sometimes lets´be honest we can´t do that.
When I see at solutions to challenges if i couldn´t figure out the problem, I can´t imagine myself coming up with that . It´s like my mind gets obssesed with one way of doing it can´t even imagine other ways.

Two things I would recommend that have helped me.

You need different options to be able to come up with different solutions so for JavaScript for example I would recommend reading thru https://javascript.info (it’s a large modern JS referance guide) to have the necessary knowledge base to pull from.

The 2nd thing that I’d recommend is going thru a course that teaches you how to break down algorithms and solve them. Including regularly occurring algorithm patterns. This course is what I’d recommend for the 2nd one. Make sure you do a google search for “Udemy coupons” to get it between $10-15 usd.

Both resources sound very interesting. Thanks bro

1 Like

There’s out of the box thinking, and then there is just expanding the box. Which one do you think is easier?

Usually most problems can be boiled down to a few common solutions, using a few common techniques. Thinking of these common solutions/techniques isn’t easy, but at the same time they are well known. So you can stand upon the shoulders of giants, and leverage known solutions to many problems, but you will need to find, and remember these known solutions, and apply them to your problem.

The key part is being able to leverage what you do know to solve problems, and having enough experience to cover most use-cases, which still be flexible enough to recognize existing patterns.

For example, you could think “out-side of the box” in solving a problem where you need to remove duplicates from an array, by implementing a lookup to a Javascript object. Or you could just use the Set class. Most use-cases are more complex than just using different parts of the UI, but almost all problems are “known” problems, with known solutions. As such, expanding your horizons to know how to find the answers is usually better than trying to figure them out from scratch.


Sorry my response is kinda generic, I don’t know what kind of challenges you are facing, so I can’t offer more direct advice :wink:

2 Likes

I find in troubleshooting code it is often more useful to ensure that you are verifying all of your assumptions, rather than trying to “think outside the box.” There have been countless times I have spent way too much time on a problem only to find in the end it was something stupid (i.e. easily overlooked) and I didn’t see it right away because I assumed something was or worked one way when it was not.

Also, try explaining your solutions or reasoning out loud to yourself, as if you were explaining them to someone sitting next to you. Sometimes just the process of talking a problem out you’ll discover a flaw in your thinking.

1 Like