Do I really need to practice online coding challenges?
The amount of code practice online overwhelmed me. If you’re unsure, don’t be immobilized into inaction. Here is what I know.
To self-teach programming in an era of endless online practice is both a blessing and a curse. The sheer amount of content available can be daunting to a newcomer.
When we take the time to learn something new, it is normal to expect a certain amount of reward for the efforts we put in. But the pay out for self-directed learning is not always that clear cut.
Many people wonder about the short and long-term effects of furthering their education. Will this help me land my dream job? Does taking on this extra effort guarantee a higher income? Do employers actually care about these certifications?
All innocent questions that make sense. In essence, they boil down to one thing. Am I wasting my time?
In my own software engineer journey, I’ve wondered the same thing. Of course, I know that tech jobs are some of the highest paid salaries around. I know that the industry is booming. I know the mega corporations benefiting from unfettered operations that maximize profit.
Yet, when it came to me sitting down at my machine day in and day out, I questioned if what I was doing was worth it for me. In some of the coding community groups that I am a part of, I see other people ask this same question in different ways. Is it worth it?
As humans, we are wired to receive a certain amount of reassurance. It is natural. To seek out an expert for answers about how we might get further in our own path is a great idea.
By asking critical questions, we have to open ourselves up to to answers that may be difficult to hear.
My short answer is: yes, you do need to practice online coding challenges. The long answer is that a single day does not change much. Complex skills require complex approaches. This stuff takes time.
I am not recommending a practice site to you, or, suggesting a study avenue. That isn’t what this article is about. There are tons of paid and free methods that anyone can find with a quick search.
I myself am yet to land a real programming job. I know that when I do find the right fit, it will be because I persevered through the ups and downs. I took the time to really figure out what I was doing and how I could improve.
My main piece of advice for a newbie feeling overwhelmed is to work on the confidence to fail freely. Like this, we can really learn the ins and outs of the language(s) that we study.
This is what it means to walk the path of an expert. Every successful programmer got to where they are with moments of doubt and failure along the way.
That being said, we are the ones responsible for celebrating our small wins. Without giving ourselves a pat on the back, we miss out on the unique gratification that comes from self-paced learning.
The other day, I took a second stab at an online coding challenge that I had already spent hours looking over. I already had a final answer, courtesy community forums. I went back to find my own solution, though.
In a matter of minutes, I did it. Actually, I solved the problem with an even simpler time complexity than the ready made answer. My solution earned 100% in terms of processing time and correctness. For a moment, I was stunned.
If you’re like me, you practically have a PhD in being your own harshest critic. It would have been familiar for me to brush off the small win. I could ask myself a mean question, like: why did it take me so long in the first place?
Instead, I treated myself fairly and with compassion. I am learning something that I have never done before. I deserve to take my time in finding the answers and reveling in them before moving onto the next problem to solve.
Actually, this is part of what makes programming so fun for me. I bring myself to my machine with a sense of wonder, rather than a sense of dread. In that way, I am already successful.
I hope anyone reading this who doubts themselves can take a chance on making a mistake. After that mistake (or many of them), we can partake in truly gratifying success. That is, if we’re ready to keep going.