It’s inevitable: all computer programmers, web developers and software engineers, no matter if they are novices or experienced, get stuck at some point. That’s why learning to work through frustrations is an incredibly important skill all aspiring programmers need to learn.
Ironically, it is a skill that is not covered in most books and courses. For this reason, those who are learning a programming language for the first time are often surprised when they encounter roadblocks. If you’ve had this happen, you know how frustrating and demoralizing it can feel. The process often goes like this:
How It Happens
All of these scenarios can feel demoralizing, and if the reason you’re reading this article is because you’re stuck and feel like you’re going insane, take a deep breath. We are going to explore why this happens and give you a road map to manage your emotions throughout the process of trying to solve your problem. After you’re able to work your way through the issue you’ve encountered, you will have battle scars to discuss in formums.
Okay. Enough about that. We are now going to uplevel your state of mind and get you out of your mess.
Getting Stuck is Normal
Before we attempt to solve your problem, the first thing I’d like you to understand is getting stuck is normal. This is important because as a new programmer, when you get stuck, you may not have realized it would happen. You might even feel like there is something wrong with you and you can’t learn these skills. If that is what’s happening, the first thing you need to know is that what you’re experiencing is part of the process of thinking through a tough problem and it’s completely normal. If you can adapt this mindset, it will help you approach your issue with a clear mind rather than get embroiled in the problem you’ve encountered.
It Happens to Everyone
Yes, that’s right. It will also help to remember: getting stuck happens to everyone, even experienced web developers and engineers. The first time I discovered this in a professional capacity, I was doing some QA (Quality Assurance) at the ad agency where I was working. I discovered a problem with the new web app we were about to deploy. It did not look right in Safari, and we were right up against the deadline. Timidly, I went to approach the engineer. He silently closed his eyes and rubbed his temples as I told him what was happeneing. I then left him to his work so he could try to solve the problem.
A few minutes later, I walked past his desk and saw all the web developers at the ad agency were rallying around him, trying to help him work through the problem. They solved the problem eventually, and the web app deployed only 30 minutes behind schedule.
The point is, my former co-worker did not solve the problem alone. He had a team of talented and season web developers around him to help work through the challenge. Many times, when we’re learning to program, we are on our own and don’t yet have a supportive community around us yet.
Research, Research, Research
So how do you work through frustrations if you’re working on your own and don’t have a team of co-workers around? You must research the issue yourself and know where to look for help. The first step is either type your error or the search terms of your issue into Google or Stack Overflow. As you research answers, you will probably alternate between the two, refining your queries as you learn more about the issue.
If that doesn’t work, take a break for a short bit and then try to work through the problem again. And if that still doesn’t work…
Release Frustration and Find Your Sense of Humor
I will share two techniques that work surprisingly well for me:
1. Beat an old pillow: If there isn’t anyone else around, you can shout as you beat the pillow. After you have released your pent-up frustrations, it helps to do something physical, like going for a walk or doing some cleaning. Just being physical after sitting at a computer for hours can bring a new level of clarity to what you’re working on. Once thrity minutes or so have passed, try working through the problem again.
In the interest of full disclosure, I will tell you that the list of ways to get stuck are all examples from my own experience:
- Getting an Email Form to Work: Did you know that it takes a surprising amount of PHP to get an email form to work properly? Alas, I discovered this is an advanced beginner or intermediate-level task when I was just starting to learn PHP.
- Stuck on a School Assignment: The only thing worse than getting stuck on your own is getting stuck when you’re in a class and people half your age are flying through the exercise. I joined an expensive bootcamp but had to drop out because I couldn’t keep up. I ended up learning the material eventually, but I needed a lot of time to experiment and look things up on my own when I got stuck.
- Unclear Documentation: Reading and understanding the documentation for the programming language you’re trying to learn is an important skill to master. However, it’s important to remember that documentation is written by experts for experienced programmers. If you’re finding that there is too large of a gap between the language documents and your current understanding, a decent programming book or course can help you bridge the gap.
I shared these expereinces with you to reinforce that getting stuck is a normal part of the process of working through a problem. If you’re interested, you can read about my battle scars on Quora, where I am very transparent about the struggles I’ve had learning how to program.
I hope this article will help you remember: getting unstuck doesn’t need to be a laborious process. Sometimes it is a matter of learning a little more and gaining experience. Other times, we are stuck because we are mired down in our own negative emotions. Research can help you work through the first challenge, and the techniques covered here to release frustration can help you with the second scenario. And remember, you can always ask for help in forums like Quora or on Stack Overflow. Web developers, programmers and software engineers like solving problems, and many of them enjoy helping those with less experience.