Coding dojo

47
Coding dojo Colombo Agile Meetup Johannes Brodwall, Chief scientist Exilesoft Guest starring Prabath Randeeniya

description

Coding dojo. Guest starring Prabath Randeeniya. Colombo Agile Meetup Johannes Brodwall, Chief scientist Exilesoft. What is a dojo? What to solve? How to work? Let’s get started Reflection Repeat. «Coding dojo»?. Programmers Practice Social. Programmers Practice Social. - PowerPoint PPT Presentation

Transcript of Coding dojo

Page 1: Coding dojo

Coding dojo

Colombo Agile MeetupJohannes Brodwall, Chief scientist

ExilesoftGuest s

tarri

ng Pra

bath

Randeeniya

Page 2: Coding dojo

1. What is a dojo?

2. What to solve?

3. How to work?

4. Let’s get started

5. Reflection

6. Repeat

Page 3: Coding dojo

«Coding dojo»?

Page 4: Coding dojo

ProgrammersPractice

Social

Page 5: Coding dojo

ProgrammersPractice

Social

Page 6: Coding dojo

ProgrammersPractice

Social

Page 7: Coding dojo

Deliberate practice

http://expertenough.com/2327/deliberate-practice-steps

Page 8: Coding dojo

«Deliberate practice is your highway

to becoming an expert.»

Page 9: Coding dojo

«Slowing down is really the key to get any skill under your

belt.»

Page 10: Coding dojo

«In order to master any move or action

you need to make a lot of repetitions.»

Page 11: Coding dojo

Reflect on different approaches

Page 12: Coding dojo

Dojo format:

Page 13: Coding dojo

1. Select kata

2. Plan approach

3. Work

4. Reflect

5. Repeat

Page 14: Coding dojo

Katas:

Page 15: Coding dojo

Kata: Prime factors1 => []

2 => [2]

3 => [3]

4 => [2,2]

2*2*13*17*23*23 => [2,2,13,17,23,23]

Page 16: Coding dojo

Kata: Minefield

[ "....", ".*..", ".*.*", "...*“ ]

[ “1110", “2*31", “2*4*", “113*” ]

=>

Page 17: Coding dojo

Kata: Romans1 => I

5 => V

1999 => MCMXCIX

Page 18: Coding dojo

Or: Minesweper competition

Page 19: Coding dojo
Page 20: Coding dojo

16 rows

Page 21: Coding dojo

30 columns

Page 22: Coding dojo

99 mines

Page 23: Coding dojo
Page 24: Coding dojo
Page 25: Coding dojo
Page 26: Coding dojo
Page 27: Coding dojo
Page 28: Coding dojo
Page 29: Coding dojo

Approach:

Page 30: Coding dojo
Page 31: Coding dojo
Page 32: Coding dojo

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 33: Coding dojo

Which tests?

Page 34: Coding dojo

Reflect

Page 35: Coding dojo

Get to work!SSID: Code-Dojo pwd: CodeDoJo

http://192.168.135.127:1337

https://github.com/jhannes

Page 36: Coding dojo

What surprised you?

Page 37: Coding dojo

What did you learn?

Page 38: Coding dojo

What do you plan to do differently?

Page 39: Coding dojo

Demo of some TDD

Page 40: Coding dojo

@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);}

Page 41: Coding dojo

Reflect

Page 42: Coding dojo

What surprised you?

Page 43: Coding dojo

What did you learn?

Page 44: Coding dojo

What do you plan to do differently?

Page 45: Coding dojo

Conclusion:

Page 46: Coding dojo

Reflecting on your work will make you a master

developer!

Page 47: Coding dojo

Thank [email protected]

http://johannesbrodwall.com

http://exilesoft.com

http://twitter.com/jhannes