CodeFights
CodeFights provides a fun and competitive way to practice your coding skills, learn new talents, and prepare for interviews.
- Challenges available in dozens of languages
- Bots, challenges, and interview questions from prominent tech businesses
- Head-to-head challenges against strangers and friends
- Huge selection of challenges in a variety of languages
- Encourages self-directed learning rather than tutorial-driven knowledge
- Active and friendly community helps encourage growth
- Scoring system for challenges is sometimes unclear
- Infrequent but inscrutable compiling errors sometimes presented
- Offers little direct assistance with frustrating challenges
There's little arguing that the task of coding can be repetitive and exhausting. Programmers working in the field are often tasked with the same variety of tasks over and over again, causing their talents to atrophy and preventing them from developing new skill sets. For new programmers, tutorials are often dry, and the gap between the basic understanding of a language and its high end functionality can seem insurmountable. CodeFights is a website that helps both new and experienced programmers test their skills and improve their knowledge in an environment that more resembles a video game than a classroom. CodeFights manages to fight the malaise that comes with learning by breaking up their exercise into small and digestible exercises. At the most basic level, coders are asked to solve a very simple problem like outputting variables in sequential order. At the higher end, they're tasked with creating code with real world application. The biggest resource of content comes in CodeFights' library, which compiles hundreds of challenges of increasing difficulty. The user is presented with an empty console and a task, and they're asked to find the most efficient solution they can. Many instructional sites would guide you by the hand through the process, but this is where CodeFights separates it from the competition. No guide is provided, and the generality of the questions mean there are often multiple solutions to any given problem. The advantage is that this accurately reflects what a programmer might be able to see in the real world, and the more difficult problems rely on coders doing independent research in pursuit of a solution. Once you've tested your code to make sure it works, you can compare your results to other users to see how they might have more effectively reached the same conclusion. If you're stumped, message boards are available, or you can spend points accrued through the course of the game to automatically see a solution. More complex puzzles are available in the form of the interview practice section, which presents real questions asked by interviewers. Major companies like Twitter, Facebook, and Apple have all submitted their own questions. The CodeFights interface also allows you to compete against friends and strangers. The head to head section allows you to pit your coding talents against other people and see who can develop the most effective solution in the shortest amount of time. For those looking to test their skills against professionals, they can engage in combat against bots designed by engineers from some of the world's largest tech companies. Additionally, CodeFights has regularly updated, seasonal content designed to help coders stay relevant in the competitive field. Tournaments rotate in and out of cycle regularly and generally focus on specific criteria, while daily and weekly coding challenges are also available. All of this is tied together in a system that encourages players to continue forward, rewarding players for successes and keeping track of assigned tasks.