I've been teaching Ruby and Rails to some young 'uns who've been doing some PHP or Java at Uni but not coded in anger recently.
Note to all universities: it would have been easier if you'd taught them what words like "version control" and "test harnesses" meant in their first week. Trust me. These guys think svn is some useless extra chunk of work to be done and that unit tests are just there to keep me quiet... *sigh*. Anyway, last week I set them a simple pure Ruby exercise. The solutions I got back were interesting: people have clearly been taught some very bad programming techniques, and when they move to Ruby it confuses the hell out of them. When I showed them my solution, they thought it was one of the most beautiful pieces of code they'd seen, but I considered it quite ugly. I'm curious as to whether anybody would like to try a peer code review/ quiz via the mailing list in the spirit of helping us all produce better/more elegant Ruby. We'll keep it simple and in the spirit of Ruby Quiz so anyone can compete, but I thought it would be fun and not quite as scary as the main Ruby quiz which to me at least felt like walking into the 100m Olympic finals and going "I can compete with these guys" when I tried it last year. If people like this, we could consider making it a weekly exercise. Here's the exercise I set last week, which is ultra-simple to get us started: The Fibonacci sequence is a sequence beginning with 1, and producing the next number in the series by adding the previous two numbers. Here is the start of the sequence: 1, 1, 2, 3, 5, 8, 11 Write a program that will output the Fibonacci sequence either to infinity, or to a pre-set number of iterations. This is very easy, so "points" will be awarded for elegance, simplicity, beauty, brevity and other factors that make us go "that's nice!" I also want to have a predicate method that can tell me if a given number is in the Fibonnaci sequence. I want to be able to do this: 1.is_fibonnaci? # returns 'true' 2.is_fibonnaci? # returns 'true' 4.is_fibonnaci? # returns 'false' This is also very easy, but the "points" here will be awarded for performance - so your sequencer above might be very elegant, but is it *quick*? If you're playing, please don't post your code or solutions until Monday morning to give others a chance to play. I hope plenty of you join in. -- Paul Robinson http://vagueware.com :: [EMAIL PROTECTED] :: +44 (0) 7740 465746 Vagueware Limited is registered in England/Wales, number 05700421 Registered Office: 3 Tivoli Place, Ilkley, W. Yorkshire, LS29 8SU Correspondence: 55 Velvet Court, Granby Row, Manchester, M1 7AB --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "NWRUG" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/nwrug-members?hl=en -~----------~----~----~----~------~----~------~--~---
