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.
12. 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
13. 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
14. 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
18. 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
20. 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.
21. 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
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!