Search

Categories

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Send mail to the author(s) E-mail

# Monday, 16 December 2013
( Dojo | TDD )

http://pluralsight.com/training/Courses/TableOfContents/the-coding-dojo

  • Introduction and retrospective
  • Write tests as well as code
  • Show your working
  • Moderator and facilitator

Fun way to learn!

Practical Coding Skills

  • IDE Keyboard shortcuts
  • Pair programming
  • TDD
  • Refactoring
  • Designing good test cases
  • Working incrementally, and committing code often
  • SOLID
  • OO
  • Functional

http://pluralsight.com/training/Courses/TableOfContents/test-first-development-1
http://pluralsight.com/training/Courses/TableOfContents/test-first-development-2

Deliberate practice.. on work stuff not as good as harder to make mistakes (riskier)

  • Trying to do something you can’t comfortably do
  • Breaking down a skills into components you can practice separately

Forming good habits

Code Katas

http://codekata.pragprog.com/2007/01/code_kata_backg.html#more

Small exercises that you repeat

Leap Years

Write a function that returns true or false depending on whether its input integer is a leap year or not

A leap year is divisible by 4, but is not otherwise divisible by 100, unless it is also divisible by 400

eg 1996-t, 2001-f, 2000-t, 1900-f

 

eg Leap Years. eg 1996 –> true, 2001 –>false, 2000 –> true

| | # 
( Agile | Craftsmanship | Dojo )

http://www.youtube.com/watch?v=yao5XLJqogQ
http://pluralsight.com/training/Courses/TableOfContents/the-coding-dojo

Agile Manifesto

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Software Craftsmanship

  • Well crafted software
    • compact
    • elegant
    • clean
    • uses Design Patterns
    • has comprehensive unit tests
  • Steadily adding value
    • emerging design
    • refactoring
    • comprehensive automated tests (check havn’t broken anything)
  • Community of professionals
    • trust
    • respect
    • always learning from each other
  • Productive partnership
    • trust
    • understanding mutual goals
    • communication enhanced by executable specifications

XP Practices

image
TDD in the middle!

How to get good at TDD

  • Pair program
  • Coding Dojos
    • Roman numerals
    • Minesweeper
    • prepared kata
      • start with empty editor on screen and do tdd
    • randori
      • everyone contributes
      • split into pairs or all work together
| | #