Hi everyone! I've been struggling with problem-solving, not just in coding challenges like LeetCode, but also in day-to-day activities such as figuring out new places, playing chess, or solving puzzles in escape rooms.
People often say that to get better at something, you just need to do it more. For example, solve more coding problems to improve in LeetCode, or travel more to get better at finding your way. But I'm wondering if there's a simpler, overall way to boost problem-solving skills that applies to various situations. Are there any general brain exercises or techniques that could help make problem-solving easier across the board? It feels a little disheartening to constantly see other people being smarter than me when learning new things or navigating things on the fly.
This question might seem a bit broad for a software engineering group, but I'd really value any advice or tips you could share. Thanks a lot!
I have been there, and I can assure you that it might be a good thing to feel "other people being smarter than me". That means there is a growth opportunity, and you have the right amount of motivation fuel to improve. With some practice, you would be far ahead of those "other people".
When I had "not good" problem-solving skills and felt "not smart", I tried some challenges on Brilliant. They were fun and required good amount of logic + problem solving. I was on free tier and used to do the daily challenges. For some reason, now I am not able to see the daily challenges, but a quick Google search landed me here and I can see the free challenges.
At the same time, I kept up with Leetcode. Doing 2 problems a day, mostly easy ones. But I used to spend a good amount of time thinking of the solution. A few recommendations from my side:
I hope it helps. Happy to answer any follow-ups.
One of the best intellectual (brain training) learning experiences I have had so far is studying:
Reading Aristotelian logic is one of the best learning experiences:
Also, you can relate that with modern logic theorists, like symbolic logic (related to discrete mathematics, I remember that there were some programming languages that uses this kind of logic).
For philosophy, my suggestion is not be dogmatic with a philosopher or a philosophical theory (it happens).
For brain training purposes, the Introduction to Objectivist Epistemology book, from Ayn Rand. This is like the upgraded version of Aristoteles philosophy. Goes more beyond: how we humans actually know that we know, and even if what we know really is true and how could we know it (Metacognition).
My personal recommendation is: if you have not studying philosophy, start with Greeks, their influence on Western history is among the most important in the world.
Here are some links you may find interesting:
I hope this helps!
...but also in day-to-day activities such as figuring out new places, playing chess, or solving puzzles in escape rooms.
These are all great ideas to keep your brain healthy and stay mentally engaged - You should try these!
To get better at engineering problem solving though, I highly recommend building side projects! If you can build a legit side project as an intern, you'll be so, so far ahead of everyone else. I built several successful side projects in college (one of them has 500,000+ users now), and you can too! I shared my process behind side projects here (check out the related resources in the description too): [Case Study] Building An App With 1,000,000+ Users To Get Into Facebook
When building side projects, I also recommend following the advice here: [Course] Level Up Your Code Quality As A Software Engineer
It feels a little disheartening to constantly see other people being smarter than me when learning new things or navigating things on the fly.
I can totally understand how this can feel bad because you are judging the rest of your trajectory based on this one piece of information. But, you don't know what kind of prior experience someone else might have that could have given them a leg up on that thing in that one moment.
It's more fruitful to focus on where you are at now and how you can improve that situation. Think more about how you can refine your process of how to get better at something.