Programming Challenge for Newbies in Clojure and Python too?

by 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.

Update

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

Follow me on Twitter to communicate and stay connected

{ 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.

Reply

Shailesh Khanolkar September 2, 2010 at 7:48 am

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

Reply

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:
http://blog.approache.com/2010/08/ruby-challenge-for-newbies-reborn.html

Cheers,
Dmytrii.

Reply

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.

Reply

Leonardo Bessa September 2, 2010 at 7:56 am

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

Reply

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’ :-)

Reply

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? :)

Reply

Peter Cooper September 2, 2010 at 8:40 am

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

Reply

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.

Reply

Bruno Croci September 2, 2010 at 9:07 am

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

Reply

Isaac Hodes September 2, 2010 at 10:02 am

Sounds fun to me!

Reply

Anthony Simpson September 2, 2010 at 10:02 am

Sounds awesome.

Reply

Baishampayan Ghose September 2, 2010 at 10:03 am

+1

Reply

Dhananjay Nene September 2, 2010 at 10:04 am

I think thats a nice idea. +1

Reply

Todd Huss September 2, 2010 at 10:09 am

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

Reply

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.

Reply

Todd Huss September 2, 2010 at 10:35 am

You may want to take a look at: http://codingkata.org

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.

Reply

Punjabi September 2, 2010 at 11:37 am

+1

Reply

Zmitro Lapcionak September 2, 2010 at 10:50 am

+1. Let’s do it.

Reply

Shantanu Kumar September 2, 2010 at 10:54 am

+1 Cool idea.

Reply

belun September 2, 2010 at 10:56 am

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

Reply

Michael Kohl September 2, 2010 at 11:50 am

That’s a cool idea! :-)

Reply

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.

Reply

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.

Reply

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.

http://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs

http://en.wikipedia.org/wiki/Essentials_of_Programming_Languages

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.

Reply

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.

Reply

Leo Noordhuizen September 2, 2010 at 12:50 pm

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

Reply

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. :-)

Reply

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

Reply

David Griffiths September 2, 2010 at 3:43 pm

I think Clojure is an excellent idea.

Reply

Nurullah Akkaya September 2, 2010 at 4:10 pm

That’s a cool idea. +1

Reply

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.

Reply

roby September 2, 2010 at 4:42 pm

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

Reply

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

Reply

Satish Talim September 2, 2010 at 5:50 pm

Probably “Programming Challenge for Newbies”.

Reply

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. :)

Reply

Tony Lara September 2, 2010 at 6:06 pm

(inc *challenge-idea*)

Bring it own.

Reply

Leonardo Vizagre September 2, 2010 at 6:29 pm

I think Python is an excellent idea!

Reply

Missing Faktor September 2, 2010 at 9:36 pm

+1, Great Idea! :-)

Reply

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 ;)

Reply

Atul Kulkarni September 2, 2010 at 9:52 pm

Awesome idea… I will certainly jump on with Python.

Reply

Jason September 2, 2010 at 9:59 pm

As a Python user, I support this idea

Reply

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).

Reply

Tanzeeb Khalili September 5, 2010 at 8:47 am

+1, great ideas!

Reply

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 Rubylearning.com! -:D

Reply

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.

Reply

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!

Reply

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.

Reply

Tanzeeb Khalili September 3, 2010 at 5:57 am

Sounds great!

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

Reply

diofeher September 3, 2010 at 8:59 am

It would be a good start to learn Clojure :)

Reply

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!!!

Reply

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.

Reply

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.

Reply

Leave a Comment

{ 13 trackbacks }

Previous post:

Next post: