As an individual who has delved into the world of programming and coding challenges, I have had the opportunity to explore several platforms, each with its own set of advantages and disadvantages. Among the platforms I have utilized are LeetCode, CodeWars, CodeSignal, and HackerRank. Allow me to share my experiences and insights regarding these platforms, highlighting their pros and cons.
LeetCode has been my go-to platform, primarily because I have successfully solved the largest number of problems here. One of the significant advantages of LeetCode is its vast collection of coding challenges. This extensive repertoire ensures that there is always a problem to suit your skill level or area of interest. Additionally, LeetCode provides more comprehensive and better test cases compared to other platforms. The vibrant and large community associated with LeetCode is another positive aspect, as it allows for interaction, discussions, and sharing of solutions with fellow coders.
Furthermore, LeetCode offers a solution working at the backdrop, which provides the correct answer for any randomly generated test case. This feature greatly assists in identifying flaws in your solution. However, it is worth mentioning that some of the problems on LeetCode are occasionally poorly explained. Another drawback is that the output generation feature is not available for interviews conducted via LeetCode, which can be inconvenient.
CodeWars is another platform I have found useful, having solved a considerable number of problems here. One notable aspect of CodeWars is its impressive user interface, which enhances the overall user experience. The platform also offers a good collection of coding challenges that cater to various skill levels. However, a downside of CodeWars is that it lacks the ability to generate correct output for random test cases. In other words, there is no readily available correct solution working at the backdrop, which can make it more challenging to validate your code.
Although I did not solve many problems on CodeSignal, I did participate in random coding tests. What struck me as highly advantageous about CodeSignal is its ability to generate correct output for any random test case, even during coding tests. This feature proved to be extremely useful, as it allowed me to validate my code promptly. Unfortunately, due to limited usage, I cannot provide a detailed analysis of its drawbacks and must give it the benefit of the doubt.
HackerRank is another platform where I tackled a few problems. It stands out for its abundant collection of beginner-friendly problems, making it an excellent choice for individuals who are new to programming and looking to build their skills. However, unlike the aforementioned coding platforms, HackerRank requires you to write the entire code yourself. Personally, I find this to be somewhat arduous and time-consuming. I encountered an instance where I struggled with a particular problem on HackerRank, attempting to solve it using Python. However, the output had to be formatted as a string with spaces between numbers, which proved to be a tricky task in Python. While HackerRank processed C/C++ solutions for this problem, it lacked the mechanism to process Python solutions. It was an exasperating experience that left me feeling frustrated.
In my opinion, the optimal solution lies in combining LeetCode and CodeSignal. LeetCode, with its extensive collection and robust test cases, serves as an excellent platform. However, it would greatly benefit from adding the output generation mechanism for the interviewing feature as well. This enhancement would eliminate the need to write a separate brute-force solution for stress testing during interviews. Stress testing is not always feasible, particularly for problems for which brute-force solutions are much harder to think of than trivial approaches. Additionally, the time constraints of interviews may make it impractical to carry out stress testing. If LeetCode incorporates this feature, it would become a nearly perfect online judge for programmers.
Confused about which one should you choose?
Well, I encourage individuals interested in coding challenges and improving their programming skills to explore platforms like LeetCode, CodeWars, CodeSignal, and HackerRank. Each platform offers unique merits, such as extensive problem collections, comprehensive test cases, user-friendly interfaces, or beginner-friendly content. By engaging with these platforms, programmers can gain exposure to diverse challenges, enhance problem-solving abilities, and benefit from the supportive coding communities provided by each platform.
Feel free to have a look at my profiles on these coding sites:
Leetcode:
Hackerrank:
Codewars:
CodeSignal: