Programming Challenge for Newbies in Clojure and Python too?

by Satish Talim on September 2, 2010

Programming Challenge for Newbies in Clojure and Python too?

RubyLearning has been conducting the monthly Ruby Programming Challenge for Newbies for over a year now and so far 12 challenges have been completed. The 13th challenge is in progress. All this was possible due to the extensive support we got from Rubyists across the world. Also, you all indicated that we continue with these challenges in the months to come.

Recently, my colleague Dhananjay Nene posted a Python based solution to the 13th Ruby challenge. While discussing the solution it struck me that it would help Clojure and Python Newbies, if we opened up these challenges in these languages too. Dhananjay and some of my Clojure colleagues are interested in evaluating the submitted solutions in Clojure and Python and maybe we could start the challenges from Oct. 2010.

Clojure and Python enthusiasts – interested? What Do you Think? What is Your Opinion? Please share in the comments below.


3rd Sept. Thanks for the very encouraging response. Based on the feedback received so far, we have decided the following:

  • We will start the challenges for Clojure, Python and Ruby from 1st Oct. 2010. We will call these “Programming Challenge for Newbies” and host it on this blog till end Dec. 2010. If the response is encouraging, we can host the challenges on different domains.
  • We will have separate panels to evaluate the solutions. One each for Clojure, Python and Ruby.
  • We will keep separate prizes for the 3 languages (and hopefully would find some sponsors).
  • The challenge problem setters (fixed till Dec. 2010) would be told that the problem should be solvable in all languages and specifically Clojure, Python and Ruby. This means that the problem setter should not set a problem that needs to be solved by some specific language feature.

Technorati Tags: , , , , ,

Posted by Satish Talim

{ 53 comments… read them below or add one }

Sunil Kelkar September 2, 2010 at 7:17 am

Cool idea! This should attract more sponsors and participants. Thanks Satish.


Shailesh Khanolkar September 2, 2010 at 7:48 am

Congrats Satish. Just goes to show how three different communities can work together.


Dmytrii Nagirniak September 2, 2010 at 7:51 am

The idea is good, but what about the execution?

Some time ago there was a question about existence of Ruby Challenge because of not many Rubists are willing to set the challenge.

I don’t think this problem has changed dramatically since then.
So wouldn’t you have the same issue with Clojure and Python.

Sure, people can submit solutions in other languages, but who is going to “judge” those?

On the other note, it kind of defeats the purpose of “!Ruby! challenge”.

Maybe it would have make sense to open just “Programming challenge” and make it more to the community to judge the solutions?

Again thinking about what I wrote before:



Satish Talim September 2, 2010 at 7:59 am

There are Clojure and Python experts who have agreed to judge the submitted code, if we open the challenge to these language enthusiasts.

We have Ruby experts willing to set the challenge upto Dec. 2010 and I am hopeful that more would contribute.

Yes, whether we still keep the name as RPCFN or drop the R(uby) part can be decided based on the response we get.


Leonardo Bessa September 2, 2010 at 7:56 am

This will be an interesting way to learn Python and Clojure for me.


Aldric Giacomoni September 2, 2010 at 8:02 am

I think it’s a great idea, though clearly it couldn’t just be called ‘Ruby Challenge’ :-)


James Edward Gray II September 2, 2010 at 8:31 am

If people want to submit in Language X and people agree to judge Language X, there doesn’t seem to be much reason not to allow it.

However, now the question becomes, why just those three languages? What about Language Y? :)


Peter Cooper September 2, 2010 at 8:40 am

Sounds like you need to be starting CodeLearning, ProgrammingLearning, or something like that, Satish! :-)


andhapp September 2, 2010 at 8:53 am

I second Peter’s suggestion. RubyLearning should target Ruby developers and there should be a different one for Python or Clojure or any other programming language for that matter.


Bruno Croci September 2, 2010 at 9:07 am

Wow! Awesome idea. It’d help me — and a lot of people — learn Clojure faster. :)


Isaac Hodes September 2, 2010 at 10:02 am

Sounds fun to me!


Anthony Simpson September 2, 2010 at 10:02 am

Sounds awesome.


Baishampayan Ghose September 2, 2010 at 10:03 am



Dhananjay Nene September 2, 2010 at 10:04 am

I think thats a nice idea. +1


Todd Huss September 2, 2010 at 10:09 am

Love the idea of adding multiple languages, I’d love to see Scala in there!


Punjabi September 2, 2010 at 10:18 am

I agree with Todd, would love to see Scala in the mix! I would definitely jump in for Python.


Todd Huss September 2, 2010 at 10:35 am

You may want to take a look at:

They have a nice unified framework setup for solving the various problems (or katas) in the numerous languages that run on the JVM. Using a similar framework might make it easier to support multiple languages, however, if you have one judge per language then perhaps it’s not an issue.


Punjabi September 2, 2010 at 11:37 am



Zmitro Lapcionak September 2, 2010 at 10:50 am

+1. Let’s do it.


Shantanu Kumar September 2, 2010 at 10:54 am

+1 Cool idea.


belun September 2, 2010 at 10:56 am

Would definitely participate in the Clojure challenge. I thought it’s already on :P


Michael Kohl September 2, 2010 at 11:50 am

That’s a cool idea! :-)


Michael Kohl September 2, 2010 at 2:34 pm

So far, the prizes were Ruby books or Ruby-related screencasts from PeepCode. With Clojure and Python being added to the challenge, we’d have to make sure that the prizes become more generally appealing.


Alan Watson September 2, 2010 at 11:55 am

I would advise against diluting your site. It should be the site to visit for all things Ruby.


jonfernquest September 2, 2010 at 12:06 pm

I think a Clojure challenge would be a wonderful idea.

I always dreamed of doing ***practical scripting tasks*** in a Lisp-like language (the one I was using was Scheme) and also having all the libraries of Perl or Python.

Clojure overcomes this by harnessing Java’s libraries.

Libraries plus the well-proven raw programming language power of a Lisp language as presented in the classics Structure and Interpretation of Computer Programs (SICP) and Essentials of Programming Languages (EOPL) would be ideal.

Data munging or screen screen scraping data out of newspaper articles is what I use programming for now everyday, since I work at a newspaper. I use Ruby but I would love to try Clojure for this.


Paul McKibbin September 2, 2010 at 12:18 pm

Excellent idea. It’ll become more and more like a mini google code jam, and give some of us exposure to languages that we haven’t previously had much or any experience with. I especially like the comment before mine about Scala. That along with Haskell and Erlang has been on my “investigate” list for some time now.


Leo Noordhuizen September 2, 2010 at 12:50 pm

Great idea ! Especially for Clojure it could give a boost.


Shailesh Kalamkar September 2, 2010 at 2:05 pm

I am a Ruby newbie but I found Python coding interesting. I am willing to learn it in the future. :-)


Gary Overgard September 2, 2010 at 3:02 pm

I love it! It would be a great way to see multiple ways to solve the same problem. I am enjoying Clojure, but finding it more difficult to get up to speed than other languages I have learned. This would be the perfect way to have a community of Clojure learners


David Griffiths September 2, 2010 at 3:43 pm

I think Clojure is an excellent idea.


Nurullah Akkaya September 2, 2010 at 4:10 pm

That’s a cool idea. +1


jabran September 2, 2010 at 4:40 pm

This looks cool. However, I think there should be two winners – one with the best Ruby code and the other one in any approved alternative language. This way, we can see the situations in which Ruby triumphs other languages and vice verse.


roby September 2, 2010 at 4:42 pm

Sounds great.
This will be an interesting way to learn Python and Clojure apart from Ruby


Willian Molinari September 2, 2010 at 5:47 pm

I like Python and Clojure, but “Ruby challenge” in Python sounds strange :P
Maybe a new name. :P


Satish Talim September 2, 2010 at 5:50 pm

Probably “Programming Challenge for Newbies”.


Rohit Arondekar September 2, 2010 at 6:05 pm

+1 for Programming Challenge for Newbies. Sounds like a nice idea to include Python and Clojure. Will be interesting to see how the solutions compare. :)


Tony Lara September 2, 2010 at 6:06 pm

(inc *challenge-idea*)

Bring it own.


Leonardo Vizagre September 2, 2010 at 6:29 pm

I think Python is an excellent idea!


Missing Faktor September 2, 2010 at 9:36 pm

+1, Great Idea! :-)


Julio Javier Cicchelli September 2, 2010 at 9:42 pm

Every opportunity you provide to teach a programming language is always more than welcome, man!

I also agree with some of the comments above that, in order to expand this concept to Python and Clojure, a revamp on the name of the challenge has to be made.

If the problem to solve is general enough, you can propose to solve the problem in the language of choice and then chose the best solution based on different criteria.

Particularly speaking, it’d be cool to learn Clojure by diff ;)


Atul Kulkarni September 2, 2010 at 9:52 pm

Awesome idea… I will certainly jump on with Python.


Jason September 2, 2010 at 9:59 pm

As a Python user, I support this idea


Cary Swoveland September 2, 2010 at 10:00 pm

Sounds good to me. I suggest separate sections for Ruby, Python and Closure, a prize for the best in each section and no attempt to choose the best of the three best (to simplify judging).

I suggest the competition be open to all, not just “newbies”. I see several advantages:
- More entrants.
- More varied and interesting solutions.
- More and better comments offered by entrants on other entrant’s solutions (which I think should be encouraged).
- The possibility of simplifying the judging by simply allowing participants to vote.

Possible names: “Satish’s Programming Challenge”, “RPC Programming Challenge”, “Clojure Ruby And Python Programming Challenge” (or some simplification of the last one).


Tanzeeb Khalili September 5, 2010 at 8:47 am

+1, great ideas!


Blag September 2, 2010 at 10:13 pm

I have been away from Ruby for some time, but planning to come back soon…also I’m interested in learning Python…so sure! Having Challenges would be an awesome opportunity to both learn and share knowledge.

Another big hit from! -:D


AkitaOnRails September 2, 2010 at 11:22 pm

Great idea. But I also agree that if you will use more languages “Ruby Challenge” is probably not a good name. Maybe “Programming Challenge” or something similar would fit better. Other than that, I am in favor or having more languages. I can learn something myself as I have no experience at all in Clojure.


Imhotep September 3, 2010 at 12:15 am

This could work,because,Python and Clojure apart from Ruby are open source friendly, and very powerful.
I think you should keep it related to, the hottest cutting edge technologys only.
Otherwise you will lose the buzz factor, that you have now,because your classes are better than many 2 k boot camps Satish!


José Carlos Monteiro September 3, 2010 at 3:06 am

Like I commented in Facebook, I think that challenges, overall, should remain focused on a specific language. Not that there’s really much of a difference, but because I think that a coding challenge should focus more on the challenge itself under a specific language rather than falling into “lines of code” ambiguous comparisons.

After lifting up Ruby Challenge then proceed to lift up Python Challenge and Clojure Challenge and Scala Challenge. And for those rare moments where language is of not so much substantial consequence, issue a Programming Challenge. Perhaps 3 weeks out of 4 in specific languages and 1 week in any language of choice.


Tanzeeb Khalili September 3, 2010 at 5:57 am

Sounds great!

I think contests for intermediates/experts would be a hit too.


diofeher September 3, 2010 at 8:59 am

It would be a good start to learn Clojure :)


Juan Gomez September 4, 2010 at 7:49 am

I’d be delighted to participate, this site was the one that got me hook into dynamic languages, unfortunately I ended up going to Python so I’d love to participate in a Python challenge right here!!!


Karel Minarík September 4, 2010 at 3:24 pm

I agree with most of the commenters that it’s a good idea — it would provide nice side to side examples how to solve the challenges in different programming languages and paradigms.


deepak kannan September 28, 2010 at 1:46 pm

sounds good, but i have a suggestion. Let the problem be primarily for one language. If someone solves it in another language good for him.

It would be lame if a problem is not asked if it is not-elegant in another language. There should be no such requirement that it has to be solvable in all the three languages.


Leave a Comment

{ 13 trackbacks }

Previous post:

Next post: