1 / 56

Coding Dojo

Coding Dojo. Sofware People 2012 Johannes Brodwall , Principal Architect Steria Norway @ jhannes. Guest starring Dmytro Mindra. Moscow Coding Dojo ? http://johannesbrodwall.com/2011/12/18/how-to-start-a-coding-dojo/. Motivation. Master programming. through practice.

Download Presentation

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 Sofware People 2012 Johannes Brodwall, Principal Architect Steria Norway @jhannes

  2. Gueststarring DmytroMindra

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

  4. Motivation

  5. Master programming

  6. throughpractice

  7. Whatdoesgoodprogrammingmean for you? What do youwant to getoutoftheday? How do youwant to applythisonMonday?

  8. Agenda

  9. 10:10: Demo of TDD and pair programming 10:20: Randori style LeapYearskatawitheveryone 10:40: Twogroups, randori style Prime Factors 11:10: Retrospective 11:30: Twogroups, randori style Prime Factors, take 2 12:00: Codingdojo 2: Romans ifyou’reslow, Yahtzee ifyou’requick, minesweeper ifyou’resmart 13:00 – break in themiddle 13:45: Retrospective 14:00: Lunch 15:00: Extreme startup 16:30: Break 17:15: Wrap-up

  10. TDD

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

  12. Pair programming

  13. Ping/pong Driver/Navigator

  14. Failing test Write code Failing test Write code Failing test

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

  16. Whatbenefitscanyouget from pair programming?

  17. Kata 0: LeapYear

  18. Kata 1: Prime factors

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

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

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

  22. Kata 2a: Minesweeper

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

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

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

  26. Kata 2b: Yahtzee

  27. 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

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

  29. 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»)?

  30. Kata 2c: Romans

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

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

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

  34. Extreme startup

  35. The Extremestartupcodecompetition By Matt Wynne and Robert Chatly

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

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

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

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

  40. Form teams!

  41. Round 1

  42. Round 1 (fight!)

  43. Round 1: Retrospective

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

  45. Round 2

More Related