Topcoder is a competition-based community at its heart. Let’s go through the main kinds of challenges available at Topcoder. The common features of each challenge type are a strict timeline consisting of multiple phases and a score-based ranking system for competitors, based on their competition history.
Single-round matches (SRM) are the oldest kind of challenge available at Topcoder. They are algorithm competitions, usually consisting of three problems (easy, medium and hard), that are solved by the contestants in a short time (often 75 minutes). A Rookie SRM is a variant of these competitions aimed at newer members. They have the exact same match structure, but the problems are easier and more approachable to people with less experience in algorithm competitions.
A contest consists of a
Registration Phase - 24 Hours
Coding Phase - 75 mins
Intermission Phase - 5 mins
Challenge Phase - 15 mins
System Tests, which conclude the round.
The coding phase is the problem-solving part, during which the contestants write their code to solve the given problems. Competitors are divided into “rooms”, consisting of twenty competitors each.
During the challenge phase, the participants are given access to the code submitted by other competitors in the same room, and have the chance to “challenge” this code. A challenge consists of finding a test case for which the submitted code fails or gives a wrong answer. A successful challenge removes all preliminary points from that submission and grants the successful challenger +50 points. A failed challenge costs 25 points.
After the challenge phase the system test phase begins, during which every submission is thoroughly tested for correctness. Failed submissions lose their score for that problem. Soon after the system test phase is finished ratings are updated.
Development challenges usually run between a few days or one to two weeks. The task is usually to complete a piece of functionality in a software product or to create one from scratch.
Development Track at Topcoder consists of three types of challenges:
First2Finish (F2F) challenges - First2Finish are quick challenges in which competitors are asked to fix bugs or do a small task. The challenge is open until the project manager or copilot running the challenge has a winning submission.
Code Challenges - Code challenges ask you to develop code for apps, services, etc. Final fixes, which are sometimes required after a typical challenge, are not included in these types of challenges.
Ideation challenges - Ideation Challenges ask you to research and ideate a solution on the problem statement presented to you.
The most popular challenge type in the development track is the code challenge. The technologies are varied, ranging from AngularJS, Node.js, Java, iOS, Android, Python, and several others.
In a code challenge, you will develop code for apps, services, etc. You must ensure your submission addresses all the requirements mentioned in the challenge specification. You also need to ensure your code is modularized, clean and well documented, and you need to provide clean documentation for deployment and verification.
Rapid development matches (RDMs) are quick, fast-paced ranked development challenges, where you have to develop an application strictly according to specification. Speed is of importance since the matches are rated. They usually last for one hour. They represent a great way to test and to improve your development skills. An RDM is structured similarly to an SRM algorithm match, there are three problems: easy, medium and hard. The competitors’ submissions will be tested against an automatic tester that can provide instant feedback on the submissions.
Skill Builders Competitions are competitions meant to help you build proficiency in a certain technology or product. A Topcoder Skill Builder challenge consists of three consecutive problems: Easy, Medium and Hard. Each problem is usually related, such that they build on each other. There will be a separate leaderboard for a Skill Builder challenge that keeps track of points across all three problems. A Skill Builder challenge usually runs for an extended period of time, such as a month. During the first run of a challenge, there are usually prizes and swag as well, these are generally given to the first submissions that pass review. Skill Builder challenges are ranked, and grant verified skill badges for your Topcoder profile.
A F2F (First2Finish) match is a kind of development or design challenge where, as the name implies, the winner is determined as the competitor with the first submission to pass the minimum requirements for the challenge. Due to the nature of the challenge, review is performed during the Submission Phase of the match as the submissions keep coming it. Once a passing submission is found, the winner is determined and the match ends. These challenges are usually reasonably small in scale, such as bug fixes or configuration work. Speed is of the essence here, so keep your eyes peeled on that Challenge listing!
Topcoder Design Challenges provide coverage for a full range of design needs, from responsive and mobile application user experience to marketing collateral creation and support. To be specific, there are seven types of design challenges that we offer in the Design track.
Application Front End Design
Widget or Mobile Screen Design
You must ensure your design submission addresses all the requirements mentioned in the challenge specification, and ensure your design follows the best practice for the specific interface or devices.
The Live User Experience (LUX) is a fast challenge that runs for 48 hours and has a number of big prizes. The LUX challenge takes place during a live event with Topcoder and a customer. The Rapid User Experience (RUX) is similar to a LUX but it runs for 72 hours and awards 5 big prizes. Both challenges run fast and are only a one round challenge.
LUX & RUX challenges provide designers with the opportunity to show digital leaders from some of the largest companies in the world, just how good they are at creating concepts, User Experience (UX) Design, and User Interface (UI) Design. They are fast, fun, and designers have more chances to earn prize money! We even have leaderboards for these!
Quality assurance (QA) track competitions call for competitors to participate in organized QA testing of a piece of software. Technical background is not necessarily required, but experience plays an important part in gaining a good score and rating.
The QA Track, consists of four types of challenges:
Unstructured Testing: In these types of challenges you are asked to test without predefined test cases, also known as Bug Hunt.
Structured Testing: In these types of challenges you are asked to execute predefined test cases step by step and check if test results are correct
Structured Test Case Writing: In these types of challenges you are asked to write test cases based on prototypes and functional requirement specifications.
Automated Testing: In these types of challenges you are asked to use automation tools to execute test cases.
The most popular challenge type in the QA track is Bug Hunt. Here you are asked to report bugs including the steps to reproduce and the type of bug you found. While competing with others, you are paid for each verified bug and can also receive extra prize money for finding the most number of bugs.
A data science challenge is a special kind of challenge for problems related to machine learning, data science, mathematics and statistics. They are typically longer in duration, usually at least a week, and often up to a month or more. The contestants are tasked with developing a data science solution that matches the given problem area and data as closely as possible. Some example cases might be the development of an image classification model, or to forecast data based on historical data points.
A marathon match is another old competition type at Topcoder. Marathon Matches are challenges where your submission is automatically scored according to the scoring details mentioned in the match specification.
They are longer than SRM matches, usually lasting one week. They consist of one difficult problem that may not have a single correct solution, but rather something where optimization must be used to create a solution that performs better than the competition. A problem may consist of a board game simulation that must be solved as efficiently as possible, or a machine learning-related task, such as classification.
These matches are mainly divided into two categories:
Algorithm Optimization Matches - These matches are hosted by Topcoder for practice and fun. The problems are usually NP-Hard, so no optimal solution is known. The matches usually run for one week, in which you write a program to score as well as possible against the problem’s scoring system. They are generally named as Marathon Match followed by a sequence number. Example: Marathon Match 118
Machine Learning / Data Analytics / Image Processing / Predictive Analytics etc - These matches are designed with the help of our customers. They involve tasks with real-world applications and datasets. Example: CDC Text Classification - Marathon Match
Gig work is the latest addition to the numerous ways you can challenge yourself and earn money on Topcoder. Gig work is contract work for a fixed duration in a specific role for a client. You can apply to these freelance positions from the gig work page LINK, and if your skills are a match for the role, you will be contacted for an interview. Gig work provides you a way to earn a safe, fixed income for a duration. Gigs usually last at least one month and often longer. Your Topcoder profile will be valuable in proving your skills for a successful gig application.
A private task is a special challenge given to only a single person. This person is usually the winner of a competition or a series of competitions. Through the task, they are given a special appointment to add extra features or to do some other extra work related to the challenges they’ve done. A task may also be unrelated to a specific challenge, but still target a highly qualified member with the right skills for it. To gain tasks, you should compete and place highly in competitions, and also be active on Slack, where new tasks are often posted.