Programming Challenges and Puzzles

Source

A great way to hone your coding skills is by completing programming challenges and puzzles. Solving these is also one of the best ways to warm up for programming contests and competitions.

Challenges are presented for a number of different programming languages and some puzzles are actually completely language agnostic. So, you'll find puzzles you can complete if you're used to programming in popular programming languages like Java and PHP (or something more obscure like Clojure.)

It's important to note that programming puzzles are made for coders at all levels, so if a puzzle has you completely stumped, there are tons out there that may be more suitable for your skill level.

Project Euler

One incredibly popular site for programming puzzles is Project Euler. Here users can solve problems in any language of their choosing. Project Euler is heavy on math problems, so you might want to look over the site before joining if you're not strong in math. However, it's free to participate (Euler runs on donations) so if you want to give it a shot (and boost both your programming and math skills, go right ahead!

The site presents users with math problems and then a text field where users can enter their answer. (There's captcha so you can't *ahem* programmatically cheat.) Thus, you never have to show your code to Project Euler, making it perfect whether you want to program in C, Python, Lisp, Java, or whatever (or my personal favorite, Ruby.)

What's really cool about this site is that upon logging in, you're greeted with a number of personal stats. As you solve puzzles, you're given badges and little blips on a progress chart (see the image below.) This is a great motivator and just generally cool to look at. Your profile is completely private unless, of course, you add friends.

My Project Euler account showing off all Euler's goodies.
My Project Euler account showing off all Euler's goodies. | Source
A quick look at at the UVa Online Judge interface
A quick look at at the UVa Online Judge interface | Source

UVa Online Judge

This site has literally hundreds upon hundreds of puzzles for users to solve. While UVa Online Judge isn't as pretty as Project Euler, they do a really nice job of sorting and categorizing problems so that users like you can quickly find interesting puzzles.

One thing that is really cool about this site is they show a little statistics bar next to each problem. These stats show the number of users who have attempted a given problem and what percent of these users were able to correctly solve it.

UVa accepts answers written in C, C++, Java, and Pascal. If you've got a competitive streak, you may be interested in the contests UVa Online Judge occasionally hosts.

Facebook: Solve Puzzles, Get Hired

A really awesome place to complete programming puzzles is Facebook! No, I'm not talking about networking with a random computer science student and offering to do their homework. Facebook actually offers programming puzzles. On top of this, if you do well on their programming challenges, you can actually get a phone interview! It doesn't get much cooler than that!

There are two sections to Facebook's puzzle platform. You'll want to warm up by trying your hand at some of the problems on their puzzles page before getting serious with Facebook's Programming Challenge.

Solve problems, get an interview? Awesome!
Solve problems, get an interview? Awesome! | Source

Sphere Online Judge (SPOJ)

If UVa sounds appealing to you, but they don't support your favorite language, Sphere Online Judge (or SPOJ) might be right up your alley. While these problems aren't language agnostic, the number of languages SPOJ supports are astounding. In fact, SPOJ supports over 40 programming languages!

SPOJ's sorts their problems by categories such as classical, challenge, partial, and tutorial. Within each category, you can select the language of your choice to view the puzzles compatible with your language.

With a problem-set of over 6600 tasks, written in English, Polish, Portuguese, Vietnamese (and more), accessible 24 hours a day, SPOJ is a place where you can spend some serious time improving your coding skills. Like UVa, SPOJ also runs a number of contests!

Ruby Quiz

While Ruby Quiz was meant for the Ruby programming language, you can, for the most part, use any programming language of your liking. Some problems may require some tweaking to work with your programming language, but it's seriously worthwhile.

Ruby Quiz offers some really in-depth puzzles on real life situations you might run into in your career as a programmer. This website became so popular that a book was made, "The Best of Ruby Quiz" which is essentially, as its name suggests, a compendium of the most popular challenges on the Ruby Quiz site. Both the book and the website are worth checking out whether or not Ruby is your weapon of choice.

© 2011 Melanie Shebel

More by this Author


Comments 4 comments

tammyswallow profile image

tammyswallow 4 years ago from North Carolina

Oh my.. that is very interesting. I am afraid to take the quiz. If I fail, they might ban me.. LOL. I do know I love all the super smart geniuses who do these things and help the internet run smoother. Great job!


Daisy Mariposa profile image

Daisy Mariposa 4 years ago from Orange County (Southern California)

Melanie,

Thanks for publishing this Hub. I have a friend who teaches programming. He was teaching in the Game Software Development department at a career college. He'll be teaching C++ at a community college beginning next week. I know he'll want to read this article.


brittanytodd profile image

brittanytodd 4 years ago from Kailua-Kona, Hawaii

Awesome hub. I had no idea I could get a phone interview with Facebook so easily. Thank you.


BlissfulWriter profile image

BlissfulWriter 4 years ago

Programmers love puzzles.

    Sign in or sign up and post using a HubPages Network account.

    0 of 8192 characters used
    Post Comment

    No HTML is allowed in comments, but URLs will be hyperlinked. Comments are not for promoting your articles or other sites.


    Click to Rate This Article
    working