Are you in a programming rut? Worried that your coding skills have hit a plateau? On the verge of burning out? Sometimes the answer is to walk away, take a break, and suck down some fresh air. Then again, sometimes the answer is a heavy dose of challenges that stretch your abilities to their limits.
In Apprenticeship Patterns — a free programming book that describes the journey from newbie to master programmer — there’s a quiet bit of wisdom that speaks truth:
Failure is often the best way to learn anything. Only by attempting to do bold things, failing, learning from that failure, and trying again do we grow into the kind of people who can succeed when faced with difficult problems.
What better way to “attempt bold things” than to pit yourself against other coders in a competitive environment? You’ll probably fail, but that’s okay. The participation itself will teach you plenty of new skills and techniques. With the right mindset for stress-free programming, you’ll have nothing to fear.
Launched in 2001, TopCoder has been the largest community of competitive programmers for quite some time. There are over 700,000 members competing to solve industry-related problems for cash prizes. How much cash? In 2014, the annual TopCoder Open tournament awarded over $300,000 to winners.
TopCoder offers competitions across several fields, such as graphic design, algorithms, prototyping, and more. What’s cool about their scoring algorithm is that they employ an ELO-based rating system that aims to determine the “best” coder over time. The more you compete and the better you place, the higher your ranking will be.
The Google Code Jam is one of the most popular programming competitions in the world. It’s a multi-round contest based on solving algorithmic puzzles and the only restriction on programming languages, development environments, and text editors is that anything goes as long as anyone can legally procure a copy of their own for free.
Most of the competition takes place through online submissions, but if you manage to make it to the finals, you’ll be invited to an onsite event that will be livestreamed for all to watch. As for winning, the 2014 event had a $15,000 grand prize. How much higher will it go next year?
The Imagine Cup is a once-per-year event comprised of three separate competitions that are each tied into the event’s mission: “Imagine a world where technology helps solve the toughest problems.” It’s open to competitors from all over the world, culminating in an onsite Grand Finals that moves from country to country every year.
The three competitions are:
- The Innovation Path: The aim here is to create “the next big thing,” which could be as simple as a new and original web tool or as impactful as a mobile app that revolutionizes the way society interacts.
- The World Citizenship Path: Do you want to make the world a better place? That’s the question that drives this particular competition. Create a desktop, web, or mobile solution that addresses a global issue, such as disease, social equality, or poverty.
- The Games Path: Develop innovative video games on computers, consoles, phones, or whatever other device you fancy. The goal is to deliver a functional, polished, and engaging experience.
There’s also the Code Hunt Challenge, a monthly event where participants are given a snippet of code and asked to rewrite it in as few lines of code as possible. Not only is the winner of each challenge awarded $1,000, but all participants are entered into a random drawing for $5,000.
The gaming industry is bigger than ever, but what’s more interesting is the surge in indie game development over the past few years. Independent developers — who typically work alone or in small teams — are producing top-quality games. You can find a lot of them on Steam Early Access.
The Global Game Jam is an annual event that takes place over a single weekend. Participants team up together and work to create a playable game demo within 48 hours. Technically, GGJ isn’t a competition between teams since there’s no losing or winning, but it’s still a good way to test your mettle and see what you can accomplish.
Interested in making games? Get started with these free game development tools. In particular, we recommend learning Unity because it’s free, powerful, versatile enough to create 2D and 3D games, and has a massive user base full of tutorials and examples.
Ludum Dare, which means “to give a game” in Latin, is a game development jam that takes place three times a year: April, August, and December. There are two different Ludum Dare events:
- The Compo is a solo competition that requires all code and assets to be created from scratch between the event’s start and end time, which takes place over 48 hours. Afterwards, participants become judges and the best entries are spotlighted for fame and bragging rights.
- The Jam is a more casual version of the Compo. You have 72 hours to create a game and you can work alone or in a team. Unlike the Compo, the Jam does not require that entries are started from absolute scratch.
All aspiring and veteran indie game developers should try Ludum Dare at least once, either the Jam or the Compo. Not only does it force you to sit down and create, it also provides opportunities to make friends, find partners, and just have a lot of fun with experimental game ideas.
Programming competitions are just one of many ways to practice coding skills. On the one hand, it can be extremely effective to come up with your own programming project ideas and pursue them over the long term, but every once in a while you should step back and enter some kind of competition. It will keep you fresh, honest, and on your toes.
If you’re struggling with burnout and these kinds of challenges fail to reinvigorate you, it may be a sign that you aren’t meant to be a programmer.
That being said, there are dozens — maybe even hundreds — of other online programming competitions available out there. Know of any others that deserve a mention? Have you ever competed in one before? Share your thoughts with us in the comments below!
Explore more about: Programming.