Boosting your coding skills to the next level with these 8 awesome coding sites9 min read
If you follow my blog for a while, recently my articles are all about algorithms, why do I do that instead of spending time to write some tutorials about JavaScript or something, you probably ask? Just because of my improvisation, just kidding, I do it on purpose. Solving algorithm makes you a great programmer, it makes you think more logical and if you have any intention to get into the big tech companies, you should know that algorithm plays a pivotal role and indispensable through the coding interview questions, they want to know how good you are by how can you solve a problem rather than how many languages familiar with. When you realize the importance of learning and practicing algorithm, here is a question that comes and needs to address, how and where can you practice algorithm (as an absolute beginner)? In this article, we’re going to tackle this question, here I will list the top 8 best sites that boost your coding skill to the next level, from basic to advanced.
1. LeetCode
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, people share sincerely about their coding and interview experiences you could see you are not alone, many questions exist in your head whether it silly or not probably all have been discussed there.
Also read:
2. CodeSignal
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 8-10 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.
3. Codewars
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.
4. HackerRank
Intermediate
HackerRank is a great place for competitive programming, which has mainly four sections: Practice, Compete, Jobs, and Leaderboard. In the first section, Practice, you will be immersed in a huge collection of challenges and tutorials available on it, you can practice C, C++, Java, Python, Functional Programming, SQL, Database, Mathematics, Data Structures, and even Artificial Intelligence, there are also a lot of great tutorials from this section such as Interview Preparation Kit, 30 Days of Code, 10 Days Of JavaScript, etc…They give you problems each day if you follow one of those tutorials, and in case you forget you typically send you an email. For me personally, I use HackerRank to practice functional programming (which is tough) and solving algorithms. However, if you are a newbie, I recommend you start with some basic first and reading a book is beneficial before jumping into solving problems on HackerRank, for me, I think most of the problems are hard and take time to solve. In the Compete section, you will typically see some contests which are held monthly, each contest contains several problems which are usually designed as medium level or above, they are tough enough to challenge you and through those contests, you can prove your problem-solving ability. Next, you can see another section, which is Jobs – where you can find your dream job there for a variety of available options from many different roles and locations. And finally, the Leaderboard section is where the top among users standing in contests.
5. HackerEarth
Intermediate
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.
6. CodeChef
Intermediate
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.
7. GeeksforGeeks
Intermediate
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.
8. CodeForces
Advanced
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 spend enough time practicing, then joining some contests on this site is the best way among many other ways to prove your intelligence and problem-solving skills.