How competitive coding can help your career
Competitive coding is one of the best ways to perfect your programming skills but not many Zambians get involved in it because they have just never come across it.
This post will give a little insight on what competitive coding is, how to get involved, and how it can help your career.
WHAT IT IS
Quite simply put, competitive coding is a mind sport usually done over the internet that involves coders competing to answer programming questions.
HOW TO GET INVOLVED
There’s an endless list of websites to use to participate in competitive coding. My personal favorites are CodeEval and HackerRank because their points system helps me track my progress and they have leadership boards that show me how I rank against different programmers across the globe in each language I code in.
Code forces has an awesome list of some of the best competitive programming websites.
HOW DOES IT HELP YOUR CAREER
So we know what it is and how to get involved in it. But how exactly does it help your career? I have come up with 9 different ways in which it does so.
1. It prepares you for technical interviews
I’ve had my fair share of interviews and 90% of the time, they are technical. I will normally be asked solve a clearly-defined programming puzzle. Because of the limited time in an interview, the puzzle tends to focus more on algorithms which will have quick solutions rather than on domain specific technologies.
The types of challenges found in competitive coding are almost identical to the ones found in technical interviews. In fact they are known to be harder than the challenges found in interviews. Thus, repeatedly solving puzzles through competitive coding prepares your mind to know how to approach the same puzzles in technical interviews without wasting much time.
2. Getting interviews
Many competitive coding websites partner with big tech companies like Facebook and Google so that if you solve a particular coding challenge, the prize will be an interview with said company.
In fact, if you’ve taken the time to really invest in challenges and have gained an exceptionally good rank in recognized websites, that will be impressive enough to include in your CV and will make you stand out from other developers.
3. Devising efficient algorithms
When I look at the code I used to write when I just started getting into competitive coding, I find it very naive. Sure, it would work correctly but with no consideration for the best memory, speed and readability. The more you practice programming, the more you start to focus on creating optimal functions.
In my opinion, what sets a good programmer apart from a great programmer is the efficiency of the programs they create.
4. Its fun
If you’re used to only coding for work, it can become redundant and consequently, your passion for coding gradually diminishes. Competitive coding is fun and addictive. The unique challenges and the ability to monitor your progress keeps you on the edge of your seat.
This therefore revives your passion for coding and consequently improves your attitude at work.
5. Improved Coding Speed
When coding competitively, there is usually a time limit of a few minutes or hours. If you’re lucky, maybe even a few days. Either way, you will find yourself having to code in limited time. You get used to being able to look at a challenge, understand it, plan an approach to solve it and finally compose a solution all in a matter of minutes. With practice, your coding speed only gets better.
In industry, software development tasks will always have a deadline. Because your coding skills are optimal, you will be able to allocate time adequately and meet those deadlines easily.
6. Faster Learning
Competitive programming means you spend a lot of time learning new techniques and algorithms that in reality, you never actually use in real life. But the catch is, you get so used to learning a new technique with each new challenge and as a result your mind is trained to pick up new concepts faster than other developers do.
Programming concepts and technologies change every day so the ability to pick up on these quickly is no doubt a crucial skill for any developer.
7. Brain Exercise
Regularly creating algorithms and tackling challenges by taking part in these contests, is a way to exercise your brain. Brain training is known to improve your memory, thinking skills and problem solving skills which are desired employability skills.
This brain “work out” also helps you to not forget how to code. Programming is a skill that is based on practice. A degree or any sort of qualification really only gets your CV noticed. But you have to regularly practice your trade to be better.
8. Focus on the fundamentals
If you learnt programming the conventional way, that is by obtaining a degree, you will know that the topics covered are standard: data structures, discrete mathematics, recursive algorithms etc. Competitive coding will always focus on these Computer Science fundamentals which as you get more specialized and advanced in the field, can be easy to forget.
No matter how skilled you get, you cannot claim to be a programming expert if you have lost sight of the fundamentals of Computer Science.
9. You get to master debugging
The ability to debug code is a crucial part of competitive coding. Unlike code written for industrial purposes, code written in challenges should either work or it doesn’t. There is no middle ground.
So most developers who haven’t mastered the art of debugging will accept code with errors as long as 90% of it works fine. Competitive coders aren’t used to accepting the bare minimum. It should either work perfectly or not at all. This makes them incredible debuggers and that is an insanely marketable skill.
What do you think about competitive coding? Can or has it helped your career? Leave your comments below…