Boosting your coding skills to the next level with these 8 awesome coding sites8 min read
Beginner – Intermediate
LeetCode is one of the best sites I want to introduce to you first if you want to dig into data structures and algorithms. This website has a really nice user interface, which covers many topics from basic to advanced which categorized in many essential topics. Up to 1200 problems, each problem is labeled with EASY, MEDIUM and HARD it gives you a variety of options to choose which problem is right for you. Basically, it covers all the essentials of possible aspects that one might encounter in a technical interview: data structures, algorithms, common brain teasers, dynamic programming, backtracking, linked-list, etc…Many problems on this website are having the solutions in case you stuck, each solution usually has two approaches, naive one and efficient one. Besides, you can join the contests held weekly or take mock tests to test your ability from a collection of real company questions. And there is a section about Top 100 Liked Questions or Top Interview Questions that maybe interests you. Last but not least, LeetCode has a wonderful community which can be found at Home | LeetCode Discuss, in there, you could see you are not alone, many questions exist in your head whether it stupid or not probably all have been discussed here.
Beginner – Intermediate
This is another great site that I usually visit to practice algorithm, CodeSignal also has a great user interface, for the very first time, we can explore the Arcade universe there which covers 5 sections: Intro, Database, The Core, Python, and Graph, there are many interesting and comprehensive problems there waiting for you to discover. Me personally I ofter solve problems from Challenges section, which brings you a lot of problems which have the specific duration of time to solve, when you solve a problem form this section on the time, your name will be displayed in the leaderboard of this question among with many other programmers who have solved this problem. The interesting part about this website is the variety of languages you can choose to solve a problem, unlike LeetCode which just let choose 5-6 popular programming languages, on CodeSignal, the languages supported is about 38 that you can easily pick up your favorite one whether you like imperative, functional, procedure, from C, Java, to Haskell, Lisp, Clojure, etc…There are also Interview Practice and Company Challenges sections which let you practice from real companies such as Google, Apple, Microsoft, Linkedin, etc…that make you more comfortable for your next real interview. CodeSignal also has a great community where you can find a solution to your problem or share your personal programming experience.
Beginner – Intermediate
If you have crossed CodeSignal and LeetCode then go to this site it can be a little bit overwhelmed because the user interface is a little bit different. It seems like creators of this site are obsessed with martial arts. After logging in, you can choose your favorite programming languages (which up to 46 languages, damn, more than the languages that CodeSignal supports!) to solve the puzzles, the difficulty of the puzzles depend on your level. First, you will initially on 8 kyu – the newbie level, which is like the level of difficulty and the highest level is 1 kyu, which I can guarantee it will take much time, effort and intelligence to get into that expert level. When finish each puzzle, your solution will be recorded and you will gain more Honor, the honor at some certain points will leverage your kyu level. There are plenty of modes that you can choose from, which are Fundamentals, Rank Up, Practice & Repeat, Random, and Beta. And of course, the Codewars’ community is also strong and great.
HackerEarth also has a nice user interface and was founded by an Indian in 2012, 7 years later, it’s now considered one of the most popular sites for people who intend to practice and solve algorithms, you can practice almost anything for your next interview here, this site covers many topics such as programming languages, math, machine learning, data structures, algorithms, and also a huge number of competitions and hiring challenges are available here which can be used to be the stepping stones in your career path.
CodeChef is another Indian-based competitive programming website that provides hundreds of challenges. CodeChef is a great place for newbie and intermediate users. Plenty of easy questions and editorials and discussion forum to solve your doubts. Long contests are a great way to start off your coding career and learn new cool things. Problems are put categorically on Codechef namely Beginner, Easy, Medium etc and you can sort problems inside each category from most solved to least solved ones. This gives beginners some confidence in problem-solving and the idea of online judges.
When I finally stumped at a problem on mentioned sites above, I usually do some search online to check whether has anybody write a tutorial about this problem or not and GeeksForGeeks is like my savior that always appeared in front of my eyes, for many many problems, and each problem I am frustrated with they usually give you a full-explanation how it works and how it can be implemented by some distinct programming languages such as C, C++, Java, Python. This website is also created by some Indian guys (I guess), mainly they write tutorials for students who struggle with algorithms and many other stuff, you can come here to learn programming languages and practice interview questions as well. If you are preparing for your next coding interview, GeeksForGeeks is definitely a handy site that you should go along with.
Finally, at the end of the list, CodeForces is the place that real competitive programmers or sport programmers come to compete. Codeforces is a website that hosts competitive programming contests. It is maintained by a group of competitive programmers from ITMO University. Problems on this site often seem advanced and require you some particular knowledge to solve such as Tree, Linked-list, Hash Table, Breadth-First Search, etc…Contests in this site are held weekly and usually rated, top among users of this site are considered very smart and talented. Top-rated competitive programmers from this site you can easily recognize if you can see their name with red color which is International Grandmaster, or even the black color in the first letter and then the rest are red Legendary grandmaster (they have the highest rating). When you think you are spend enough time practicing, then joining some contests in this site is the best way among many other ways to prove your intelligence and problem-solving skills (I just realized people from Russia and some surrounded countries they are very smart).