Most people try to hide away from pain and struggle. Instead of learning how to deal with it properly, they spend all the time in the world finding ways to avoid it.
Realizing how important it is to stick with things you are struggling with until you master them is a key skill for programmers to learn, especially because it is a field where things are constantly changing.
Do you want to be like the average person who spends most of their days trying to find ways around the struggle instead of taking the problem head-on and overcoming it? I chose to overcome the problem, and I hope after reading this you will too.
Today, I am here to tell you why struggling is important for you to continue growing as a developer and how to change your attitude so you can embrace it!
What is Struggling?
We have all heard the phrase that a friend was struggling with something, or completing that task was a struggle. What does it mean, though? Let’s clarify this so we can know exactly what we are talking about in the rest of this post.
From Google definitions service, we get the following:
Struggling: strive to achieve or attain something in the face of difficulty or resistance
OR
Struggling: have difficulty handling or coping with
It is when you are facing a tough challenge and you are trying to find a way to overcome it. If you choose to give up or drop the struggle before coming out on the other side, you end up losing all the benefits and growth you can gain from struggling. You are simply trying to cheat.
In terms of programming, you can struggle with plenty of things. You can struggle to learn a new piece of technology when not much documentation about it exists yet. If you persist through the struggle of learning something most people do not know, you end up becoming one of the most highly desirable people in that field of expertise. Or at your job, when you are dealing with a customer who wants certain things done before an impossible deadline. How you deal with the customer to make them understand the time it takes to get something done can determine your future with that customer. If you succeed in handling the situation, then you now have better communication skills and can take that with you the next time you have a similar issue.
Perseverance is Key
When you are struggling with something, you are trying to do something you likely have not attempted to do before, or it is something you have attempted but gave up. When you give up, you do not learn how to do the thing you set out to do; instead, you are in the same position as you were when you started. Let me clarify this with an example:
John is a programmer. He spends all of his time developing iOS applications and he is very good at what he does. Recently, the web developer at his company left to find another job. Now they need someone for this position.
John knows nothing about web development but always had an interest to learn. So he decides he is going to learn it on his own time so he can take the position. He comes home from work that day and starts to build a basic web app with a server and a client. He follows a tutorial and has a basic web application working, and he tries to build his own application on Day Three.
All is going well, til on Day Five he runs into a bug and his server will not start. He spends the next three days trying to solve the bug, but he decides web development is too hard for him, gives up, and sticks to iOS development.
John had a dream of becoming a web developer, but since he gave up in the middle of the struggle figuring out the bug, he will not become a web developer. Let's change the end of the example, so we can see how he could have grown from the scenario if he had stuck with it.
All is going well til Day Five, when he runs into a bug and his server will not start. He spends the next nine days researching everything that could be wrong with his server in order to fix the problem. He posts a question on Stack Overflow, and asks old colleagues for help. On the ninth day, he finally figures out he was listening on the incorrect port. He can now continue to teach himself.
After three months of doing this on the side after work, he shows his manager what he has been able to accomplish. His manager likes what he has done and John is now working as a web developer half of the time!
Now what was the difference-maker here? John was able to continue pushing through the problem he was having. After a few more days, he finally solved the problem, learned from his mistake, and could continue with his learning.
He decided not to give up. And because he did not give up, he was able to push forward and become what he truly wanted to become: a web developer.
It is the fact that you choose to fight the struggle that makes you stronger. When you fight the struggle, you are setting a habit for yourself not to give up, no matter the circumstances. If you never give up in scenarios where most people will, you will not be like most people. You will have the new lessons learned from the struggle.
Opportunities to Grow from Struggles
Growth through struggles does not only take place when you are trying to solve a bug (although this is where plenty of learning does happen in programming), but also in every moment in life when something does not come to you easily.
When you are facing a tough time with your family members or friends, this can be a time to show that you truly care about them and want to keep those relationships in your life, or you can show you do not want them in your life. In times when you are trying to overcome an insecurity, you can let that insecurity control your life or face the fear by struggling through it and overcoming it.
The times when struggles are presented to you can be every single day of your life or maybe very rarely. I like struggles; they cause me to elevate my skill set in a certain area to the next level. You must change your mindset to learn to embrace them rather than hide away from them.
Changing Your Mindset Toward Struggles
Now is the hard part (Oh, look, this is your first test with a struggle!). You have probably been told to think of struggles as a bad thing your entire life, but you must learn to find a way to turn them into positive things. It will not be easy and most people will not be able to do it.
Try to see struggles as learning opportunities. When you are struggling with something, you are missing some knowledge that you do not have yet. The knowledge you are missing comes from the struggle itself. If you learn to take the struggle to the finish line, you will fill that knowledge gap. This quote always helps me get through struggles and battles in life when I think all hope is lost, by reminding me that there is a benefit to every single struggle:
“Every adversity, every failure, every heartache, carries with it the seed of an equal or greater benefit.” – Napoleon Hill
Repeating this quote as an affirmation will keep you focused on the fact that within every problem, there is a greater benefit. If you look for that benefit instead of having a negative mindset toward it, then you can be more motivated to overcome it and know that backing down from that struggle is not an option if you want to be more in charge of it.
Fight Your Struggles!
Now is the time for you take action. You understand how important it is not to back down and make sure that you stick with something until the problem has been overcome. You know that your mindset needs to change from the many years of mental programming and thinking that has caused you to believe that struggling is a bad thing.
As programmers, growing from struggle is something that should be part of your daily routine. When you notice a problem, you should stick with it and attack that problem as best as you can so you can learn the lessons in it. This may come in many forms, such as fixing a deep bug, learning a new piece of technology, or dealing with coworkers and customers.
Today is the day you make this change. Go out and start fighting your problems head-on and see how much stronger of a programmer, coworker, friend, family member, and human being you will be from it!