One of the most stressful aspects of looking for a developer job is prepping for technical interviews. Often it’s the problem solving questions that keep candidates up late at night. These problems aren’t geared towards your knowledge of a particular language–the recruiter would expect you to already have a certain level of expertise in a language. Rather, the technical interview tests your problem solving process. How do you think about a problem? Do you communicate effectively, or do you simply internalize a problem?
Though you generally don’t need to have a strong mathematics background to succeed in coding challenges, it helps to know the basics. For example, it would be helpful to know what prime numbers are if you’re asked to list a series of prime numbers in a challenge. Math.com is a great review site that presents a simplified overview of concepts.
Below, we’ve listed sites that provide challenges that will help you sharpen your problem solving skills. But to build good habits, you should practice communicating your thoughts out loud, as if someone were in the room with you.
If you’re not looking for the bells and whistles of community based code challenge sites, then Project Euler is the best website to find a range of challenges. There are 663 problems on the site for you to bang your brain against. Many of these problems are fair game in a technical interview.
Kattis positions itself as a platform for companies, schools, and problem solvers. Problem-solvers specifically get to select from a list of alphabetically ordered problems. The website also offers a leaderboard of its top 100 users. Like many other code competition sites, the top coders can then attract employers.
Codility for Programmers is an extension to the technical recruitment platform. The real value of this website is their lesson plan, which walks you through challenges based on topics like sorting, time complexity, and search algorithms. Every once in a while, Codility also offers challenges that can earn you a “Codility award.” The submissions are tested for correctness and performance. Awards of silver and gold are given to the runner up and top solution respectively.
Hacker Rank is the grand daddy of code challenge websites. If you have the misfortune of stumbling upon the website’s front page, it can be hard to notice that fact due to the way it markets itself as a job matching site. If you make your way to Hacker Rank’s dashboard, however, you’ll find a trove of tutorials that focus on algorithms, data structures, and mathematics. Due to the sites popularity, gaining recognition on the site by participating in competitions can also get you noticed by employers.
Tech Gig is structured like most other code challenge websites. Though, the barrier to entry for Tech Gig is much more apparent. Hacker Rank requires a login to access challenges and practice problems, but Tech Gig requires a log in from the get-go. The only options for registration are professional and student–and nothing in between. Otherwise, the website offers a nice self evaluation mode that can help inform you about the skills you need to improve upon.
Code Chef is an excellent site for competition due, in large part, to their community. There are usually a few contests to whet your problem-solving appetite and these contests can be hosted by anyone in the Code Chef community. What’s also great is the Stack Overflow-esque question board that sits on the home page, reminding you of the help that the community is willing to offer to its struggling members. There’s also a practice section that groups problems into beginner, easy, medium, and hard.
What makes this website stand out from the rest is that the community offers real world interview questions for you to sink your teeth into. These questions are divided into system design, object-oriented design, operating systems, algorithms, databases, and shell. The practice challenges can be accessed immediately without the need to log in. You can get right to solving challenges that range from easy to hard. Another nice bonus is the built in editor that allows you to do everything in the browser. It must be noted that certain challenges require a premium account to access them, but those premium challenges are few in number.
Of all the problem-solving/challenge sites listed here, Code Wars has the biggest barrier to entry; you have to prove that you know the rudiments of your language of choice before you can proceed. However, the challenge is incredibly easy and functions as more of an inside joke. Once you sign up, you have the option of choosing a skill level ranging from learner to senior developer. There are a bevy of “katas” or challenges to choose from. Challenges are devised by the community. Code Wars provides arguably the best problem solving platform. You have a customizable editor along with pre-written tests that help you get into a real world problem-solving mindset.