5 Resources for Refining Your Programming Skills

In: Technology

29 Oct 2009

As a software developer, I often find that it’s easy to become immersed in my current projects without ever stopping to sharpen the tools in my developer’s toolbox, and learning to approach problems through a variety of methods is a valuable skill in developing elegant, efficient solutions. I’ve compiled a short list of websites featuring problem sets, competitions, and unique solution requirements to act as a resource for those programmers looking to get a little more out of their code. I hope it’s useful!

CodeChef

1. CodeChef

CodeChef holds monthly competitions in both India and the United States, and each consists of 6-8 problems of varying difficulty levels. These contests encourage participants to write elegant code by placing restrictions on the execution time and source code file size for each problem. Due to the restriction on execution time, most participants use compiled languages for their solutions. However, solutions from a wide range of languages are accepted.

Languages: Many

Code Golf

2. Code Golf

Code Golf offers a unique approach to solving puzzles, as its objective is to generate solutions in the least number of keystrokes. This criteria challenges programmers to develop efficient solutions and requires that they develop both their problem-solving abilities and programming knowledge.

Languages: Python, Perl, PHP, Ruby

Facebook Developer

3. Facebook Engineering Puzzles

The crew at Facebook has quite a few interesting puzzles to help satisfy your appetite. In fact, they’ve cleverly labeled the difficulties as hors d’oeuvre, snack, meal, and buffet to suppress your hunger as you develop your solutions. There’s also a Facebook application that allows you to show off your progress on your profile!

Languages: C/C++, Java, Python, Perl, PHP, Ruby, Haskell, Erlang, OCaml

Project Euler

4. Project Euler

Project Euler presents a series of mathematical and computer programming puzzles with varying difficulty levels. To allow more developers to participate, the problems are designed in a “chain” style so that easier puzzles will introduce concepts that are useful in harder ones.

Languages: Any

UVa Online Judge

5. UVa Online Judge

The UVa Online Judge website features a robust set of problems along with periodic contests to gauge the skill level of participants.

Languages: Varies by Contest

  • Print
  • Digg
  • Facebook
  • Google Bookmarks
  • Twitter
  • DZone
  • LinkedIn
  • Reddit

No related posts.

  • This is a good list to practice our programming skills. I am a member of CodeChef and it has a good way of allowing programmers to choose the level of problems to solve.
  • Thanks for mentioning CodeChef, if you have any ways we can make the site better, please let us know :)
  • Lutz Hankewitz
    Good List, maybe the code Kata by Chad Fowler may fit into this list.
    See http://codekata.pragprog.com/ for details.
  • Good list. I will be bookmarking this for later.
blog comments powered by Disqus

About this blog

The Other Side consists of ramblings by Ryan Bright, a Computer Science undergraduate at the University of Kentucky.

Photostream

    IMG_0062IMG_0252IMG_0248IMG_0233IMG_0231IMG_0230
  • Ryan Bright: Yup, I'm looking forward to the meeting. I just recently began working with Flash and Flex, so I [...]
  • Kevin: This is a good list to practice our programming skills. I am a member of CodeChef and it has a good [...]
  • Get Hired By Solving Programming Puzzles: [...] 5 Resources for Refining Your Programming Skills (via rbright.net) [...] [...]
  • Ryan Bright: Yup, I'm looking forward to the meeting. I just recently began working with Flash and Flex, so I [...]
  • @storypixel: Ryan! I've never met you I think but I hope to at the upcoming Flashcoders meet. [...]

Widgets