$30 off During Our Annual Pro Sale. View Details »

Can you Kata?

Marko Schulz
October 16, 2012

Can you Kata?

Presentation on Coding-Katas, given as a keynote at WebTechCon/International PHP Conference 2012. Video of the presentation on http://is.gd/cankatavid and http://youtu.be/kFe01104ovg?hd=1

Marko Schulz

October 16, 2012
Tweet

More Decks by Marko Schulz

Other Decks in Programming

Transcript

  1. Quelle: http://en.wikipedia.org/wiki/File:Skull_and_brain_normal_human.svg
    CAN YOU KATA?
    Sebastian Sanitz - Marko Schulz - Bernd Schiffer
    Karateka: Benno Schöfl
    Katas
    let you
    internalize
    basic steps,
    so you will use them
    subconsciously
    programming
    while
    Slides on http://is.gd/cankata
    Freitag, 19. Oktober 12

    View Slide

  2. ܗ Kata
    Freitag, 19. Oktober 12

    View Slide

  3. Katas
    let you
    internalize
    basic steps,
    so you will use them
    subconsciously
    programming
    while
    Quelle: http://en.wikipedia.org/wiki/File:Skull_and_brain_normal_human.svg
    Freitag, 19. Oktober 12

    View Slide

  4. Learning
    by
    Repetition
    Quelle: failblog.org
    Freitag, 19. Oktober 12

    View Slide

  5. Gitarre
    Music
    Freitag, 19. Oktober 12

    View Slide

  6. Dance
    Freitag, 19. Oktober 12

    View Slide

  7. Martial
    arts
    Freitag, 19. Oktober 12

    View Slide

  8. ܗ Kata
    Freitag, 19. Oktober 12

    View Slide

  9. Quelle: Bild von Albrecht Pflüger
    1. Kata
    in
    Shōtōkan
    karate
    Freitag, 19. Oktober 12

    View Slide

  10. ܗ Kata
    Benno Schöfl
    Karateka for 35 years
    5. Dan
    Freitag, 19. Oktober 12

    View Slide

  11. Programming
    Freitag, 19. Oktober 12

    View Slide

  12. Tasks
    Small
    focused
    Freitag, 19. Oktober 12

    View Slide

  13. path
    Choose a
    Freitag, 19. Oktober 12

    View Slide

  14. snapshot
    single
    run
    only
    small
    Freitag, 19. Oktober 12

    View Slide

  15. do Katas
    Why ?
    Freitag, 19. Oktober 12

    View Slide

  16. Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Kapitolinischer_Pythagoras_adjusted.jpg & http://en.wikipedia.org/wiki/File:Pythagorean_graphic.svg
    a²+b²=c²
    Pythagorean theorem
    Freitag, 19. Oktober 12

    View Slide

  17. Reflection
    Self-
    Freitag, 19. Oktober 12

    View Slide

  18. Constraints
    and
    Isolation
    Freitag, 19. Oktober 12

    View Slide

  19. Memorization
    Muscel
    Freitag, 19. Oktober 12

    View Slide

  20. And now, a little bit of
    coding
    Freitag, 19. Oktober 12

    View Slide

  21. ROMAN NUMBERS
    • Decode roman Numbers
    DCXXXIX => 639
    • CoffeeScript, Jasmine,
    CodersDojo.com
    • Test driven development:
    Red, Green, Refactor
    Freitag, 19. Oktober 12

    View Slide

  22. What
    to
    pay
    attention to
    when training a
    Kata?
    Freitag, 19. Oktober 12

    View Slide

  23. Quelle: http://www.flickr.com/photos/dailyjoe/441020930/sizes/l/
    Take
    time
    Freitag, 19. Oktober 12

    View Slide

  24. and
    Repeat
    Repeat
    and
    Repeat
    Freitag, 19. Oktober 12

    View Slide

  25. Feedback
    Freitag, 19. Oktober 12

    View Slide

  26. Try
    alternatives
    Freitag, 19. Oktober 12

    View Slide

  27. Quelle: http://www.flickr.com/photos/pgoyette/92358434/sizes/l/
    make it work,
    make it fast
    make it right,
    Freitag, 19. Oktober 12

    View Slide

  28. Coderetreats
    honing the craft together
    full day
    together with other professionals
    intensive practice
    http://www.it-agile.de/code-retreat.html
    Freitag, 19. Oktober 12

    View Slide

  29. Quelle:http://www.flickr.com/photos/14922165@N00/1022807511
    http://coderetreat.org/
    http://globalday.coderetreat.org/
    Global Day of Coderetreat
    December 8th, 2012
    In D announced til now: Hamburg, Düsseldorf,
    Köln, Frankfurt, Nürnberg, München
    http://www.it-agile.de/code-retreat.html
    Freitag, 19. Oktober 12

    View Slide

  30. • Slides on http://is.gd/cankata
    • http://codekata.com
    • http://katas.softwarecraftsmanship.org == http://katacasts.com
    • http://www.codingdojo.org
    • http://codingkata.org
    • http://stackoverflow.com/questions/1737427/assignments-i-e-code-kata-for-coding-dojos
    • http://www.javascriptkata.com/
    • http://www.rubyquiz.com/
    • http://www.programming-challenges.com/
    • http://sites.google.com/site/tddproblems/
    • http://codersdojo.com/
    • Programming tasks from http://rosettacode.org
    Freitag, 19. Oktober 12

    View Slide

  31. Quelle: http://en.wikipedia.org/wiki/File:Skull_and_brain_normal_human.svg
    CAN YOU KATA?
    Sebastian Sanitz - Marko Schulz - Bernd Schiffer
    Katas
    let you
    internalize
    basic steps,
    so you will use them
    subconsciously
    programming
    while
    Slides on http://is.gd/cankata
    Freitag, 19. Oktober 12

    View Slide

  32. Quelle: http://en.wikipedia.org/wiki/File:Skull_and_brain_normal_human.svg
    CAN YOU KATA?
    Sebastian Sanitz - Marko Schulz - Bernd Schiffer
    Slides on http://is.gd/cankata
    Freitag, 19. Oktober 12

    View Slide

  33. Prime
    factorization
    Split an integer into its
    prime factors
    Examples
    4 ➔ 2,2
    42 ➔ 2,3,7
    String-Calculator
    1. Sum the numbers in a
    string
    e.g.: „1,2,3“ ➔ 6
    2. Delimiter may be comma
    or newline
    e.g.: „1,3\n5“ ➔ 9
    3. Different delimiter can
    be specified with a /
    / at
    the beginning
    e.g. „/
    /;\n2;4;8“ ➔ 14
    Text munger
    Mutate every word,
    so the first and last chars
    stays the same and inner
    chars are in reversed
    order
    Examples
    Test
    ➔ Tset
    I love you
    ➔ I lvoe you
    Extreme Programming
    rules!
    ➔ Emertxe Pnimmargorg
    relus!
    Freitag, 19. Oktober 12

    View Slide