Coding dojo

Post on 22-Jan-2016

35 views 0 download

Tags:

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

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!

Thank youjbr@exilesoft.com

http://johannesbrodwall.com

http://exilesoft.com

http://twitter.com/jhannes