View
281
Download
0
Category
Preview:
DESCRIPTION
The slides from the coderetreat on the Global Day of Coderetreat 2014 in Turku, Finland
Citation preview
www.mozaicworks.com
Me
Adi BolboacaOrganizational & Technical
Trainer & Coach
2009, First time outside US
Why?
Learn through pairingExtend your comfort zone
PracticeExperiment
Learn new practices
www.mozaicworks.com
How?
1 day of codingChoose a simple problem
6 pairing partnersOn average 135 minutes of coding
6 different constraintsA lot of fun!
www.mozaicworks.com
How it started
CodeMash conference 2009
Gary BernhardtPatrick Welsh
Nayan HajratwalaCorey Haines
www.mozaicworks.com
How it started
RepeatableDay-long
Practice the fundamentals of programmingIntense day of coding
www.mozaicworks.com
Day structure
15' introduction3 sessions of 45' coding + 15' retro&break
1h lunch3 sessions of 45' coding + 15' retro&break
15' closing circle
www.mozaicworks.com
Principles
Language agnosticDo not try to finish the problem
Delete the code after each sessionFocus on practicing
Experiment each sessionHave fun!
www.mozaicworks.com
How to take advantage1. Embrace the freedom of deleting the code
2. Do what you always wanted but couldn't
3. Get out of your comfort zone
4. Pair with strangers in languages you don't know
5. What you learn is your responsibility
Prerequisites
ComputerCoding environmentTesting framework
Source control (git, svn, etc)
www.mozaicworks.com
The four elements of simple design
1) Passes its tests2) Minimizes duplication
3) Maximizes clarity4) Has fewer elements
www.mozaicworks.com
Conway's game of life
Having an infinite 2D orthogonal universeBeing given an initial generation called a seedThe following rules are applied simultaneously
A live cell having less than 2 live neighbors diesA live cell having 2 or 3 live neighbors lives A live cell having more than 3 neighbors diesA dead cell having 3 neighbors becomes alive
www.mozaicworks.com
Session 1: Understand the problem
Find a pairChoose a programming language
Setup the environmentChoose an entry point for the problem
Start in 5 min
www.mozaicworks.com
Conway's game of life
Having an infinite 2D orthogonal universeBeing given an initial generation called a seedThe following rules are applied simultaneously
A live cell having less than 2 live neighbors diesA live cell having 2 or 3 live neighbors lives A live cell having more than 3 neighbors diesA dead cell having 3 neighbors becomes alive
www.mozaicworks.com
Session 2: Evil pairing
Ping-pong pairingBe evil, write the bad implementation for test
www.mozaicworks.com
Session 3: Immutable
You cannot change the state of an object during execution
www.mozaicworks.com
Session 4: Universe wormholes
Both orthogonal and hexagonal universeTime passes differently
There is a pentagonal transient area between them
www.mozaicworks.com
Session 4: Universe wormholesThere are six 1st tier neighborsThere are six 2nd tier neighbors
Live 1st tier neighbors weight 1.0Live 2nd tier neighbors weight 0.3Each cell has a weighted sum of all
its 12 neighbors
www.mozaicworks.com
Session 4: Universe wormholes
Having an infinite 2D hexagonal universe
Being given an initial generation called a seedThese rules are applied simultaneously on tick
A live cell having less than 2.0 sum diesA live cell having 2.0 – 3.3 sum lives onA live cell having more than sum 3.3 dies
A dead cell having 2.3 - 2.9 sum becomes alive
www.mozaicworks.com
Session 5: Event driven
All the connections are just eventsNo other way of communication is allowed
www.mozaicworks.com
Closing circle
1) How did you feel? 2) What did you learn today?
3) What will you do differently tomorrow?
www.mozaicworks.com
Code retreatWhy?
Learn through pairingExtend your comfort zone
PracticeExperiment
Learn new practices
www.mozaicworks.com
Contact me● Remote pair-programming● Unit testing workshop● Test driven development workshop● Clean code workshop● Refactoring workshop● Legacy code retreat● Working FAST and Safe with existing
code● Code retreat
www.mozaicworks.com
Code retreatExtend your mentoring & training capacity
Accelerate learning through communities of practice
Grow your functional leaders and top talents
http://www.mozaicworks.com
adrian.bolboaca@mozaicworks.com
@adibolb
Recommended