Competitive Programming
By: Rutger Mckenna
Tags: Hackathons, Coding, Programming

Competitive programming and coding has only grown in popularity over the past twenty some-odd years and given students a way to show off not only what they are capable of doing, but also share amazing projects with the world. At this point there is even the Major League Hacking group for students to join and be a part of these large events and conventions! While competitive, the community is actually quite open and supportive. It’s free for anyone to attend, and one doesn’t even have to be a programmer to enjoy the projects produced; the competitors backgrounds vary in skill level and age only making the entire convention seem that much more welcoming.

How did it all start?

Most see competitive programming starting from OpenBSD, which is a group of programmers who made the free open-source OS of the same name. As the company started to throw their own small events, the meet ups got their name from Niels Provos as “hackathons.” The group would set up complex problems to be solved in specific programming languages, or difficult numeric questions to be answered with algorithms. Everything was limited due to the time frame, computer processing speed, and the lack of frameworks to easily structure sites (such as Ruby Rails debuting in 2004). Therefore, projects ended up moving slowly, and the challenges would sometimes last a full 24 hours with teams taking shifts (… or not).

OpenBSD in the terminal

OpenBSD is beautiful ❤

So what is happening with it now?

Hackathons started to get a lot more popular with the availability of Ruby on Rails and Amazon Web Services for consumers, as people could build projects must faster and deal with more complex problems without worrying too much about basic scaffolding.

These hackathons not only became popular in the programming community, but also amongst large software based companies such as Facebook and Google to give out rewards or showcase their engineers capabilities. Although mainly for students, most people can compete in these events. As mentioned before, the Major League Hacking group incorporates students into these competitions, with 180 events happening in just half this year alone!

While a big part of the community isn’t fond of the constant sponsorships in the zeitgeist that is hackathon, they have kept one common goal: to create and be seen. A lot of the groups have grown in number strictly due to the free stuff and the exposure they can obtain, but a lot of the competitors are there for the reason it started and find the creativity and sportsman-like competition to the be heart and soul of hackathons. Members of the extensive different groups are constantly posting their creations and advice to new comers, making it a thriving community of programmers. Dozens of posts happen daily by the thousands of members; some of the groups even top 30k individuals!

As this is mainly to be an encouraging environment for students, a lot of these competitions are quite relaxed, regardless of the long competing time expected. Sometimes over a full 24 hour period, these competitors stay awake the entire time while shifting out in breaks to complete their challenge to their best ability. Speakers and sponsors also show up for the competitors to talk to and gain career information from! Not all the the competitions are this simple and welcoming, though…

Training for Difficult Hackathons

Some hackathons are not just for growing your own knowledge and meeting potential employers. There are competitions and competitors who take the sport seriously, and there are some guidelines for people who would like to participate, as well as some online practice portions to jump through before one begins.

It seems that these competitions are broken down into some layers that most people try and achieve in chunks. As some of the hackathons are harder than others, this is the standard progression of curricula to teach yourself before entering each of these tiers, or creating certain tiered goals for yourself to know what level you would enter at.

Remember; most of the communities are very welcoming to all levels of proficiency, but some of the real competitors are looking for talented coders to help them (quickly!) create some of the best projects they can produce that year. While some competitions have themes or strict parameters, a lot of the hackathons are only restricted to the languages you can code in, what tools are available, or the size of your group. In that case, having a wide knowledge and being flexible is key!

Getting started on your own journey to competing is a process in itself, but here are some helpful tools to get you prepared whether you’ve been coding for years or just deciding to try it out yourself. Below we see a great layout for practice problems and faux challenges you may come across, all separated by difficulty and subject.

These practice challenges can be found here!