Published on March 4, 2014
Getting Better through practice
Athletes train • Train Every Day • Keep Eye on the Prize • Be speciﬁc in training • Fuel body for peak performance • Know when to rest • Have perfect form http://exercise.about.com/od/healthinjuries/a/olympictraining.htm
Musicians Train • Continuous improvement is a fundamental part of the job and of the performer. • Many musicians continue to pay for their own lessons to further develop their skills. http://www.prospects.ac.uk/musician_training.htm!
Your Career is your Responsibility <start channelling UncleBob> It’s not your employers responsibility says Uncle Bob book: The Clean Coder
Not Your Company’s Responsibility To ! • • • buy books send you to conferences subscriptions ( CodeSchool, PluralSite, TreeHouse ) ! ! Take Responsibility for your own career! </end channelling UncleBob>
Ways to Practice • reading a book • watch videos at confreaks / youtube • going to and/or speaking to user group • mentor someone
Practice with Katas • Kata is a simple programing problem • Goal is to train your ﬁngers and brain ! • Pick one to work on every day for a week, ok maybe at least 3 days :) • Uncle Bob does one in morning and at night
Variations • Practice with new languages • editors (VI, Emacs, Textmate, Sublime, Atom, Light Table) • practice keyboard shortcuts (shortcutfoo.com) • test libraries (rspec, minitest/spec, test unit) • styles (Functional, TDD, London Style, etc)
Functional • recursion, lists, reduce, map • Tom Stuart video • https://skillsmatter.com/skillscasts/1101enumerators
Traditional TDD http://ryantablada.com/post/red-green-refactor---a-tdd-fairytale
Write all the tests • rapid ﬁre, just write out every test you could think of as it statements • keep them in pending state • pass them one by one • ﬁveruns gem is a great way to look at test output, spec —documentation is also great
Write it out on paper • stepping away from the keyboard • list every possible way • sketch it or psuedo code • then code it!
London-Style TDD • Developed in London by early adopters of of Extreme Programming • Mock Everything • Test relationships • Naysayers say using mocks is crutch for bad design • Good video from Gary Bernhardt https://www.youtube.com/watch?v=tdNnN5yTIeM
Nola’s interpretation • I’ve seen mocks use badly. • Very Badly. • Great to “skip” certain parts of the problem, as a temporary measure. • Great to “skip” making expensive API calls • Just depends what part your tests are focused on #facepalm
shocking white slide of code next!!
Example of London Style class Calc! end! describe Calc do before do @c = Calc.new end ! ! it "should be a class" do @c.should be_an_instance_of(Calc) end it "should accept a string" do @c.should_receive(:add).with("1").and_return(1) expect(@c.add("1")).to be 1 end it "should accept a string with 2 numbers" do @c.should_receive(:add).with("1,2,3").and_return(6) expect(@c.add("1,2,3")).to be 6 end end
Example class Calc! def add(input)! return 0 if input.empty?! numbers = input.split(/[,n]/)! numbers.map!(&:to_i)! sum = 0! numbers.each do |num|! sum += num! end! sum! end! end! !
Example describe Calc do before do @c = Calc.new end ! ! it "should be a class" do @c.should be_an_instance_of(Calc) end it "should accept a string" do @c.should_receive(:add).with("1").and_return(1) expect(@c.add("1")).to be 1 end it "should accept a string with 2 numbers" do @c.should_receive(:add).with("1,2,3").and_return(6) expect(@c.add("1,2,3")).to be 6 end end
The Coding Dojo Book ! • • group “Dojo” and how to lead a group Has 23 katas with variations http://www.kataclub.com is inspired by this book I am attempting to index all the Katas I know about there!
Katas as a Group • Styles for groups: • working in pairs • look-at-me-coding • whole-group
Randori - a Group Format • Code is project with one computer • Everyone codes • Taking turns • Whiteboards to explain problem • if you have keyboard: • you decide what to type • or you ask for ideas
View 665 Katas posts, presentations, experts, and more. Get the professional knowledge you need on LinkedIn.
The Improvement Kata is for the Learner. The Coaching Kata is for the Coach. To make the scientific Improvement Kata pattern part of how an organization does
periodic feeling that one is getting better ... through applying the Improvement Kata ... Kata Handbook Guidelines for Practicing 44
Where can I find real code katas? Frequently asked in. Update Cancel. 1 Answer. ... That is the core idea of a coding kata: getting better through practice.
For some reason this whole Code Kata ... getting better at ... once you've worked out the solution to your kata problem, you work through building it ...
README.md Kata . A kata is defined as an exercise in programming which helps hone your skills through practice and repetition. Authoring katas is done in ...
For some reason this whole Code Kata movement passed me by, so I'm coming late to the party, but I'm getting hooked. The term kata comes from Japanese ...
Tips and tricks on how to learn kata faster. It can be tough memorizing kata, and these are proven ways of learning kata fast.
Getting better through Katas. Los Katas Del Karate. KATAS SHITO RYU - Blackgord.pdf. Peforming Code Katas. Code Katas Spring 2012. Login or Join. Processing