Why Attending a Coding Challenge is Definitely Worth It
Written by Valentyn Kuznietsov, Software Engineer iOS Cardio
For the last ten years, I have been an iOS developer and the essence of software development never ceases to amaze me. Programming is an art form. The way we think when faced with a challenging problem, our willingness to design things, and certainly, coding defines our profession.There’s only one catch: no one is born with these skills. They take years of practice and a lot of learning and failing. Putting your coding skills to the test in a coding challenge gives you the chance to prove yourself and your expertise. Here’s how it works:
First of all, a coding contest typically consists of several challenging tasks, sorted by difficulty. Almost every task is designed in a way that a naive solution produces unacceptable results, forcing you to dig deeper into the task. In addition to this, there is not much setup needed – i.e. you do not need to set up a project with dozens of dependencies, mess with configurations, think about architecture, or groom stories in your backlog. All you need is a combination of your algorithmic knowledge and your ability to write readable and elegant code, very, very quickly. During a coding contest, experienced devs are challenged to solve a problem, which, most likely, they have never had to solve before; less experienced devs can exercise their coding skills and improve their knowledge by comparing their solution with other devs.
For me, it was a rude awakening, when I, an experienced developer, was beaten by someone who had been coding for barely a year. While my experience helped me produce better looking code, it turned out that I still had so much to learn. The experience made me reconsider gaps in my knowledge and definitely brought my skill set to a new level.
Secondly, it is always awesome to compare your performance with the performance of developers on other platforms. Who does better? Swift or Ruby? Python or Java? It is so much fun to see how quickly and efficiently a task can be solved in one language, only to see the same language struggle with the next one. With different platforms working on the same tasks, there is hardly a better opportunity to see how one problem can be solved with many different implementations.
Thirdly, software development means teamwork – and a coding contest is no exception. Getting in sync with team members, being able to split work, and having trust in your “brothers in arms” is always difficult. The time pressure certainly does not make things any easier. Practicing these skills is extremely important
Last but not least, it is just plain fun. Coding contests have prizes and after parties. You can advance your career by connecting with other people, exchanging ideas, and spending a great evening talking about coding and other technical things. I never regret visiting contests and I don’t think you will regret it either 😉