• busy
  • busy
  • In the field
  • In the field
  • Rust
  • Rust & mess


  • Ruby coding dojo

    I’ve learned a lot from the first Ruby coding dojo we organized last thursday.

    First, this dojo reinforced some strong convictions of mine:
    - practice is the essence of art. Whether you are a musician, an illustrator, a surgeon, or a sportsman, it is indeed by practicing everyday the same gestures (and by learning more of them) that you tend towards perfection.
    - the best way to teach and share is to practice together, exchange views, talk about the code at hand. And do it a lot. At Eyeka’s I have practiced enough pair programming to feel the benefits of everyday technical discussions on myself (that’s how I learned Ruby & Rails from scratch) and on others (that’s when I saw good programmers become excellent ones).

    I also discovered that the kata is not so much about what you do but rather about how you do it, how you present your code to others, how you explain your thought process and how you structure your ideas so they follow an intuitive flow, even for people who aren’t familiar with the concepts you’re dealing with. You surely can have a great kata on a very simple exercise.

    Last but not least, I have been really impressed by Emmanuel Gaillot’s performance which undoubtfully required a fair amount of preparation and a strong concentration. The kata he chose to present — to a non Rubyist audience — was consistent and a very good example of simple and powerful Ruby code accessible to everyone.

    It demonstrated the great intuitiveness of the language itself and was perfect to introduce and demonstrate the power and usefulness of Test Driven Development. For 2 hours we’ve been really doing TDD by the book (and not trying to cope with the test coverage afterwards)… And we got to see Shoes in action, Yay!

    We’ll keep you posted for the next one!

    Tags :

    Tags: , , , , , , ,

    4 Responses to “Ruby coding dojo”

    • seb Says:

      Practice, as in musical practice or just craftsmanship practice, is a common and recurring subject in some circles. Just talking about books, there are a few interesting things in The Pragmatic Programmer, most should be obvious in theory, but that’s not really the truth for everybody. One tip for example (or at least, I think that it comes from this book, but I don’t have my copy handy) is to learn a new programming language each year. If possible with a different paradigm (learning Java and then C# is not what the tip mean, but one could look at Java and then at F# instead).
      And there’s also The Passionate Programmer (I preferred the original title, but not everybody agree) where one rule would be that you learn better when practicing with others, but also that it is best to learn with people with a higher level. I recently stumbled upon a post in my google reader that gave a quick lesson of the same kind: I’d rather be in last place.

      (and I hope the links work ok)

    • karinesabatier Says:

      I found a lot of similarities between learning to play an instrument and writing clean code: you walk through about the same steps and yes, you learn much quicker if the teacher’s great.

      There’s one pragprog that I read recently and really appreciated on the learning process :
      Pragmatic Thinking and Learning: Refactor Your Wetware. It helps in your everyday life if you’re interested in self-improvement.

      As for one language a year, that’s probably a rewarding and constructive experience provided that you spend enough time on it (otherwise you must feel quite frustrated?). Thanks for the links!!

    • seb Says:

      Note that to agree with each other, it all depends on who you call a teacher: you have to consider that all the people you’re working with, playing music with or doing sport with, are, somehow, teachers.

      Spending 4 hours once with a great teacher won’t have the same effect as working 8 hours a day, 5 day a week with people who can’t see code smell, or playing twice a week with somebody who can’t position him/herself on a squash court or playing more than two major chords.

      Regarding learning a new language each year, this is more of an exercise, just like a kata: for example, trying to solve the same problem with different paradigms (OO, functional, logical, you name it…). You don’t have to become an expert, but just to get an understanding.

    • karinesabatier Says:

      “you have to consider that all the people you’re working with, playing music with or doing sport with, are, somehow, teachers.” > That’s exactly what I meant :)

    Leave a Reply