That way, the next time you need to solve a similar challenge, youll have a solution ready! This helps you be efficient and allows you to focus on larger problems, rather than the small details.
Note there are more great places for programming challenges beyond what Ive covered here. This article focused on those that Ive used so that I could speak from experience.
Now tell me: when youre looking for your next job, which of the following two would you choose to show your expertise?
Another potentially useful section is the Jobs Offers page. Here you can find job offers, some of which require you to solve a problem in order to apply most likely, itll require coding. The rest of the posts are more traditional, static job ads.
Besides battling bots, what else can you do on CodeFights?
Think back to when you were first learning how to drive. At first, it required your complete focus. You had to think about how fast you were going, worry when you were parking or merging into traffic, and so on. But now, you can drive while talking with someone and even singing your favorite song!
: A selection of problems to solve, categorized by type (algorithms, mathematic, AI, and more) or language.
: youre given some code and must locate and fix the bug
The editor comes prepopulated with some skeleton code and a clear indication of where to write yours. Once youre done coding you start running test cases.
Action area, with buttons to run tests, start the simulator, submit your solution, etc.
Moreover, you use math daily as a developer, so being able to do calculations quickly can help in your daily life.
Fight against real people either friends you invite or random opponents
: See how youre progressing compared to others and which achievements youve earned. A nice feature in the leaderboard is the ranking, grouped by complexity level (O(1), O(logn), O(n), and so forth), which helps with figuring out the average complexity of each users solutions.
Today he loves developing iOS apps, writing node.js backends, and he never misses a chance to learn something new.
Thats a good piece of advice. Dont expect too much from your brain after you use it all day long. Would you expect your legs to run all day or your arms to do pushups nonstop?
Rather than having an IDE, a list of available languages, complexity, Big O notation, and so forth, Advent of Code just asks you to provide an answer to a question.
To understand why programming challenges work, first you need to understand muscle memory.
At first, performing an unfamiliar action takes focus. But if you practice enough, you can preform the action almost without thinking.
Help panel that has a description of the problem to solve
Sign up to receive the latest tutorials from each week, and receive afree epic-length tutorialas a bonus!
Id like to wrap up with a few tips and tricks.
Once youve registered, youll get an invite to a 1:1 fight with a bot. Its pretty easy any developer with 1 day of experience should be able to win the fight.
An option to write code to implement a linked list on a cold white board
, she prefers to use cooperative environments. This way, when youre learning you can be in a low-risk environment and can take your time.
Keep your iOS & Android skills up-to-date via hands-on tutorials in video form! The largest collection of iOS, Android, Swift, and Kotlin video courses anywhere.
I recently participated in a screening process after getting an invite from Amazon yes, that Amazon. :] The coding experience was pretty good and the available time was reasonable; I finished it in 1:58, just two minutes shy of the two-hour time limit.
In my personal opinion, MathFights is undeniably addictive and remarkably useful. I used to spend a lot of time on it. One day I realized that it was becoming a distraction, so I decided to stop. This was after reaching division 7. Incidentally, I dont know that I could have progressed much further. Staying there without getting a downgrade was pretty hard.
I asked our readers what other sites they recommend, and they gave the following list:
Give it a break and let it relax, from time to time. Just dont abuse it.
How does it work? You have a browser-based IDE, and its a full featured build that includes a:
Although the environment includes a web-based editor where you can write code and test, I always prefer a local, desktop-class IDE. In this case, I opted forCodeRunner, a coding editor that supports several languages and capable of compiling and running directly from the IDE.
The choice is clear. Killer AI bots are always the better choice for showing off your skills. :]
: youve given some incomplete code and must fill the missing part
The list of companies you might potentially work for are respectable names, such as:
Remember, although traditional learning and a challenging workplace are valuable tools, theyre not enough.
Competition often drives us to try harder than we would otherwise. This can be great when youre trying to improve your coding skills.
But be sure not to overdo it your brain can only take in so much at a time. Its better to be consistent and space it out.
Unity team memberBarbara Reichartsaid that she prefers the following:
Note that employers can choose to reduce the list of available languages I presume that a company looking for an Android developer wouldnt be interested in a candidate who excels in Swift development. Well, at least not today. Tomorrow, who knows? :]
But theyre more than just fun they also help you become a better developer.
Big O notation:What is it? It measures the complexity of an algorithm, and its used to figure out the expected processing time depending from the problem size.
You and your opponent are presented with one question at a time along with a list of potential answers. Your challenge is to determine the correct answer in the shortest possible time, staying within the predefined time limit.
Antonio is a veteran code writer who started tapping on keyboards when memory was measured in bytes instead of gigabytes, storage was an optional add-on, and the most used language was BASIC.
Gemma put it well: I would prefer to be getting some sunshine and resting my brain rather than continuing to stress it.
This explains why programming challenges work. They give you opportunities to build muscle memory, via practice on common development challenges.
Math problems come in different shades of complexity, so MathFights usesdivisionsto group questions by difficulty. Division 1 hosts the simplest problems and is where you start. After a certain number of wins, youre promoted to the next division. Look out: youll get a downgrade if you lose too many fights.
Consider a few other common programming tasks:
CodinGameis about coding games, but its not a freeform blank sheet of paper where you have to invent and draw your game.
Following an established pattern for coding challenge platforms, CodinGame also offers services that are designed for companies that want to hire candidates.
However, the site is not about cool avatars; its about coding and debugging.
The list of languages is pretty long 25 in total. For you Apple Developers, theres Objective-C and Swift.
Lastly, theres a practice section where you can just solve problems without the pressure of a real opponent. Its just you against yourself and a clock.
Another thing to note is competition isnt always the proper solution.
HackerRank, formerly known asInterview Street, is a platform offering coding challenges, usually in the form of algorithms to implement. I love its slogan: Your most productive distraction.
To some extent, its similar to Swift playgrounds. The list ofavailable languages and environmentsis pretty long 45 in total which includes new, old, OO, functional, imperative, shell, DB, and so forth. Just to name a few:
If youve ever tried a programming challenge, then you know they are fun and addicting.
Each challenge consists of a three-round fight, and there are three types of challenges you need to solve:
: What is there to say about this really? Theres just too much to discuss here in this review. To learn and challenge yourself, just pick a project and start coding.
You, as a developer, can solve challenges, but can also participate in events that are somewhere between a paid gig and a contest. In fact, companies can create an event if they need fresh ideas for development projects, such as:
These programming challenge sites can often be addicting, as I know from experience!
The editor is suitable. It has auto-complete, but the comment font color is a little difficult to read. Copying and pasting into an external editor is highly recommended.
Why mathematics? Well, this article is about keeping your brain sharp, and solving math problems does that. Practicing mathematics gives your brain elasticity.
Among all the services reviewed in this article,MathFightsis the only one where you dont code. Actually, its not even about programming. As its name suggests, its about math challenges that are usually served as 1:1 fights.
Having this attitude can cause significant problems in the workplace, as Sarah Mei notes:
Each question has a winner and loser; the winner is whomever chooses the right answer in the least amount of time. For each round, you and your opponent get a score. At the end of the fight, the player with the highest total score wins.
For more details, check out ourCollection Data Structures in Swiftarticle.
you can get started with programming challenges.
: Sure, youre solving problems, but youre also fine-tuning your collaboration skills, which is vital for success. While youre at it, youll probably also compete with your colleagues in subtle ways and pick up some new tricks. You might even find your next employer this way! A word of advice: they burn hot and fast and can be quite exhausting. I dont recommend doing a hackathon every day or week for that matter.
Over the past few years, Ive done hundreds of programming challenges. Ive noticed the regular practice has made me a smarter, faster, and stronger developer.
How you find the solution does not matter. Nobody cares what language your work in or how efficient your algorithm is. Advent of Code offers complete freedom of choice.
He finds Swift a very expressive language, and still thinks Objective C is great and unconventional.
Note:Special thanks to these wonderful people for the invaluable input they shared to help create this article:
Each round comes with a description of the problem to solve.
To be the best developer you can be, you want to build your muscle memory. You should look outside your comfort zone and work with unfamiliar tools and problems. Thats what programming challenges are all about!
An option to write AI for a bot whose goal is to kill its enemies that lets you use your browser for your IDE
CodinGame provides you with a rare opportunity to watch your code come to life and its as amusing as it is stimulating. If you like games and coding, then this is the place to be.
Challenges are fun and fulfilling but not the only way to keep your brain sharp. There are other ways to stimulate your brain! Here are some of the best:
So remember competition is a tool, and deploy it only when appropriate!
Employers use time-limited challenges on HackerRank to evaluate potential candidates programming skills and problem-solving abilities with any of its available languages.
Once in the dashboard, I spent some time wondering what to do next. Unlike the other services reviewed here, theres no guidance and no check this nor do that kind of UI. You have to explore on your own.
I may not have quoted everybody, but trust me when I say that their input helped me a lot shaping and giving this article a direction!
Heres what I consider the best. I recommend you pick one that sounds interesting and give it a shot!
But there are a few gotchas about competition Id like to point out.
Dont let the presence of the word Game fool you into thinking this is a casual site its not. It is, however, a unique way to stimulate your brain. In coding game youre given:
Create and submit your own challenge
At CodeEval, there is only one type of challenge: you versus yourself. There are three lists of challenges that are divided by difficulty.
: Real people are very creative when its time to solve real problems. Not only can you get help when youre stuck, but you can help others when theyre stuck. By participating, youll learn a lot and increase your fluency with the language(s) of your choice.
There are two things that I really love aboutAdvent of Code:
Thats it for now. If you have any questions, comments or suggestions, please join the discussion below!
In this article, Ill explain how you can do the same:
Competition is a tool to improve yourself, what youre working on, and the people around you. It is not a way to prove youre superior.
I hope that Ive convinced you to give programming challenges a try!
Think back to when you first started programming on a new platform. It took a lot of effort at first, right? Often you needed to look up method names, read documentation, and so on.
Ready to start building some muscle memories? Luckily, there are some great sites out there offering programming challenges.
As soon as you land to theCodeFights, you immediately notice the appealing superhero avatars. Disappointingly, you cant use them for your own profile theyre just there for looks.
Sign up to receive the latest tutorials from each week, and receive a free epic-length tutorial as a bonus!
As humans, were naturally competitive. We compete on almost everything:
On the upside, you have its browser-based editor that sports autocompletion and smart navigation you can use CTRL + left or right arrow to move to the previous/next word, even with camel case identifiers.
Finally, Ill wrap up with some
programming challenges help you become a better developer.
: Time-limited challenges where youre challenged by a set of problems grouped by a common subject that must be solved within a predefined timeframe.
Theres a lot more to TopCoder than can reasonably be discussed here covering it all would monopolize this article. Have a look, explore, then feel free to talk about what you find in our forums!
Whereas similar services offer explicit recruitment services to customers, or dont have a business model at all, Topcoder has a few models that are probably unique in this area.
for our massive collection of video courses
When running a test case, the simulator actually shows the game with the AI-controlled actor following the orders you gave with your code. By the end of the simulation you know whether the test passed or not. If not, most likely your actor was killed. :]
There are also recurring tournaments, single-round matches and other contests, some of which allow or require teams. If you opt for a team contest, you collaborate with others in a hackathon-like format to solve a problem.
Thats muscle memory: knowing how to perform an action without conscious effort. And you can develop muscle memory for programming tasks too!
Finally, Gemma points out that competition isnt for everyone. Its good to acknowledge that not all personality types thrive in a competitive environment, and there are other ways to keep your brain sharp.
CodeEvalseems like a front end for a recruitment business. While thats not entirely a negative thing, it is the feeling I got after registering and accessing to the dashboard. But thats just my subjective take.
One downside of this otherwise useful service is the restricted list of languages. Theres also no Swift or Objective-C, so iOS and macOS developers may feel some disappointment.
Candidates compete to win a payment from the company. As you might expect, theres a lot of competition, and usually only one winner per project. On the bright side, its absolutely an excellent way to test your capabilities on a real, tangible project.
At this point, you wont need to think about how to solve the problem anymore. it will just become a normal routine when writing code.
As you may have noticed, many of these programming challenge sites are competitive.
Challenge company bots (Dropbox, Uber, Asana, Quora, and more), which can help you get noticed and maybe even hired
: you implement a function from scratch
It usually makes sense when the algorithm performs one or more loops, where the number of iterations is in strict relation with the input size.
Pro tip: Keep some paper, a pencil and maybe a calculator nearby because you will have to calculate.
The site provides all the graphics, animations, effects, scenography, etc. CodinGame is a bit like being on a movie set where youre the director; you write your script to control your actors, and then you watch them execute that script.
I recommend you take a site mentioned in this article and give it a shot! Whatever you choose, whats most important is that you do it regularly.
You can also create public or private tournaments, which is very handy when you and some friends want to engage in some friendly, intelligent competition.
TopCoderwas the one of the first (if notthefirst) service to offer coding challenges.
When you first try these things, it can often be time consuming or confusing. But if you practice it enough, you will build a muscle memory with the solution.
Your task is to write the AI. Pretty awesome and interesting, eh?
You start a fight with a click of a button, then youre matched with a random opponent and the fight begins!
The number of available languages is 26. You wont find Swift, but Objective-C made the cut. Besides the dashboard, which looks very nice, the rest of the experience is a little spartan.
, she prefers competitive environments. This way, you can have a fire lit under you to drive you to the next level.
But after a while, you developed muscle memory, and are now able to write code off the top of your head.
When trying to become great at things you already know
So remember to stay focused on self-improvement, not superiority. As Swift team memberGemma Barlowsaid, friendly rivalry is always good as long as youre striving to create a better product for your users.