Why should any developer starting out solve coding challenges?

Abiodun Olowode
4 min readJul 2, 2020

--

An image with a text ‘DO MORE’

First of all, let me start by saying that the ability to solve coding challenges is not a measure of how good a programmer one is. At your job, you’re most likely not going to be reversing a linked list. Nevertheless, you’re going to be faced with several problems which require you to have a firm grasp on data structures, so you can pick the most suitable for a situation, as well as time and space complexities, so you can improve performance.

You don’t want to be the developer who makes the app crash because of how slow their newly introduced changes have made a particular process. If you want to be a developer who utilizes his understanding of programming languages and tools to formulate more efficient processes, solve problems, and create a more seamless experience for users, then this is a must-read for you.

Constant Re-evaluation of your Problem Solving Methods

You are first a person before you are a developer. As a person, coding challenges are a means of improving your ability to think logically and solve problems efficiently. If all your friends gave you their shopping lists on your way to the grocery store, and you had a time constraint but still wanted to shop for them all, how would you go about it? Would you pick the first list, walk through the different aisles in the store to get what is on it, and then repeat the cycle for each of the lists? Would that be time-efficient? What if some lists had similarities and you realized you could have bought that particular item for everyone that needed it, instead of having to go to the same aisle a couple of times?

Do you remember how when you are at the grocery store, you always lose a couple of minutes looking for the aisle that contains what you want? Imagine how many minutes you would lose if you had to do that per list. To save time, would you on your first list, indicate where you found each item, so if you came across that item on another list, you would already know where to find it and can visit the closest aisles first?

I would leave the algorithm of this to you, but this is a typical example of the things we face in our everyday life and how solving coding challenges helps us think about efficient and optimal solutions, not just solutions.

A Peek into how your mind works

These days, more and more employers are realizing that a great developer does not need to be familiar with the stack a company works with, he can easily learn a new framework or a new language. As a result, they search for programmers with excellent problem-solving abilities, after all, why else would anyone want to hire a programmer if not to solve problems?

Imagine you were being interviewed for a role in a recruitment company and your interviewer tells you that they want to be able to give statistical feedback to their clients detailing how many applications were received per day and he hands you an array containing application objects that have a date property.

How would you convert this data into the required statistics? Would you use brute force, would you create two loops, would you use a hash, are you a sucker for in-built methods like ‘.count’ or do you prefer doing your stuff manually? These and many more questions go through the mind of the interviewer. They just want to know your approach to providing solutions.

Constantly solving coding challenges trains your mind to be able to think of several ways of doing this and also indicate the most efficient solution and why. You are also able to think of test cases and the million things that could go wrong when users interact with your application as with coding challenges, you realize that there are many edge cases you may not have considered.

Image with different words for ‘solved’

Don’t sleep on it

A common phrase among parents is ‘Let me sleep on it, I’ll get back to you’. This is not the kind of response an interviewer wants to hear when they ask you for something as simple as the statistical feedback we talked about earlier.

Building up your brain to easily identify patterns by solving coding challenges, makes it easier to come up with solutions faster. You don't want to come up with a solution two days late, why not train now? I agree that some coding challenges are hard and you might be scared of failing, but who hasn't failed? We all have at one time or another and failure is nothing new.

The goal here is to use these challenges as a tool to train yourself to identify patterns, pick the best data structures and improve performance. In your journey to landing your first job as a developer, this could come in handy!

--

--

Abiodun Olowode
Abiodun Olowode

Written by Abiodun Olowode

An avionics engineer turned software developer with an unquenchable passion for explaining programming concepts, and asking deep questions about life.

No responses yet