A great
way to improve your skills when learning to code is by solving coding
challenges. Solving different types of challenges and puzzles can help
you become a better problem solver, learn the intricacies of a
programming language, prepare for job interviews, learn new algorithms,
and more.
Below is a list of some popular coding challenge websites with a short description of what each one offers.
1. TopCoder
TopCoder is one of the original platforms for competitive programming online. It provides a list of algorithmic challenges
from the past that you can complete on your own directly online using
their code editor. Their popular Single Round Matches are offered a few
times per month at a specific time where you compete against others to
solve challenges the fastest with the best score.
The top ranked users
on TopCoder are very good competitive programmers and regularly compete
in programming competitions. The top ranked user maintains his own blog titled ALGORITHMS WEEKLY BY PETR MITRICHEV where he writes about coding competitions, algorithms, math, and more.
2. Project Euler
Project
Euler provides a large collection of challenges in the domain of
computer science and mathematics. The challenges typically involve
writing a small program to figure out the solution to a clever
mathematical formula or equation, such as finding the sum of digits of all numbers preceding each number in a series.
You
cannot directly code on the website in an editor, so you would need to
write a solution on your own computer and then provide the solution on
their website.
3. HackerRank
HackerRank
provides challenges for several different domains such as Algorithms,
Mathematics, SQL, Functional Programming, AI, and more. You can solve
all the challenge directly online (check out this example).
They provide a discussion and leaderboard for every challenge, and most
challenges come with an editorial that explains more about the
challenge and how to approach it to come up with a solution. Aside from
the editorial, you cannot currently view the solutions of other users on
HackerRank.
HackerRank also provides the ability for users to submit applications and apply to jobs by solving company-sponsored coding challenges.
4. Coderbyte
Coderbyte provides 170+ coding challenges you can solve directly online in one of 10 programming languages (check out this example).
The challenges range from easy (finding the largest word in a string)
to hard (print the maximum cardinality matching of a graph).
They also provide a collection of algorithm tutorials, introductory videos, and interview preparation courses.
Unlike HackerRank and other similar websites, you are able to view the
solutions other users provide for any challenge aside from the official solutions posted by Coderbyte.
5. CodeChef
CodeChef is an Indian-based competitive programming website that provides hundreds of challenges. You are able to write code in their online editor
and view a collections of challenges that are separated into different
categories depending on your skill level (check out this example). They have a large community of coders that contribute to the forums, write tutorials, and take part in CodeChef’s coding competitions.
6. CodeEval
CodeEval
is similar to HackerRank where it also provides a collection of
company-sponsored coding challenges that can help you get a job if you
solve them well. Companies can create challenges and host competitions
to recruit new developers for work. You can see a list of current
challenges here.
7. Codewars
Codewars
provides a large collection of coding challenges submitted and edited
by their own community. You can solve the challenges directly online in their editor in one of several languages. You can view a discussion for each challenges as well as user solutions.
8. LeetCode
LeetCode is a popular Online Judge that provides a list of 190+ challenges that can help you prepare for technical job interviews. You can solve the challenges directly online
in one of 9 programming languages. You are not able to view other users
solutions, but you are provided statistics for your own solutions such
as how fast your code ran when compared to other users.
They also have a Mock Interview section that is specifically for job interview preparation, they host their own coding contests, and they have a section for articles to help you better understand certain problems.
9. SPOJ
Sphere Online Judge (SPOJ) is an online judge that provides over 20k coding challenges. You are able to submit your code in an online editor. SPOJ also hosts their own contests and has an area for users to discuss coding challenges. They do not currently provide any official solutions or editorials like some other websites do though.
10. CodinGame
CodinGame
is a bit different from the other websites because instead of simply
solving coding challenges in an editor, you actually take part in
writing the code for game that you play directly online. You can see a
list of games currently offered here and an example of one here.
The game comes with a problem description, test cases, and an editor
where you can write your code in one of 20+ programming languages.
Although this website is different than typical competitive programming websites such as the ones mentioned above, it is still popular amongst programmers who enjoy solving challenges and taking part in contests.
This list was based on a few things: my own experiences using the websites, some Google searches, Quora posts, and articles such as this one and this one. I also frequented some forums and subreddits such as r/learnprogramming
to see what websites were usually recommended by the users there.
Disclaimer: I work at Coderbyte which is one of the websites mentioned
above.
chỉ có ProjectEuler và HackerRank là còn được
ReplyDelete