Zalando Tech is hosting a 24-hour online hackathon on June 4, known as the Zalando CodeSprint, in partnership with HackerRank. We’ve put together eight system-graded challenges to solve, with participants welcome from anywhere in the world.
In the lead up to this exciting challenge, we wanted to catch up with a couple of the developers who helped craft each problem statement, and find out the motivations behind the event.
Zalando Tech: Why did you decide to contribute to the creation of challenges for the CodeSprint?
Darik: I’ve been participating in hackathons like this since university, where the online environment allows entrants to be from all over the world. These competitions are designed for developers of all levels, with the opportunity to look at the code of other entrants and learn from them, on top of having fun.
The time-limit factors helps train you for real-time stressful situations at your job, when you have to find the solution to problems fast. All of these aspects helped me in the past, which is why I wanted to participate. Competitions like this are also a good way to prepare for interviews at a technical level, on top of giving you a rank that you can measure against other developers.
Torsten: Challenges like this don’t often require the writing of much code, but instead make you think about the different kinds of test cases that could be used to solve a problem. The whole point of the competition is the importance of problem solving and critical thinking, as opposed to only writing code. Participants come from different backgrounds and therefore bring this diversity to the problems they’re facing, giving different answers and solutions compared to others.
Zalando Tech: What steps are involved when creating CodeSprint problems?
Darik: There are several approaches you could take: Maybe you have a problem that you have already solved, so you hide the solution behind the problem statement and make it as tricky as possible. The second is: When you’re coding, a real problem arises, thus it gives you inspiration for creating puzzles for the competition but by making them a little more difficult.
Torsten: For me, not only are you thinking of problems you’ve solved, but perhaps you want to make sure a certain technique is used in a solution, thus you create the task this way. It’s more complicated to come up with “easy” problems; it would be nice to say that there’s a problem around something as simple as sorting, for example.
We also think about the problems our team needs to solve. Complexity-wise they are quite challenging, so I think about getting rid of certain constraints to create a ‘toy’ problem that could still benefit the competition but also my team in tackling its own work.
Zalando Tech: Do you have any tips or recommendations for participants?
Darik: Don’t start coding from the first problem! There are different types of problems with assorted difficulty levels, and they’re not in an order from easiest to hardest – I suggest that entrants read all the problem statements before they begin coding. Have a look at the constraints as well – these can make the problems very difficult to solve.
I also suggest that if participants can’t figure out the exact solution, there might be an answer that uses brute force to pass some of tests. Some points can still be gained, so it’s better than nothing!
Torsten: I actually disagree, I would never read all of the problem statements at once! I would skip the problems you couldn’t work on and move on to the next workable issue. However, I do agree that looking at the constraints first is important, because it means that certain solutions won’t be possible to implement. On the other hand, very restrictive constraints might allow for simple or exhaustive solution strategies.
Get your teeth into some of the challenges that keeps us on our toes everyday. Tackle them by using your programming skills, creativity, and endurance. Sign up to the CodeSprint today!