When I started learning software development last year, I heard the word "LeetCode" mentioned before but I never took it upon myself to look into it until now, as a more seasoned developer.
LeetCode is a platform and community centered around assessing technical proficiency and preparing for interviews for tech companies. The platform consists of over 2000 code problems ranging in difficulty and a multitude of discussions across the community. Founded in 2015, and becoming international in 2018, LeetCode has built a large community and impact in the industry.
With so many problems across the spectrum of difficulty, LeetCode provides coding assessments and exercises for beginners and advanced developers around the world. According to Jovitha Sukunthan, LeetCode supports Java, C, JavaScript, Ruby, Python, C++, and PHP to name a few. These problems cover algorithms, data structures, dynamic programming, SQL, AI, and databases. In addition to providing problems, the community provides solutions!
As developers, we know there are many ways to arrive at a solution when facing a problem while coding or implementing a new concept. In the discussion sector of LeetCode, solutions are shared for problems, allowing developers to compare the steps they took to get the same solution and explain their reasoning. With these discussions available, one can find a new skill to add to their toolbelt. Duncan McArdle shares that he was able to learn about Hash Maps from LeetCode discussions for a problem he solved and now knows to consider them as an option for drafting up solutions. That being said, posting your solution with your explanation can have a similar impact on developers like you in the future.
Another aspect of LeetCode is its use in the hiring process in the tech industry. Lots of large tech companies, including FAANG (Facebook, Amazon, Apple, Netflix, and Google), use problems from LeetCode in the hiring process. With a premium account, you can have access to some of the problems that might come up in the interview as well as the solutions people have provided. This allows Leetcode to be a good tool for interview preparation but producing a solution will not guarantee the position you are interviewing for. Part of the process focuses on your ability to "identify methods and apply concepts" instead of the actual answer you submit. With that being said, it might be better to reference the answers for recognizing patterns that might fare better with certain details of problems, than trying to remember the code someone posted.
Another way Leetcode can be used as an interview prep tool is that it provides mock interviews and mock code assessments. LeetCode can simulate real code assessments from companies like Google, Uber, Microsoft, and Adobe, with a premium membership of course. However, they do have options for their regular members that simulate different types of interviews.
In my research of learning about LeetCode, I wanted to know what companies were known for using LeetCode in their hiring process and there were more results for companies that do not use LeetCode and some admitting their displeasure for LeetCode altogether. Some of the posts described LeetCode as unorganized and alleged it was centered around memory-based learning. From what I saw in my research, I didn't see anything claiming that LeetCode would be an educating tool, but more so that it has resources available to introduce you to concepts that will push you to learn them. As far as the website being unorganized, in my brief time using it, I can only attest to the interface for the Problems section being "unorganized" because there doesn't seem to be any rhyme or reason with the display. However, I think this is something that could be overlooked by many. Another comment was directed at the limited access without a premium membership, I can also agree that the gap makes a difference in its effectiveness but this could vary based on the user's purpose for using LeetCode.
With so many opinions about LeetCode, I decided to try it out myself and see what it's like to solve a problem of theirs. The problem I chose was #2703 "Return Length of Arguments Passed" just to get a feel for the website and its features. It was an easy problem under the Javascript tag, where you are responsible for returning the number of arguments passed to the function. When you have the problem open, the solutions are available to you to look at as well as comments/discussions from members of the community. Upon submission, a graph shows where you fall in their range of runtime for submitted solutions.
Overall, I can see LeetCode can be useful to developers at any stage of their career. Despite its shortcomings, I believe that LeetCode can sharpen your technical skills as well as your interview skills. Having a community makes a world of a difference when trying something new, especially as adult learners who are heading in similar directions and I see the LeetCode community easing the growing pains of increasing your skills. If you are teaching yourself how to code, the Problems can be especially helpful in gauging your understanding of concepts. In summation, I think everyone who is breaking into tech and software development could benefit from using LeetCode in some way, shape, or form; whether it be for testing your proficiency, preparing for an interview, or connecting with other developers.
Top comments (0)