Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Practice To Learn: Using Code Kata to Explore Software Development

Practice To Learn: Using Code Kata to Explore Software Development

James Hood

March 12, 2012
Tweet

More Decks by James Hood

Other Decks in Programming

Transcript

  1. Equipment The following in your PATH: https://github.com/hoodja/practice-to-learn javac - Java

    6 compiler java - Java 6 JVM python - Python 2.7 interpreter (not 3.0) g++ - GCC 4.2 or later (tested on Windows using MinGW) Monday, March 12, 12
  2. You do deliberate practice to improve your ability to perform

    a task. It’s about skill and technique. Deliberate practice means repetition. It means performing the task with the aim of increasing your mastery of one or more aspects of the task. -- Jon Jagger Monday, March 12, 12
  3. In software we do our practicing on the job, and

    that’s why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions. -- Dave Thomas Monday, March 12, 12
  4. Prime Factors 2 3 5 7 11 30030 15015 5005

    1001 143 Monday, March 12, 12
  5. Prime Factors 2 13 3 5 7 11 30030 15015

    5005 1001 143 Monday, March 12, 12
  6. Algorithm: store 2 into candidate if: candidate evenly divides n

    add candidate to primes store n / candidate into n else: increment candidate repeat until n is 1 Monday, March 12, 12
  7. 2 3 5 7 11 30030 15015 5005 1001 143

    13 candidate = 13 Monday, March 12, 12
  8. 2 3 5 7 11 30030 15015 5005 1001 143

    13 13 1 candidate = 13 Monday, March 12, 12
  9. Things You Can Do Find and master a kata google

    codekata.pragprog.com youtube Create a study guide for your kata “I teach and I understand” Monday, March 12, 12
  10. Institutionalized Code Kata Three-week “class” Meet at the same time,

    30 minutes each day. Follow a “master”, performing the kata Over time introduce new challenges or learning Monday, March 12, 12
  11. Practice To Learn... a new language a new development environment

    a new programming style a new human being Monday, March 12, 12