1 / 55

Coding Dojo

Coding Dojo. AgilePrague 2012 Johannes Brodwall , Principal Architect Steria Norway @ jhannes. Prague Coding Dojo ? http://johannesbrodwall.com/2011/12/18/how-to-start-a-coding-dojo/. Motivation. Master programming. through practice. What does good programming mean for you ?.

hue
Télécharger la présentation

Coding Dojo

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CodingDojo AgilePrague 2012 Johannes Brodwall, Principal Architect Steria Norway @jhannes

  2. PragueCodingDojo? http://johannesbrodwall.com/2011/12/18/how-to-start-a-coding-dojo/

  3. Motivation

  4. Master programming

  5. throughpractice

  6. Whatdoesgoodprogrammingmean for you? What do youwant to getoutoftheday? How do youwant to applythistomorrow?

  7. Agenda

  8. 9:10: Demo of TDD and pair programming 9:20: Randori style LeapYearskatawitheveryone 9:40: Paired style Prime Factors 10:10: Retrospective 10:30: Paired style Prime Factors, take 2 11:00: Codingdojo 2: Romans ifyou’reslow, Yahtzee ifyou’requick, minesweeper ifyou’resmart 12:00: Retrospective 12:15: Lunch (?) 13:00: Extreme startup – first round 13:30: Break 13:45: Extreme startup – secondround 15:45: Wrap-up

  9. TDD

  10. TDD No codewithout test Just enough test to red Just enoughcode to green (+ refactor!)

  11. Pair programming

  12. Ping/pong Driver/Navigator

  13. Failing test Write code Failing test Write code Failing test

  14. Failing test Write code Refactorcode and tests Failing test Write code Refactorcode and tests Failing test

  15. Whatbenefitscanyouget from pair programming?

  16. Kata 0: LeapYear

  17. Kata 1: Prime factors

  18. Kata: Prime factors 1 => [] 2 => [2] 3 => [3] 4 => [2,2] … 2*2*13*17*23*23 => [2,2,13,17,23,23]

  19. How didyourchoiceoflanguagehelp/hurt? Didyouchange drivers at goodfrequency? What tests didyou start with? Which tests didn’thelpyou? How didyoudeterminenext test? How didthesolution end up looking?

  20. Whatsurprisedyou? Whatdidyoulearn? What do you want to achieve next round?

  21. Kata 2a: Minesweeper

  22. Given: var minefield = new Minefield([ "....", ".*..", ".*.*", "...*“ ])

  23. Whatsurprisedyou? Whatdidyoulearn? What do youwant to achievenextround?

  24. How didyourchoiceoflanguagehelp/hurt? Didyouchange drivers at goodfrequency? What tests didyou start with? Which tests didn’thelpyou? How didyoudeterminenext test? How didtheboundaryconditionsaffectyour test and code?

  25. Kata 2b: Yahtzee

  26. Kata: Yahtzee ({1,1,1,1,1}, «ones»} => 5 ({1,1,1,1,1}, «sixes»} => 0 ({1,1,1,1,1}, «yahtzee»} => 50 Ones, twos, threes, fours, fives, sixes Pair, two pairs, threeof a kind, fourof a kind, full house Yahtzee Little straight, big straight Chance

  27. Whatsurprisedyou? Whatdidyoulearn? What do youwant to achievenextround?

  28. How didyourchoiceoflanguagehelp/hurt? Didyouchange drivers at goodfrequency? What tests didyou start with? Which tests didn’thelpyou? How didyoudeterminenext test? What is ({2,2,3,6,6}, «pair»)?

  29. Kata 2c: Romans

  30. Kata: Romans 1 => I 5 => V 1999 => MCMXCIX

  31. Whatsurprisedyou? Whatdidyoulearn? What do youwant to achievenextround?

  32. How didyourchoiceoflanguagehelp/hurt? Didyouchange drivers at goodfrequency? What tests didyou start with? Which tests didn’thelpyou? How didyoudeterminenext test? How didyouimplementrules for «IV» etc?

  33. Extreme startup

  34. The Extremestartupcodecompetition By Matt Wynne and Robert Chatly

  35. Orientation Download starting point (http://github.com/steria/extreme_startup_servers) Start server Register (http://192.168.155.249:3000/) Solvequestions

  36. Rules Cheat like mad! Onlyresults matter No destructionofproperty Obeylocallaws Don’t f$%! withworkshop computer

  37. Guidelines Work as you like (Tip: Use a languageyou know) Helpthosebehind Uploadyourcode (ifpossible)

  38. Orientation Download starting point (http://github.com/steria/extreme_startup_servers) Start server Register (http://192.168.155.249:3000/) Solvequestions

  39. Form teams!

  40. Round 1

  41. Round 1 (fight!)

  42. Round 1: Retrospective

  43. Whatsurprisedyou? Whatdidyoulearn? What do youwant to achievenextround?

  44. Round 2

  45. Round 2 (fight!)

More Related