• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Coding dojo
 

Coding dojo

on

  • 1,519 views

A presentation made by eXo Platform SEA. ...

A presentation made by eXo Platform SEA.
Presentation introduce and demo about Coding Dojo, a methodology enhance the coding skills of attendees by doing some very small exercices in a funny atmosphere. This is like when you want to practice a sport like Judo, you need to practice some basic exercices with some judo masters before doing serious business like competitions.
There are usually two styles of exercices :
- Kata prepared by someone before the session and executed in front of the public or
Randori, a more exploraty form of a Kata where the whole group participates.

Statistics

Views

Total Views
1,519
Views on SlideShare
1,519
Embed Views
0

Actions

Likes
0
Downloads
20
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • In the dojo we... - Teach one another - Explain and present code to one another - Explore each other’s solutions - Work together - Build a community (We “forked” the concept - stole the ideas we liked and adapted it to our own group’s dynamics... ) It’s easier to learn when you’re having a good time. Other considerations for making the dojo a success... Community building was an aim in addition to learning The pizza and beer = important means of community building. Share “war” stories, demo stuff and generally have a good time. People relax and look forward to the coding aspect of the dojo. For open source developers community is important. Adapt it to your needs, experiment, expect to get things wrong but please HAVE FUN, learn, practice and improve!
  • Very simple philosophy. Improving existing skills is also important. To improve one needs to practice... Socrates (469-399 BCE): The unexamined life is not worth living. It’s good to be in a continuous process of examination and re-examination Heraclitus (c.535 - 475 BCE): Much learning does not teach understanding. In other words... don’t just read the book. Go do something (practice!)
  • What happens at a dojo? codingdojo.org sets out detailed rules for timing and conduct... Retrospective - What did we learned? / What did we liked? - What could have been better? - Discussions or comments
  • - everyone should be able to reproduce - All are welcome to ask questions, interruptions are allowed at any moment to ask questions
  • - Comments and critics only on Green - Silence on red - Randori means “chaos taking” - something like freestyle. - Audience mustn’t interrupt - only co-pilot.
  • No real world problems - Context and pressure - Memory requirements - Performance requirements
  • In the dojo we... - Teach one another - Explain and present code to one another - Explore each other’s solutions - Work together - Build a community (We “forked” the concept - stole the ideas we liked and adapted it to our own group’s dynamics... ) It’s easier to learn when you’re having a good time. Other considerations for making the dojo a success... Community building was an aim in addition to learning The pizza and beer = important means of community building. Share “war” stories, demo stuff and generally have a good time. People relax and look forward to the coding aspect of the dojo. For open source developers community is important. Adapt it to your needs, experiment, expect to get things wrong but please HAVE FUN, learn, practice and improve!
  • In the dojo we... - Teach one another - Explain and present code to one another - Explore each other’s solutions - Work together - Build a community (We “forked” the concept - stole the ideas we liked and adapted it to our own group’s dynamics... ) It’s easier to learn when you’re having a good time. Other considerations for making the dojo a success... Community building was an aim in addition to learning The pizza and beer = important means of community building. Share “war” stories, demo stuff and generally have a good time. People relax and look forward to the coding aspect of the dojo. For open source developers community is important. Adapt it to your needs, experiment, expect to get things wrong but please HAVE FUN, learn, practice and improve!
  • In the dojo we... - Teach one another - Explain and present code to one another - Explore each other’s solutions - Work together - Build a community (We “forked” the concept - stole the ideas we liked and adapted it to our own group’s dynamics... ) It’s easier to learn when you’re having a good time. Other considerations for making the dojo a success... Community building was an aim in addition to learning The pizza and beer = important means of community building. Share “war” stories, demo stuff and generally have a good time. People relax and look forward to the coding aspect of the dojo. For open source developers community is important. Adapt it to your needs, experiment, expect to get things wrong but please HAVE FUN, learn, practice and improve!

Coding dojo Coding dojo Presentation Transcript

  • Coding Dojo Introduction Viet Nguyen 05 May, 2011 (based on slides of Nicholas H.Tollervey, Serge Rehem, Danilo T.Sato)
  • Agenda
    • Coding Dojo introduction (30 minutes)
    • Prepared Kata (30 minutes)
    • Randori Kata (60 minutes)
  • Coding Dojo Introduction
  • “ Acquiring coding skills should be a continuous process...” http://codingdojo.org/
  • Coding Dojo – Motivation, Background What happens if lack of practice! Kata » Coding Dojo December 2004
  • Coding Dojo – What is it ?
    • Dojo =
      • A safe place to practice.
      • A place to make mistakes and learn.
      • Get together to work on a Kata, have fun and engage in deliberate practice
  • Coding Dojo – Goal
    • Practice
    • Learn techniques
    • Improve techniques
    • Not necessarily solve the problem
  • Coding Dojo – Values
    • Safe environment
    • New ideas are welcomed
    • Collaborative / Non-competitive
    • Open to all skill levels
  • Coding Dojo – General rules
    • Computer + Projector
    • TDD ( red >> green >> refactor )
    • Everyone should understand
    • ALWAYS start from scratch
  • TDD & BabySteps red - green - refactor T D D
  • XP Practices
  • Parisian Dojo Rules 2mins: organise next dojo 30mins: retrospective on last dojo 10mins: decide the topic for this dojo 40mins: code (either “prepared” or “randori” kata) 10mins: half time break 40mins: code
  • Prepared Kata - A presenter shows how to solve the problem - Program from scratch - Using TDD + BabySteps - Each step must make sense to everyone present - Only interrupt if you don’t understand what’s going on
  • Randori Kata - Coding pair (pilot and co-pilot) - Each pair has a time slot (5-7 minutes) - Using TDD + BabySteps - At the end the pilot returns to the audience, the co-pilot becomes the new pilot and a new co-pilot volunteers from the audience
  • Coding Dojo – Don't
    • Rush to finish the problem
    • Use a real problem
    • Go into flamewars on discussions
    • Compete with other participants
    • Allow people to get lost
  • Ethics
    • If you know how to code, you should code
    • If you're coding, everyone else has to understand what you're doing
    • If you're the next to code, avoid breaking the flow
    • If you're not coding, don't disturb who is
    • If you have an idea, show it with code
    • If you're stuck, ask for help
  • Prepared Kata
  • Roman Numerals Given a positive integer number determine its Roman numeral representation. The Roman letters are: I = 1 V = 5 X = 10 L = 50 C = 100 D = 500 M = 1000 You cannot write numerals like IM for 999. Wikipedia says "Modern Roman numerals are written by expressing each digit separately starting with the leftmost digit and skipping any digit with a value of zero." Examples: o) 1990 = MCMXC o) 2008 = MMVIII o) 99 = XCIX
  • Randori Kata
  • Harry Potter To try and encourage more sales of the 5 different Harry Potter books they sell, a bookshop has decided to offer discounts of multiple-book purchases. One copy of any of the five books costs 8 EUR . If, however, you buy two different books , you get a 5% discount on those two books. If you buy 3 different books , you get a 10% discount . If you buy 4 different books , you get a 20% discount. If you go the whole hog, and buy all 5 , you get a huge 25% discount . Note that if you buy, say, four books, of which 3 are different titles, you get a 10% discount on the 3 that form part of a set, but the fourth book still costs 8 EUR.
  • Harry Potter Your mission is to write a piece of code to calculate the price of any conceivable shopping basket (containing only Harry Potter books), giving as big a discount as possible. For example, how much does this basket of books cost? 2 copies of the first book 2 copies of the second book 2 copies of the third book 1 copy of the fourth book 1 copy of the fifth book Answer: 51.20 EUR
  • Questions