coding dojo
DESCRIPTION
Coding Dojo presentation used at Ruby Hacknight Montreal in December 2013, sponsored by iWebTRANSCRIPT
December 10th 2013
Coding Dojo
Ruby Hacknight
● Rafael Rosa - Cloud evangelist at iWeb
○ [email protected] / @rafaelrosafu
● Hosting provider based in Montreal
● Operating since 1996
● 10.000+ clients from around the world
● 4 data centers spread around the island
○ tens of thousands of servers in Montreal
● Infrastructure focus
○ Cloud servers
○ Dedicated servers
○ Smart servers
○ Managed servers
○ Colocation
● Acquired by Internap in October 2013
Who am I?
What a heck is a coding dojo?
Why is it useful?
How often do we train our coding skills?
Are we ready for a real combat?
Deliberate Practice
Source: http://commons.wikimedia.org/wiki/File:Aikido_training_02.jpg
Deliberate Practice
● Introduced to the programming
community by Andrew Hunt and Dave
Thomas on "The Pragmatic Programmer" in
2009
● Being aware of what your coding
○ Don't "program by coincidence"
○ Understand why things work or don't
● Practice makes it easier
How do we do it?
Using the heart of XP
Source: http://epf.eclipse.org/wikis/xp/xp/guidances/concepts/xp_practices_36E149F4.html
Baby steps
Source: http://holycuteness.com/wp-content/uploads/2012/03/Kitten-takes-her-first-steps-Imgur.jpg
Quick randori guide
● Gather a bunch of nice coders
○ Free pizza and beverages help a lot
● Pick a challenge / puzzle
○ Ruby Quiz has 150+ options
○ Explain the puzzle (this part is tricky)
● Prepare the environment
○ rspec + autotest for automated tests
○ Pick a simple text editor, like Sublime
● Pair random people
○ Coding cycles of 5 to 7 minutes
○ Replace driver, pick a new co-pilot from audience
● Make a quick retrospective
○ What can we improve next time?
TDD cycle - Red, Green, Refactor
Source: http://blog.spec-india.com/spec-india-implemented-test-driven-developmenttdd
Pre-conditions
● Safe environment
○ Respect everybody
○ There are no dumb questions
○ Making mistakes is part of the process
○ Constructive criticism is welcome
○ Everybody helps each other
● Desire to improve your craft
Goals
● The main goal is to learn
● Finishing the challenge is a detail
● It should be fun!
● It isn't a competition
● It isn't an exhibition
Resources
● http://codingdojo.org/● http://rubyquiz.com/● http://pragprog.com/book/ebdojo - The
Coding Dojo Handbook
We're hiring!
http://carrieres.iweb.com/en
Questions