Let’s learn about… breaking the wall

How many times have you found a wall when you were coding? I don’t mean a weird bug or a method hard to debug. I mean a big, thick and hard wall.

A problem you don’t know how to solve, a feature you want to add but you don’t even know where to start, or when your client asks you to implement something but you don’t know how to make it work.

Resultat d'imatges de facing a wall

If you have been programming for a while, you may have faced one (or all!) of those examples. I know I have. And how I felt when I had them.

My case

As I said, once I faced a big problem I didn’t know how to solve. I was clueless about how to solve it and the situation went bad. It went from “I don’t know how to solve this” to “I am going crazy”, as hours and even days passed and I didn’t had any idea how to solve it.

And then, you start thinking if you deserve having a job at the company. Or a job at all. I even thought of leaving my job because I spent a week to implement a feature and I didn’t advance a single line.

I have tried everything I could think, I asked Reddit, StackOverflow and other forums and no one helped me.

Being the only employee at the company, I could not ask anyone for help.

Then, after days passed I start asking myself if I should resign or not. I felt like I was tricking my employer doing nothing, just being a dead weight.

I had that thought every day. Every night. I even had dreams about how I should solve that problem.

Believe me, I’m the last person you will see saying things like “If you can dream, you can reach it!” or “Smile, and everything will be possible”, but I said to myself “This time I won’t quit, I’m going to solve this, no matter what”.

And then I solved it. Not right after I said that sentence, of course, but after a day or two I found a solution. How I solve it is not important here. What is important is that I persevered. That you have to persevere. No matter what.

I tore down that wall, and that is the important thing.

Why it is important to break walls?

It makes you a better programmer

It makes you better programmer. That simple.

Once, you didn’t know how to solve a problem, now you know how to solve it. You have another tool in your belt and you grow as a programmer.

It makes you a faster programmer

When you faced the worst problem you had in your job, how much it took you to solve it? 2 hours? 8? 4 days?

And how much did you need to solve it the second time you faced it? Not even half, right?

When you solve a problem, again and again, the time you need to search for the solution (if you even need it…) and implement it, reduces considerably.

What it took you one whole day to implement, now it takes you a fraction in the morning, freeing you more time to keep working.

It forces you to learn things that few people know

How many PHP programmers know how to create a loop that iterates 10 times? And how many PHP programmers know how to reduce the time it takes to query the database in Laravel?

Learning things that other people don’t even think about learning, or even they tried only to quit, it makes you learn things that not everybody know.

Everybody can ask almost every Python programmer to print text in a pre-defined format, but how many Python programmers can create a dashboard in Django with async connection to the database that refreshes with every small change on a table?

Solving that kind of problems makes you grown, but also it pushes you forward.

I like to think that every problem is like a giant colander that filters people out. The more colanders you face, the less people are. And if you can pass through every one reaching the end, you’ll be one of the few people that can solve almost everything.

It makes believe you that you can learn anything

Once you have solved a big problem, once you have tear down a big wall, it makes every else easy to solve. What before was a problem now is just a small issue you have to solve.

But also makes you believe that if you set your mind, you can learn anything you need. After all, if you have successfully solved a big problem that no one could solve, why you can’t do it again? And again?

I don’t mean that you have unlocked something in your brain and you have evolved into something better than a human. It’s simpler than that.

You understood the value of perseverance and not quit. And that if you keep going, eventually, you will fix it.

Any much more

I can keep listing how many benefits I found. A self-esteem increase, new job opportunities derived of your learning, salary increase, etc…

But if you can only keep one thing after this post, remember that facing those walls is hard, but the reward makes it worth it.