SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Øredev - Malmö, Sweden
Koans and Katas, Oh My!
Cory Foy, Senior Consultant, Net Objectives
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Koans
Tuesday, November 9, 2010
Koans
Katas
Tuesday, November 9, 2010
Koans
Katas
Code
Retreats
Tuesday, November 9, 2010
Tuesday, November 9, 2010
The method in which we do these exercises is a vital part of how we learn. One key model of Skills Acquisition is the Dreyfus model, which defines 5 stages from beginner to expert. But the
key is that the earlier stages of learning require greater context and concrete steps for the student to help them work through the exercises and begin the understanding which leads them
down the path of intuitive decision making.
Novice
Advanced Beginner
Competent
Proficient
Expert
Tuesday, November 9, 2010
The method in which we do these exercises is a vital part of how we learn. One key model of Skills Acquisition is the Dreyfus model, which defines 5 stages from beginner to expert. But the
key is that the earlier stages of learning require greater context and concrete steps for the student to help them work through the exercises and begin the understanding which leads them
down the path of intuitive decision making.
Novice
Advanced Beginner
Competent
Proficient
Expert
Works More From
Intuition
Tuesday, November 9, 2010
The method in which we do these exercises is a vital part of how we learn. One key model of Skills Acquisition is the Dreyfus model, which defines 5 stages from beginner to expert. But the
key is that the earlier stages of learning require greater context and concrete steps for the student to help them work through the exercises and begin the understanding which leads them
down the path of intuitive decision making.
Novice
Advanced Beginner
Competent
Proficient
Expert
Requires More
Context
Works More From
Intuition
Tuesday, November 9, 2010
The method in which we do these exercises is a vital part of how we learn. One key model of Skills Acquisition is the Dreyfus model, which defines 5 stages from beginner to expert. But the
key is that the earlier stages of learning require greater context and concrete steps for the student to help them work through the exercises and begin the understanding which leads them
down the path of intuitive decision making.
Tuesday, November 9, 2010
An alternative way of expressing this transition is through the concept of Shu Ha Ri. In this model the student first learns by following the rules (Shu). Overtime, the student can formalize and
abide by the rules. At this point they move into a phase of attempting to break the rules (Ha) by reflection on self-knowledge and exploration of exceptions and anti-theses. When the student
can break and see both sides of all of the rules, they enter into a phase where they attempt to leave the rules (Ri) by becoming free of the rules by leaving the practices and focusing instead
on the flow.
Shu
Tuesday, November 9, 2010
An alternative way of expressing this transition is through the concept of Shu Ha Ri. In this model the student first learns by following the rules (Shu). Overtime, the student can formalize and
abide by the rules. At this point they move into a phase of attempting to break the rules (Ha) by reflection on self-knowledge and exploration of exceptions and anti-theses. When the student
can break and see both sides of all of the rules, they enter into a phase where they attempt to leave the rules (Ri) by becoming free of the rules by leaving the practices and focusing instead
on the flow.
Shu Ha
Tuesday, November 9, 2010
An alternative way of expressing this transition is through the concept of Shu Ha Ri. In this model the student first learns by following the rules (Shu). Overtime, the student can formalize and
abide by the rules. At this point they move into a phase of attempting to break the rules (Ha) by reflection on self-knowledge and exploration of exceptions and anti-theses. When the student
can break and see both sides of all of the rules, they enter into a phase where they attempt to leave the rules (Ri) by becoming free of the rules by leaving the practices and focusing instead
on the flow.
Shu Ha Ri
Tuesday, November 9, 2010
An alternative way of expressing this transition is through the concept of Shu Ha Ri. In this model the student first learns by following the rules (Shu). Overtime, the student can formalize and
abide by the rules. At this point they move into a phase of attempting to break the rules (Ha) by reflection on self-knowledge and exploration of exceptions and anti-theses. When the student
can break and see both sides of all of the rules, they enter into a phase where they attempt to leave the rules (Ri) by becoming free of the rules by leaving the practices and focusing instead
on the flow.
Tuesday, November 9, 2010
✤ Kihon
(Basics)
Tuesday, November 9, 2010
✤ Kihon
(Basics)
✤ Kata
(Forms)
Tuesday, November 9, 2010
✤ Kihon
(Basics)
✤ Kata
(Forms)
✤ Kumite
(Sparring)
Tuesday, November 9, 2010
✤ Kihon
(Basics)
✤ Kata
(Forms)
✤ Kumite
(Sparring)
✤ Koan
(Transcending)
Tuesday, November 9, 2010
http://rubykoans.com/
Tuesday, November 9, 2010
Tuesday, November 9, 2010
Tuesday, November 9, 2010
But Koans are a journey. A path towards greater learning. An investment. You’re learning.
And we need learning. But we also need practice. Which takes us to Katas.
max_bit.times { |i| count += word[i] }
Tuesday, November 9, 2010
The concept of software Katas was coined by “Pragmatic” Dave Thomas. It came to him after
he took this unreadable mess and converted it into this glimmering example of a much more
((max_bit+29)/30).times do |offset|
x = (word >> (offset*30)) & 0x3fffffff
next if x.zero?
x = x - ((x >> 1) & 0x55555555)
x = (x & 0x33333333) + ((x >> 2) & 0x33333333)
x = (x + (x >> 4)) & 0x0f0f0f0f;
x = x + (x >> 8)
x = x + (x >> 16)
count += x & 0x3f
end
Tuesday, November 9, 2010
Tuesday, November 9, 2010
So he created this CodeKata site with a series of focused problems developers could solve.
But over time, the discussion drifted from providing a series of problems to solve, to a series
Tuesday, November 9, 2010
This led to the KataCasts site, which were a series of Screencasts released by Corey Haines
and Enrique Comba (among others) which highlighted specific solutions. We saw one of those
http://codingdojo.org/cgi-bin/wiki.pl?KataFizzBuzz
Tuesday, November 9, 2010
This is the infamous FizzBuzz exercise. To get our blood flowing (and our keyboards going) I
want us to run through 3 iterations of this exercise. But we’re going to modify it slightly.
Tuesday, November 9, 2010
Katas are a great way to practice many things, because they are short, and you can do them
just about anywhere. As you saw from the FizzBuzz exercise, repetition is important so that
Tuesday, November 9, 2010
Code Retreats are full day
Tuesday, November 9, 2010
Code Retreats are full day
http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
Tuesday, November 9, 2010
Credits and Links
Firefighters: http://www.sxc.hu/browse.phtml?f=download&id=1018822
Martial Arts: http://www.sxc.hu/browse.phtml?f=download&id=68048&redirect=photo
Doctor: http://www.sxc.hu/browse.phtml?f=download&id=1314903&redirect=photo
Guitar: http://www.sxc.hu/browse.phtml?f=download&id=863840&redirect=photo
Cars: http://www.sxc.hu/browse.phtml?f=download&id=900749&redirect=photo
Blacksmith: http://www.sxc.hu/browse.phtml?f=download&id=166615&redirect=photo
Craftsman: http://www.sxc.hu/browse.phtml?f=download&id=470477&redirect=photo
ShuHaRi: http://upload.wikimedia.org/wikipedia/commons/e/e2/ShuHaRi.png
Kihon: http://www.sxc.hu/browse.phtml?f=download&id=1129310
Kata: http://www.flickr.com/photos/cayusa/2963773652/sizes/l/in/photostream/
Kumite: http://www.flickr.com/photos/mgoulet/3341918877/sizes/z/in/photostream/
Koan: http://www.flickr.com/photos/seandreilinger/4127197962/sizes/z/in/photostream/
Photos
Links
http://www.coderetreat.com/how-it-works.html
http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
http://geekswithblogs.net/onefloridacoder/archive/2010/08/16/setting-up-for-the-orlando-code-retreat.aspx
http://coderetreat.ning.com/profiles/blogs/how-to-run-a-coderetreat
http://www.alexbolboaca.ro/wordpress/articles/how-to-organize-a-code-retreat
http://gojko.net/2009/02/27/thought-provoking-tdd-exercise-at-the-software-craftsmanship-conference/
http://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/
http://en.wikipedia.org/wiki/K%C5%8Dan
http://codekata.pragprog.com/2007/01/kata_kumite_koa.html
http://saraford.net/2010/01/17/coding-is-not-kata/
http://www.c2.com/cgi/wiki?ShuHaRi
http://rubykoans.com/windows
http://codingdojo.org/cgi-bin/wiki.pl?KataFizzBuzz
Tuesday, November 9, 2010

Mais conteúdo relacionado

Semelhante a Koans and Katas, Oh My! From Øredev 2010

Good Things To Write An Essay About. Online assignment writing service.
Good Things To Write An Essay About. Online assignment writing service.Good Things To Write An Essay About. Online assignment writing service.
Good Things To Write An Essay About. Online assignment writing service.Sarah Michalak
 
Globalization And Its Impact On Society Essay
Globalization And Its Impact On Society EssayGlobalization And Its Impact On Society Essay
Globalization And Its Impact On Society EssayChristina Valadez
 
Canons of Rhetoric Speech AnalysisSo what are the characteristi.docx
Canons of Rhetoric Speech AnalysisSo what are the characteristi.docxCanons of Rhetoric Speech AnalysisSo what are the characteristi.docx
Canons of Rhetoric Speech AnalysisSo what are the characteristi.docxhacksoni
 
Threshold concepts in higher ed (STLHE2015)
Threshold concepts in higher ed (STLHE2015)Threshold concepts in higher ed (STLHE2015)
Threshold concepts in higher ed (STLHE2015)Ashley Shaw
 
Threshold Concepts and Professional Formation
Threshold Concepts and Professional FormationThreshold Concepts and Professional Formation
Threshold Concepts and Professional FormationJames Atherton
 
A Guide to Success in History Courses.pdf
A Guide to Success in History Courses.pdfA Guide to Success in History Courses.pdf
A Guide to Success in History Courses.pdfSophia Diaz
 
Learning Styles & HOTS in Study Packs
Learning Styles & HOTS in Study PacksLearning Styles & HOTS in Study Packs
Learning Styles & HOTS in Study PacksMdelt Class A Uny
 
My learning syle
My learning syleMy learning syle
My learning sylenvall101
 
What are learning theories good for?
What are learning theories good for?What are learning theories good for?
What are learning theories good for?James Atherton
 
The Developer's Guide to Learning - KCDC 2017
The Developer's Guide to Learning - KCDC 2017The Developer's Guide to Learning - KCDC 2017
The Developer's Guide to Learning - KCDC 2017Arthur Doler
 
5 Critical Thinking Activities for the Classroom
5 Critical Thinking Activities for the Classroom5 Critical Thinking Activities for the Classroom
5 Critical Thinking Activities for the Classroomhannahetonx
 
(9)what is academic writing ljmu jhm
(9)what is academic writing ljmu jhm(9)what is academic writing ljmu jhm
(9)what is academic writing ljmu jhmJAHennessyMurdoch
 

Semelhante a Koans and Katas, Oh My! From Øredev 2010 (15)

Good Things To Write An Essay About. Online assignment writing service.
Good Things To Write An Essay About. Online assignment writing service.Good Things To Write An Essay About. Online assignment writing service.
Good Things To Write An Essay About. Online assignment writing service.
 
Globalization And Its Impact On Society Essay
Globalization And Its Impact On Society EssayGlobalization And Its Impact On Society Essay
Globalization And Its Impact On Society Essay
 
Canons of Rhetoric Speech AnalysisSo what are the characteristi.docx
Canons of Rhetoric Speech AnalysisSo what are the characteristi.docxCanons of Rhetoric Speech AnalysisSo what are the characteristi.docx
Canons of Rhetoric Speech AnalysisSo what are the characteristi.docx
 
Talking About Collaboration: Cogenerative Dialoguing and the Teacher-Paraedu...
Talking About Collaboration:  Cogenerative Dialoguing and the Teacher-Paraedu...Talking About Collaboration:  Cogenerative Dialoguing and the Teacher-Paraedu...
Talking About Collaboration: Cogenerative Dialoguing and the Teacher-Paraedu...
 
Threshold concepts in higher ed (STLHE2015)
Threshold concepts in higher ed (STLHE2015)Threshold concepts in higher ed (STLHE2015)
Threshold concepts in higher ed (STLHE2015)
 
Threshold Concepts and Professional Formation
Threshold Concepts and Professional FormationThreshold Concepts and Professional Formation
Threshold Concepts and Professional Formation
 
SociologyExchange.co.uk Shared Resource
SociologyExchange.co.uk Shared ResourceSociologyExchange.co.uk Shared Resource
SociologyExchange.co.uk Shared Resource
 
A Guide to Success in History Courses.pdf
A Guide to Success in History Courses.pdfA Guide to Success in History Courses.pdf
A Guide to Success in History Courses.pdf
 
Learning Styles & HOTS in Study Packs
Learning Styles & HOTS in Study PacksLearning Styles & HOTS in Study Packs
Learning Styles & HOTS in Study Packs
 
Listening Strategy Guide
Listening Strategy GuideListening Strategy Guide
Listening Strategy Guide
 
My learning syle
My learning syleMy learning syle
My learning syle
 
What are learning theories good for?
What are learning theories good for?What are learning theories good for?
What are learning theories good for?
 
The Developer's Guide to Learning - KCDC 2017
The Developer's Guide to Learning - KCDC 2017The Developer's Guide to Learning - KCDC 2017
The Developer's Guide to Learning - KCDC 2017
 
5 Critical Thinking Activities for the Classroom
5 Critical Thinking Activities for the Classroom5 Critical Thinking Activities for the Classroom
5 Critical Thinking Activities for the Classroom
 
(9)what is academic writing ljmu jhm
(9)what is academic writing ljmu jhm(9)what is academic writing ljmu jhm
(9)what is academic writing ljmu jhm
 

Mais de Cory Foy

Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...
Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...
Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...Cory Foy
 
Stratgic Play - Doing the Right Thing at the Right Time
Stratgic Play - Doing the Right Thing at the Right TimeStratgic Play - Doing the Right Thing at the Right Time
Stratgic Play - Doing the Right Thing at the Right TimeCory Foy
 
Continuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestContinuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestCory Foy
 
Choosing Between Scrum and Kanban - TriAgile 2015
Choosing Between Scrum and Kanban - TriAgile 2015Choosing Between Scrum and Kanban - TriAgile 2015
Choosing Between Scrum and Kanban - TriAgile 2015Cory Foy
 
Code Katas
Code KatasCode Katas
Code KatasCory Foy
 
Distributed Agility
Distributed AgilityDistributed Agility
Distributed AgilityCory Foy
 
Scaling Agility
Scaling AgilityScaling Agility
Scaling AgilityCory Foy
 
Kanban for DevOps
Kanban for DevOpsKanban for DevOps
Kanban for DevOpsCory Foy
 
Ruby and OO for Beginners
Ruby and OO for BeginnersRuby and OO for Beginners
Ruby and OO for BeginnersCory Foy
 
Agile Roots: The Agile Mindset - Agility Across the Organization
Agile Roots: The Agile Mindset - Agility Across the OrganizationAgile Roots: The Agile Mindset - Agility Across the Organization
Agile Roots: The Agile Mindset - Agility Across the OrganizationCory Foy
 
Triangle.rb - How Secure is Your Rails Site, Anyway?
Triangle.rb - How Secure is Your Rails Site, Anyway?Triangle.rb - How Secure is Your Rails Site, Anyway?
Triangle.rb - How Secure is Your Rails Site, Anyway?Cory Foy
 
Scrum vs Kanban - Implementing Agility at Scale
Scrum vs Kanban - Implementing Agility at ScaleScrum vs Kanban - Implementing Agility at Scale
Scrum vs Kanban - Implementing Agility at ScaleCory Foy
 
SQE Boston - When Code Cries
SQE Boston - When Code CriesSQE Boston - When Code Cries
SQE Boston - When Code CriesCory Foy
 
GOTO Berlin - When Code Cries
GOTO Berlin - When Code CriesGOTO Berlin - When Code Cries
GOTO Berlin - When Code CriesCory Foy
 
Rails as a Pattern Language
Rails as a Pattern LanguageRails as a Pattern Language
Rails as a Pattern LanguageCory Foy
 
Patterns in Rails
Patterns in RailsPatterns in Rails
Patterns in RailsCory Foy
 
Agile Demystified
Agile DemystifiedAgile Demystified
Agile DemystifiedCory Foy
 
When Code Cries
When Code CriesWhen Code Cries
When Code CriesCory Foy
 
Ruby for C# Developers
Ruby for C# DevelopersRuby for C# Developers
Ruby for C# DevelopersCory Foy
 
Getting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataGetting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataCory Foy
 

Mais de Cory Foy (20)

Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...
Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...
Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...
 
Stratgic Play - Doing the Right Thing at the Right Time
Stratgic Play - Doing the Right Thing at the Right TimeStratgic Play - Doing the Right Thing at the Right Time
Stratgic Play - Doing the Right Thing at the Right Time
 
Continuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestContinuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software West
 
Choosing Between Scrum and Kanban - TriAgile 2015
Choosing Between Scrum and Kanban - TriAgile 2015Choosing Between Scrum and Kanban - TriAgile 2015
Choosing Between Scrum and Kanban - TriAgile 2015
 
Code Katas
Code KatasCode Katas
Code Katas
 
Distributed Agility
Distributed AgilityDistributed Agility
Distributed Agility
 
Scaling Agility
Scaling AgilityScaling Agility
Scaling Agility
 
Kanban for DevOps
Kanban for DevOpsKanban for DevOps
Kanban for DevOps
 
Ruby and OO for Beginners
Ruby and OO for BeginnersRuby and OO for Beginners
Ruby and OO for Beginners
 
Agile Roots: The Agile Mindset - Agility Across the Organization
Agile Roots: The Agile Mindset - Agility Across the OrganizationAgile Roots: The Agile Mindset - Agility Across the Organization
Agile Roots: The Agile Mindset - Agility Across the Organization
 
Triangle.rb - How Secure is Your Rails Site, Anyway?
Triangle.rb - How Secure is Your Rails Site, Anyway?Triangle.rb - How Secure is Your Rails Site, Anyway?
Triangle.rb - How Secure is Your Rails Site, Anyway?
 
Scrum vs Kanban - Implementing Agility at Scale
Scrum vs Kanban - Implementing Agility at ScaleScrum vs Kanban - Implementing Agility at Scale
Scrum vs Kanban - Implementing Agility at Scale
 
SQE Boston - When Code Cries
SQE Boston - When Code CriesSQE Boston - When Code Cries
SQE Boston - When Code Cries
 
GOTO Berlin - When Code Cries
GOTO Berlin - When Code CriesGOTO Berlin - When Code Cries
GOTO Berlin - When Code Cries
 
Rails as a Pattern Language
Rails as a Pattern LanguageRails as a Pattern Language
Rails as a Pattern Language
 
Patterns in Rails
Patterns in RailsPatterns in Rails
Patterns in Rails
 
Agile Demystified
Agile DemystifiedAgile Demystified
Agile Demystified
 
When Code Cries
When Code CriesWhen Code Cries
When Code Cries
 
Ruby for C# Developers
Ruby for C# DevelopersRuby for C# Developers
Ruby for C# Developers
 
Getting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataGetting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and Data
 

Último

Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
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 TerraformAndrey Devyatkin
 
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 WorkerThousandEyes
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Último (20)

Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
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
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Koans and Katas, Oh My! From Øredev 2010

  • 1. Øredev - Malmö, Sweden Koans and Katas, Oh My! Cory Foy, Senior Consultant, Net Objectives Tuesday, November 9, 2010
  • 15. Tuesday, November 9, 2010 The method in which we do these exercises is a vital part of how we learn. One key model of Skills Acquisition is the Dreyfus model, which defines 5 stages from beginner to expert. But the key is that the earlier stages of learning require greater context and concrete steps for the student to help them work through the exercises and begin the understanding which leads them down the path of intuitive decision making.
  • 16. Novice Advanced Beginner Competent Proficient Expert Tuesday, November 9, 2010 The method in which we do these exercises is a vital part of how we learn. One key model of Skills Acquisition is the Dreyfus model, which defines 5 stages from beginner to expert. But the key is that the earlier stages of learning require greater context and concrete steps for the student to help them work through the exercises and begin the understanding which leads them down the path of intuitive decision making.
  • 17. Novice Advanced Beginner Competent Proficient Expert Works More From Intuition Tuesday, November 9, 2010 The method in which we do these exercises is a vital part of how we learn. One key model of Skills Acquisition is the Dreyfus model, which defines 5 stages from beginner to expert. But the key is that the earlier stages of learning require greater context and concrete steps for the student to help them work through the exercises and begin the understanding which leads them down the path of intuitive decision making.
  • 18. Novice Advanced Beginner Competent Proficient Expert Requires More Context Works More From Intuition Tuesday, November 9, 2010 The method in which we do these exercises is a vital part of how we learn. One key model of Skills Acquisition is the Dreyfus model, which defines 5 stages from beginner to expert. But the key is that the earlier stages of learning require greater context and concrete steps for the student to help them work through the exercises and begin the understanding which leads them down the path of intuitive decision making.
  • 19. Tuesday, November 9, 2010 An alternative way of expressing this transition is through the concept of Shu Ha Ri. In this model the student first learns by following the rules (Shu). Overtime, the student can formalize and abide by the rules. At this point they move into a phase of attempting to break the rules (Ha) by reflection on self-knowledge and exploration of exceptions and anti-theses. When the student can break and see both sides of all of the rules, they enter into a phase where they attempt to leave the rules (Ri) by becoming free of the rules by leaving the practices and focusing instead on the flow.
  • 20. Shu Tuesday, November 9, 2010 An alternative way of expressing this transition is through the concept of Shu Ha Ri. In this model the student first learns by following the rules (Shu). Overtime, the student can formalize and abide by the rules. At this point they move into a phase of attempting to break the rules (Ha) by reflection on self-knowledge and exploration of exceptions and anti-theses. When the student can break and see both sides of all of the rules, they enter into a phase where they attempt to leave the rules (Ri) by becoming free of the rules by leaving the practices and focusing instead on the flow.
  • 21. Shu Ha Tuesday, November 9, 2010 An alternative way of expressing this transition is through the concept of Shu Ha Ri. In this model the student first learns by following the rules (Shu). Overtime, the student can formalize and abide by the rules. At this point they move into a phase of attempting to break the rules (Ha) by reflection on self-knowledge and exploration of exceptions and anti-theses. When the student can break and see both sides of all of the rules, they enter into a phase where they attempt to leave the rules (Ri) by becoming free of the rules by leaving the practices and focusing instead on the flow.
  • 22. Shu Ha Ri Tuesday, November 9, 2010 An alternative way of expressing this transition is through the concept of Shu Ha Ri. In this model the student first learns by following the rules (Shu). Overtime, the student can formalize and abide by the rules. At this point they move into a phase of attempting to break the rules (Ha) by reflection on self-knowledge and exploration of exceptions and anti-theses. When the student can break and see both sides of all of the rules, they enter into a phase where they attempt to leave the rules (Ri) by becoming free of the rules by leaving the practices and focusing instead on the flow.
  • 26. ✤ Kihon (Basics) ✤ Kata (Forms) ✤ Kumite (Sparring) Tuesday, November 9, 2010
  • 27. ✤ Kihon (Basics) ✤ Kata (Forms) ✤ Kumite (Sparring) ✤ Koan (Transcending) Tuesday, November 9, 2010
  • 30. Tuesday, November 9, 2010 But Koans are a journey. A path towards greater learning. An investment. You’re learning. And we need learning. But we also need practice. Which takes us to Katas.
  • 31. max_bit.times { |i| count += word[i] } Tuesday, November 9, 2010 The concept of software Katas was coined by “Pragmatic” Dave Thomas. It came to him after he took this unreadable mess and converted it into this glimmering example of a much more
  • 32. ((max_bit+29)/30).times do |offset| x = (word >> (offset*30)) & 0x3fffffff next if x.zero? x = x - ((x >> 1) & 0x55555555) x = (x & 0x33333333) + ((x >> 2) & 0x33333333) x = (x + (x >> 4)) & 0x0f0f0f0f; x = x + (x >> 8) x = x + (x >> 16) count += x & 0x3f end Tuesday, November 9, 2010
  • 33. Tuesday, November 9, 2010 So he created this CodeKata site with a series of focused problems developers could solve. But over time, the discussion drifted from providing a series of problems to solve, to a series
  • 34. Tuesday, November 9, 2010 This led to the KataCasts site, which were a series of Screencasts released by Corey Haines and Enrique Comba (among others) which highlighted specific solutions. We saw one of those
  • 35. http://codingdojo.org/cgi-bin/wiki.pl?KataFizzBuzz Tuesday, November 9, 2010 This is the infamous FizzBuzz exercise. To get our blood flowing (and our keyboards going) I want us to run through 3 iterations of this exercise. But we’re going to modify it slightly.
  • 36. Tuesday, November 9, 2010 Katas are a great way to practice many things, because they are short, and you can do them just about anywhere. As you saw from the FizzBuzz exercise, repetition is important so that
  • 37. Tuesday, November 9, 2010 Code Retreats are full day
  • 38. Tuesday, November 9, 2010 Code Retreats are full day
  • 40. Credits and Links Firefighters: http://www.sxc.hu/browse.phtml?f=download&id=1018822 Martial Arts: http://www.sxc.hu/browse.phtml?f=download&id=68048&redirect=photo Doctor: http://www.sxc.hu/browse.phtml?f=download&id=1314903&redirect=photo Guitar: http://www.sxc.hu/browse.phtml?f=download&id=863840&redirect=photo Cars: http://www.sxc.hu/browse.phtml?f=download&id=900749&redirect=photo Blacksmith: http://www.sxc.hu/browse.phtml?f=download&id=166615&redirect=photo Craftsman: http://www.sxc.hu/browse.phtml?f=download&id=470477&redirect=photo ShuHaRi: http://upload.wikimedia.org/wikipedia/commons/e/e2/ShuHaRi.png Kihon: http://www.sxc.hu/browse.phtml?f=download&id=1129310 Kata: http://www.flickr.com/photos/cayusa/2963773652/sizes/l/in/photostream/ Kumite: http://www.flickr.com/photos/mgoulet/3341918877/sizes/z/in/photostream/ Koan: http://www.flickr.com/photos/seandreilinger/4127197962/sizes/z/in/photostream/ Photos Links http://www.coderetreat.com/how-it-works.html http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life http://geekswithblogs.net/onefloridacoder/archive/2010/08/16/setting-up-for-the-orlando-code-retreat.aspx http://coderetreat.ning.com/profiles/blogs/how-to-run-a-coderetreat http://www.alexbolboaca.ro/wordpress/articles/how-to-organize-a-code-retreat http://gojko.net/2009/02/27/thought-provoking-tdd-exercise-at-the-software-craftsmanship-conference/ http://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/ http://en.wikipedia.org/wiki/K%C5%8Dan http://codekata.pragprog.com/2007/01/kata_kumite_koa.html http://saraford.net/2010/01/17/coding-is-not-kata/ http://www.c2.com/cgi/wiki?ShuHaRi http://rubykoans.com/windows http://codingdojo.org/cgi-bin/wiki.pl?KataFizzBuzz Tuesday, November 9, 2010