The 2 Mindsets to Help You Tackle Hard Problems
And keep easy problems interesting.
Hello there!
Welcome to Algorithmically Speaking, where we discuss topics on the intersection of Computer Science, Software Engineering, and life.
Last week, I got an interesting message from a user on Reddit regarding the mindset aspect of problem-solving. Paraphrasing a bit, he said that when faced with a problem he thought was too easy and almost straightforward, his brain automatically considered it boring and refused to attempt it. On the other hand, when tasked with a challenge such as “building a neural network from scratch in the Java programming language“, his disposition to try this would be higher because he considered it more challenging.
In his case, the downside was that he had been asked to solve technical problems on coding interviews a few times, and these problems leaned more towards the easy/straightforward side. At times, without the required practice on these types of problems, he was unable to solve them with the required level of quality and efficiency.
So, today, I will discuss the different mindsets one should adopt when facing various tasks. Ultimately, everything boils down to how much you care about the task at hand and what it means to you.
Buckle up!
The Mindset Shift
Most of what we do in life is a combination of tasks of varying difficulty. Our regular activities fluctuate between those that require more effort and focus and those that require less.
Do too much of the first one; you might feel drained after a few days, weeks, or months. No matter what your threshold for hard work is, if the only thing you do is hard work, you will burn out.
On the other hand, if you do too much of the second one, you will find yourself navigating a life without purpose.
The key is to balance pushing your limits by doing hard things and staying in your comfort zone when it is important. Let’s dissect this further.
Why Attempting Hard Problems is Important
I’ve talked about why everyone should include doing hard things in their daily routines before.
Discipline is practice. It does not come with character as a trait; it is not a feature you can turn on and off. The more you practice hard things, the more comfortable you will be doing hard things. The best way to practice discipline is to do something hard, then another one, and another one after that.
If you want to start building up your discipline, start modestly. Don’t go all-in on improving your fitness or growing your business. Don’t make it too easy. It needs to be something complex, something that makes you think before getting into it, something that causes some friction.
When I was an active competitive programmer training for the International Collegiate Programming Contests, I included study sessions in my week to try to solve the problems I was not able to solve in real-time in the competitions I participated in during that week. Why? Because that was the best way to keep pushing my limits, learning about new topics, and improving at implementing specific solutions.
My team and I had a simple training strategy for a week. It consisted of cycles of competition days and upsolving days. If this sounds familiar, it's because it’s similar to the practice-performance feedback loop. So, first, we would participate in a programming contest and do our best, and the next day, we would focus only on the problems we could not solve the day before. We would do this once or twice a week during the competitive season.
The compound effect of this process starts to show up eventually. As we progressed during the season, we got in better (mental) shape, and the results were much better. This simple but effective strategy led us to win two Regional Championships and participate in two World Finals.
Why Easy Problems Are Important
But the fact that doing hard things or solving complex problems is fundamental for pushing the boundaries of our capacity doesn’t mean that we should stop attempting easy tasks. We only need to know why we should try them instead.
If the technical interview problems lean more towards the easy and straightforward side, but you care enough about getting hired by a tech company, that should be your motivation to keep practicing these problems.
Returning to when I used to do competitive programming, my team and I used to practice detecting which was the easiest problem in the whole problems to maximize our chances of solving it first during competitions. Why? Because it mattered to us. You got an extra price for a “first-solve”, and the pressure the other teams felt when they realized someone had already solved that first problem was often a determining factor.
So, yes, we practiced typing fast and skimming through chunks of text to find the shortest statement because it often correlated with the most straightforward problem.
The most relevant example that comes to mind when talking about the importance of mastering easy problems is education. Now, I’m not saying that the topics of, let’s say, the majors in any subject are trivial. But imagine yourself being the professor who has to teach a course on a specific topic every semester or even to two different classes on the same day.
If he has been on the job for long enough, that teacher knows the subjects he teaches to the point where most things seem obvious and almost trivial to him. But that does not mean they are not important. Mastering these subjects increases the quality of the lessons taught every semester and, as a consequence, the chances of the students learning them.
Only by mastering these topics can the teacher experiment with different ways of communicating the content to his students and finding what works best.
When the mindset shifts from “this is easy for me“ to “this is difficult for my students,” revisiting these topics still has value — the value of teaching.
Conclusions
To summarize,
Whether to prioritize doing hard or easy things is a matter of choice, but ultimately, both types are essential. You need to know why they are essential to you.
Attempting hard things pushes the boundaries of your capacity and trains your discipline. You become more used to doing hard things by doing hard things.
Doing easy and straightforward things still has value, but you need the right mindset to understand why they matter to you. Education is the perfect example of a situation in which people (in this case, the teachers) keep revisiting topics until they consider them trivial just because there is value in mastering these topics in order to teach others.
And that’s it for today!
Did you like this article? Make sure to 🧡 click the like button.
Do you have any feedback? Make sure to 💬 comment.
Do you know someone who would find this helpful? Make sure to 🔁 share this post.
Here is how I can help you further
Interested in sponsoring this newsletter? Please reach out.
Want to work with me? Book a call, and let’s collaborate.
Interested in my book? Check it out.
Get in touch
You can find me on LinkedIn and GitHub.
This newsletter is funded by paid subscriptions from readers like yourself.
If you aren’t already, consider becoming a paid subscriber to receive the whole experience!
Please let me know if you want me to cover any specific topics of interest to you. I’m more than happy to do so.
Have a great day 🌞,
Alberto