Coding dojo
description
Transcript of Coding dojo
Coding dojo
Colombo Agile MeetupJohannes Brodwall, Chief scientist
ExilesoftGuest s
tarri
ng Pra
bath
Randeeniya
1. What is a dojo?
2. What to solve?
3. How to work?
4. Let’s get started
5. Reflection
6. Repeat
«Coding dojo»?
ProgrammersPractice
Social
ProgrammersPractice
Social
ProgrammersPractice
Social
Deliberate practice
http://expertenough.com/2327/deliberate-practice-steps
«Deliberate practice is your highway
to becoming an expert.»
«Slowing down is really the key to get any skill under your
belt.»
«In order to master any move or action
you need to make a lot of repetitions.»
Reflect on different approaches
Dojo format:
1. Select kata
2. Plan approach
3. Work
4. Reflect
5. Repeat
Katas:
Kata: Prime factors1 => []
2 => [2]
3 => [3]
4 => [2,2]
…
2*2*13*17*23*23 => [2,2,13,17,23,23]
Kata: Minefield
[ "....", ".*..", ".*.*", "...*“ ]
[ “1110", “2*31", “2*4*", “113*” ]
=>
Kata: Romans1 => I
5 => V
1999 => MCMXCIX
Or: Minesweper competition
16 rows
30 columns
99 mines
Approach:
Failing test
Write code
Failing test
Write code
Failing test
Refactor code and tests
Refactor code and tests
Which tests?
Reflect
Get to work!SSID: Code-Dojo pwd: CodeDoJo
http://192.168.135.127:1337
https://github.com/jhannes
What surprised you?
What did you learn?
What do you plan to do differently?
Demo of some TDD
@Testpublic void shouldOpenNeighboursOfZeroHintCell() { solver.opened(new Position(11, 11), 0); List<Position> safeCells = solver.getSafeCells(); assertEquals(Arrays.asList( new Position(10,10), new Position(10, 11), new Position(10, 12), new Position(11,10), new Position(11, 12), new Position(12,10), new Position(12, 11), new Position(12, 12)), safeCells);}
Reflect
What surprised you?
What did you learn?
What do you plan to do differently?
Conclusion:
Reflecting on your work will make you a master
developer!