coding dojo

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

Upload: tabib

Post on 22-Jan-2016

35 views

Category:

Documents


0 download

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

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