In this session from Øredev 2010 in Malmö, Sweden, Cory Foy covers the concepts of Koans and Katas in the software world by explaining the concepts of learning models such as the Dreyfus Model of Skills Acquisition, Shu Ha Ri and others.
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.
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
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