You might be already planning to take part in a coding competition. Well, competitive programming is not easy. However, many sites and tools on the internet can help you with your coding and mould you into a good contender for the first prize in any coding competition.
Here are the sites that can help you develop or improve your coding skills:
This is a US site which hosts 1.5-hour Single Round Matches.Topcoder has a specialty along with hosting these matches: they even host Topcoder Open tournament every year. On top of that, you also get tutorials written by respected and experienced Topcoder members.
HackerRank is a famous site for people aspiring to participate in coding competitions. The site is focused on competitive programming challenges, hosting CodeSprints, 101 Hacks, HourRanks and Week Of Code contests every month. It even provides the learning tracks of different programming languages and topics.
CodeChef is an Indian site which hosts 3 contests every month. It has a Long Challenge, which is a 10-day challenge, a shorter Cook-Off challenge and Lunchtime Challenges. For beginners, the Long Challenge is a great place to start. CodeChef also organizes the CodeChef SnackDown coding competition every year.
This Indian company focuses on hiring challenges and competitive programming. It conducts Circuits every month and shorter challenges called HourStorms. Circuits are generally 9-day long. HackerEarth hosts competitions in several colleges all over the country too.
During programming contests, you can use a number of tools to debug a problem or highlight a problem. These are a few tools that can be really helpful for you:
- Ideone – This is a commonly used sharing and testing code. You can easily make an account and save your programs here. However, it does not show the execution time of a program.
- Codechef/Rextester/Codeforces: Unlike Ideone, these sites will also show the execution time of your programs. With Rextester, you can even develop an execution command for your program too.
- CSAcademy IDE: This IDE has all the features of the previous IDE’s along with a workspace which helps you to work on several files simultaneously. This IDE has a ‘stderr’ stream too, so you can debug statements using ‘cerr<<’ debug statements.
- HackerRank IDE: This IDE can be used on its problem pages. An advantage it has over other IDE’s is that it can display the gdb stack trace when there are runtime errors. Hence, you can understand which line the specific segmentation error occurred.
Stress testing is a great way to find out a bug in an algorithm. Stress tests mean to generate a large set of random test cases and then, to check if the efficient algorithm and the brute force algorithm agree with one another. The tools that can be used for this are CSAcademy Difftool and Diffchecker.
You can use OnlineGDB for debugging the code. It is a compiler and is also a debugger for a number of languages.
If you want to share your code so that others may look at it, it is best to format it in a way that makes it easy for others to read it. Online code formatters are a great way to go. Some online code formatters are: format.krzaq.cc, CodeBeautify formatter and the TutorialsPoint formatter.
If you are not able to visualize a problem properly, you can use Geometry Widget and Graph Editor.
You can use VisuAlgo for featuring animations for algorithms and data structures.
You can also visualise data structures, operations and algorithms using Algorithm Visualizer.
You can also consider our competitive programming course to give your career an edge over others!