SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Perth Code Dojo 
5 @willwebst 
#CodeDojo
Check-In 
➔ Your name 
➔ What do you want for Christmas? 
➔ Do you believe in Santa?
Code Dojo Format 
A Coding Dojo is a coding session centered around a 
programming challenge. 
The dojo provides a safe place to learn and experiment 
away from the pressures of business delivery. 
All programmers of varying skill levels meet as equals to 
learn and share.
Software Craftsmanship 
“Deliberate practice is closely related to the 
attained level of performance of many types of 
experts” - Dr. K. Anders Ericsson
Dojo Rules 
➔ Paired Programming 
➔ Simple Design 
➔ Test Driven Development 
➔ Refactoring
XP Practices 
➔ Test Driven Design 
◆ Red - Green - Refactor 
◆ Keep the unit small 
◆ DESIGN / Design by contract 
◆ Flow
XP Practises 
➔ Benefits 
◆ More extensible and maintainable solutions 
◆ Quality improvements / cost of defects 
◆ Automated builds 
◆ Peer reviews / pairing 
◆ Confidence to refactor 
◆ Coverage 
◆ Legacy code
XP Practises 
➔ Disadvantages / challenges 
◆ Requires buy in 
◆ Learning curve 
◆ Purest approach 
◆ Overly loose coupling 
◆ Not always productive 
◆ Potential overconfidence 
◆ Tests require maintenance / refactoring
Pomodoro 
➔ Pomodoro Technique 
◆ 25 mins on, 5 mins off 
◆ http://tomatoi.st/perthcodedojo 
➔ Four iterations
Retro & Pizza 
Closing with Pizza and a mini retrospective 
➔ Share solutions on the big screen 
➔ Discuss challenge / approach 
➔ Feedback on the dojo
Polite Notice 
Please respect each others commitment. 
During a Pomodoro. 
➔ No Facebook 
➔ Mobile phones 
➔ Etc.
Have Fun! 
Most importantly have fun! 
➔ Drinks are available - help yourselves
Objective 
Given a word list, containing one word 
per line. 
Find all the combinations of each word 
which are anagrams.
Objective 
Examples: 
Webster - bestrew 
Software - forwaste
Objective 
Think about the algorithm approach 
● Simplest 
● Fastest 
Test First!
Find Anagrams 
http://codekata.com/data/wordlist.txt 
Find all the anagrams contained within the list for each 
word
Begin! 
25 mins
Stop! 
5 mins
Remove Acronyms 
Remove any non-words 
● ACB 
● BBSes 
● BMW's
Begin! 
25 mins
Stop! 
5 mins
Remove Non-English 
Remove any words which contain non-UFT8 characters 
● étagères 
● Ångströms 
● Österreich's 
Remove an names - starting with uppercase
Begin! 
25 mins
Stop! 
5 mins
Thank You - Dave Thomas 
Credit goes to @PragDave / Ruby community for this 
Katak 
Check out - http://codekata.com/ 
Great source for Code Katas.
Thank you sponsors! 
Code - http://github.com/burlistic 
Slides - http://speakerdeck.com/burlistic 
@willwebst
Mini Retro 
How did everyone find the exercise? 
Small break for Christmas. See you in 2015! 
Next up - Decoupling Logic from the UI

Weitere ähnliche Inhalte

Was ist angesagt?

Engl317 project4 slidedoc4_screencasting_usability_testfinding
Engl317 project4 slidedoc4_screencasting_usability_testfindingEngl317 project4 slidedoc4_screencasting_usability_testfinding
Engl317 project4 slidedoc4_screencasting_usability_testfinding
Zachary Williamson
 

Was ist angesagt? (14)

Proclub SE Magang! Summer 2020 Goes to Unicorn! Series: 0. An Introduction
Proclub SE Magang! Summer 2020 Goes to Unicorn! Series: 0. An IntroductionProclub SE Magang! Summer 2020 Goes to Unicorn! Series: 0. An Introduction
Proclub SE Magang! Summer 2020 Goes to Unicorn! Series: 0. An Introduction
 
How to create short videos
How to create short videosHow to create short videos
How to create short videos
 
How Non-Profit Organizations Can Create Accessible Video
How Non-Profit Organizations Can Create Accessible VideoHow Non-Profit Organizations Can Create Accessible Video
How Non-Profit Organizations Can Create Accessible Video
 
Screen recorder comparison schillerstrom
Screen recorder comparison schillerstromScreen recorder comparison schillerstrom
Screen recorder comparison schillerstrom
 
Engl317 project4 slidedoc4_screencasting_usability_testfinding
Engl317 project4 slidedoc4_screencasting_usability_testfindingEngl317 project4 slidedoc4_screencasting_usability_testfinding
Engl317 project4 slidedoc4_screencasting_usability_testfinding
 
CAT presentation
CAT presentationCAT presentation
CAT presentation
 
WebAssembly: Digging a bit deeper
WebAssembly: Digging a bit deeperWebAssembly: Digging a bit deeper
WebAssembly: Digging a bit deeper
 
Introducing bdd elements to unit testing.pptx
Introducing bdd elements to unit testing.pptxIntroducing bdd elements to unit testing.pptx
Introducing bdd elements to unit testing.pptx
 
Tf itjsbagg
Tf itjsbaggTf itjsbagg
Tf itjsbagg
 
Testing javascript
Testing javascriptTesting javascript
Testing javascript
 
Agile Software Development for Non-Developers
Agile Software Development for Non-DevelopersAgile Software Development for Non-Developers
Agile Software Development for Non-Developers
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teams
 
Design 101
Design 101Design 101
Design 101
 
A/B Testing That Matters
A/B Testing That MattersA/B Testing That Matters
A/B Testing That Matters
 

Andere mochten auch (9)

Agile tour Taipei 2014 - coding dojo with CSharp and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDDAgile tour Taipei 2014 - coding dojo with CSharp and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDD
 
Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Tic-Tac-Toe (2014)Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Tic-Tac-Toe (2014)
 
Clojure
ClojureClojure
Clojure
 
ScalaZ
ScalaZScalaZ
ScalaZ
 
Agile tour 2014 - Coding Dojo with C# and TDD
Agile tour 2014 - Coding Dojo with C# and TDDAgile tour 2014 - Coding Dojo with C# and TDD
Agile tour 2014 - Coding Dojo with C# and TDD
 
Coding DOJO
Coding DOJOCoding DOJO
Coding DOJO
 
Agile Prague Coding Dojo
Agile Prague Coding DojoAgile Prague Coding Dojo
Agile Prague Coding Dojo
 
Pykonik Coding Dojo
Pykonik Coding DojoPykonik Coding Dojo
Pykonik Coding Dojo
 
At2009 Coding Dojo ATDD
At2009 Coding Dojo ATDDAt2009 Coding Dojo ATDD
At2009 Coding Dojo ATDD
 

Ähnlich wie Perth codedojo 5-anagram-algorithm

Talk proposal get_accepted
Talk proposal get_acceptedTalk proposal get_accepted
Talk proposal get_accepted
lauraxthomson
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
Peter Kofler
 

Ähnlich wie Perth codedojo 5-anagram-algorithm (20)

How does one learn to program?
How does one learn to program?How does one learn to program?
How does one learn to program?
 
How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)
 
Golang, Python or C/C++, who wins
Golang, Python or C/C++, who wins Golang, Python or C/C++, who wins
Golang, Python or C/C++, who wins
 
Building an event/conference website like FUDCon.in
Building an event/conference website like FUDCon.inBuilding an event/conference website like FUDCon.in
Building an event/conference website like FUDCon.in
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
What is the best programming language for your web product?
What is the best programming language for your web product?What is the best programming language for your web product?
What is the best programming language for your web product?
 
Single-Sourcing and Localization
Single-Sourcing and LocalizationSingle-Sourcing and Localization
Single-Sourcing and Localization
 
Software Design Notes
Software Design NotesSoftware Design Notes
Software Design Notes
 
Talk proposal get_accepted
Talk proposal get_acceptedTalk proposal get_accepted
Talk proposal get_accepted
 
Perth codedojo 2-checkout
Perth codedojo 2-checkoutPerth codedojo 2-checkout
Perth codedojo 2-checkout
 
Talking about craftsmanship with ensaimadas and katas
Talking about craftsmanship with ensaimadas and katasTalking about craftsmanship with ensaimadas and katas
Talking about craftsmanship with ensaimadas and katas
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
 
The future of testing magento 2 james cowie from shero commerce - 10 24-20 ...
The future of testing magento 2   james cowie from shero commerce - 10 24-20 ...The future of testing magento 2   james cowie from shero commerce - 10 24-20 ...
The future of testing magento 2 james cowie from shero commerce - 10 24-20 ...
 
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
 
Pair Programming (2015)
Pair Programming (2015)Pair Programming (2015)
Pair Programming (2015)
 
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsAmanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
 
Talking about craftsmanship with "ensaimadas" and katas (May, 2018)
Talking about craftsmanship with "ensaimadas" and katas (May, 2018)Talking about craftsmanship with "ensaimadas" and katas (May, 2018)
Talking about craftsmanship with "ensaimadas" and katas (May, 2018)
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
 
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLEAN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
 

Kürzlich hochgeladen

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 

Perth codedojo 5-anagram-algorithm

  • 1. Perth Code Dojo 5 @willwebst #CodeDojo
  • 2. Check-In ➔ Your name ➔ What do you want for Christmas? ➔ Do you believe in Santa?
  • 3. Code Dojo Format A Coding Dojo is a coding session centered around a programming challenge. The dojo provides a safe place to learn and experiment away from the pressures of business delivery. All programmers of varying skill levels meet as equals to learn and share.
  • 4. Software Craftsmanship “Deliberate practice is closely related to the attained level of performance of many types of experts” - Dr. K. Anders Ericsson
  • 5. Dojo Rules ➔ Paired Programming ➔ Simple Design ➔ Test Driven Development ➔ Refactoring
  • 6. XP Practices ➔ Test Driven Design ◆ Red - Green - Refactor ◆ Keep the unit small ◆ DESIGN / Design by contract ◆ Flow
  • 7. XP Practises ➔ Benefits ◆ More extensible and maintainable solutions ◆ Quality improvements / cost of defects ◆ Automated builds ◆ Peer reviews / pairing ◆ Confidence to refactor ◆ Coverage ◆ Legacy code
  • 8. XP Practises ➔ Disadvantages / challenges ◆ Requires buy in ◆ Learning curve ◆ Purest approach ◆ Overly loose coupling ◆ Not always productive ◆ Potential overconfidence ◆ Tests require maintenance / refactoring
  • 9. Pomodoro ➔ Pomodoro Technique ◆ 25 mins on, 5 mins off ◆ http://tomatoi.st/perthcodedojo ➔ Four iterations
  • 10. Retro & Pizza Closing with Pizza and a mini retrospective ➔ Share solutions on the big screen ➔ Discuss challenge / approach ➔ Feedback on the dojo
  • 11. Polite Notice Please respect each others commitment. During a Pomodoro. ➔ No Facebook ➔ Mobile phones ➔ Etc.
  • 12. Have Fun! Most importantly have fun! ➔ Drinks are available - help yourselves
  • 13. Objective Given a word list, containing one word per line. Find all the combinations of each word which are anagrams.
  • 14. Objective Examples: Webster - bestrew Software - forwaste
  • 15. Objective Think about the algorithm approach ● Simplest ● Fastest Test First!
  • 16. Find Anagrams http://codekata.com/data/wordlist.txt Find all the anagrams contained within the list for each word
  • 19. Remove Acronyms Remove any non-words ● ACB ● BBSes ● BMW's
  • 22. Remove Non-English Remove any words which contain non-UFT8 characters ● étagères ● Ångströms ● Österreich's Remove an names - starting with uppercase
  • 25. Thank You - Dave Thomas Credit goes to @PragDave / Ruby community for this Katak Check out - http://codekata.com/ Great source for Code Katas.
  • 26. Thank you sponsors! Code - http://github.com/burlistic Slides - http://speakerdeck.com/burlistic @willwebst
  • 27. Mini Retro How did everyone find the exercise? Small break for Christmas. See you in 2015! Next up - Decoupling Logic from the UI