SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Coding Dojo Introduction Viet Nguyen 05 May, 2011 (based on slides of Nicholas H.Tollervey, Serge Rehem, Danilo T.Sato)
Agenda ,[object Object],[object Object],[object Object]
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 ? ,[object Object],[object Object],[object Object],[object Object]
Coding Dojo – Goal ,[object Object],[object Object],[object Object],[object Object]
Coding Dojo – Values ,[object Object],[object Object],[object Object],[object Object]
Coding Dojo – General rules ,[object Object],[object Object],[object Object],[object Object]
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 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ethics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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

Weitere ähnliche Inhalte

Ähnlich wie Coding dojo

Just Say "NO" To Worksheets
Just Say "NO" To WorksheetsJust Say "NO" To Worksheets
Just Say "NO" To Worksheets
mflaming
 
Building applications for the users - Ariadna - AgileBcn Dec 29th 2011
Building applications for the users - Ariadna - AgileBcn Dec 29th 2011Building applications for the users - Ariadna - AgileBcn Dec 29th 2011
Building applications for the users - Ariadna - AgileBcn Dec 29th 2011
Agile-Barcelona
 
Soundbites
SoundbitesSoundbites
Soundbites
Oannes
 

Ähnlich wie Coding dojo (20)

Software Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesSoftware Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code Games
 
Introduction to Coding Dojos
Introduction to Coding DojosIntroduction to Coding Dojos
Introduction to Coding Dojos
 
How to think different
How to think differentHow to think different
How to think different
 
StartUP! Dojo #1
StartUP! Dojo #1StartUP! Dojo #1
StartUP! Dojo #1
 
Just Say "NO" To Worksheets
Just Say "NO" To WorksheetsJust Say "NO" To Worksheets
Just Say "NO" To Worksheets
 
Topic 1 algebra lesson 1
Topic 1 algebra lesson 1Topic 1 algebra lesson 1
Topic 1 algebra lesson 1
 
Module 5 Lesson 8
Module 5 Lesson 8Module 5 Lesson 8
Module 5 Lesson 8
 
David Koontz Presentation
David Koontz PresentationDavid Koontz Presentation
David Koontz Presentation
 
Math module 4 lesson 13
Math module 4   lesson 13Math module 4   lesson 13
Math module 4 lesson 13
 
Module 3 Lesson 13
Module 3 Lesson 13Module 3 Lesson 13
Module 3 Lesson 13
 
WICHacks, Women in Computing Hackathon, keynote at RIT in Feb 2016
WICHacks, Women in Computing Hackathon, keynote at RIT in Feb 2016WICHacks, Women in Computing Hackathon, keynote at RIT in Feb 2016
WICHacks, Women in Computing Hackathon, keynote at RIT in Feb 2016
 
Module 5 Lesson 18
Module 5 Lesson 18Module 5 Lesson 18
Module 5 Lesson 18
 
Building applications for the users - Ariadna - AgileBcn Dec 29th 2011
Building applications for the users - Ariadna - AgileBcn Dec 29th 2011Building applications for the users - Ariadna - AgileBcn Dec 29th 2011
Building applications for the users - Ariadna - AgileBcn Dec 29th 2011
 
Module 4 Lesson 12
Module 4 Lesson 12Module 4 Lesson 12
Module 4 Lesson 12
 
Soundbites
SoundbitesSoundbites
Soundbites
 
Coding Dojo - PyCon Br 2008 - EN
Coding Dojo - PyCon Br 2008 - ENCoding Dojo - PyCon Br 2008 - EN
Coding Dojo - PyCon Br 2008 - EN
 
Dojo intro PyCon
Dojo intro PyConDojo intro PyCon
Dojo intro PyCon
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
How to incorporate best practices from business negotiations into consultatio...
How to incorporate best practices from business negotiations into consultatio...How to incorporate best practices from business negotiations into consultatio...
How to incorporate best practices from business negotiations into consultatio...
 
23. Methodology of Problem Solving
23. Methodology of Problem Solving23. Methodology of Problem Solving
23. Methodology of Problem Solving
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

Coding dojo

  • 1. Coding Dojo Introduction Viet Nguyen 05 May, 2011 (based on slides of Nicholas H.Tollervey, Serge Rehem, Danilo T.Sato)
  • 2.
  • 4. “ Acquiring coding skills should be a continuous process...” http://codingdojo.org/
  • 5. Coding Dojo – Motivation, Background What happens if lack of practice! Kata » Coding Dojo December 2004
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. TDD & BabySteps red - green - refactor T D D
  • 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
  • 15.
  • 16.
  • 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

Hinweis der Redaktion

  1. 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!
  2. 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!)
  3. 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
  4. - everyone should be able to reproduce - All are welcome to ask questions, interruptions are allowed at any moment to ask questions
  5. - Comments and critics only on Green - Silence on red - Randori means “chaos taking” - something like freestyle. - Audience mustn’t interrupt - only co-pilot.
  6. No real world problems - Context and pressure - Memory requirements - Performance requirements
  7. 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!
  8. 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!
  9. 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!