SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Coding
(Dojo)
Angel Núñez Salazar
angel.nunez@kleer.la
@snahider
¿ Qué es un Coding Dojo?
Aprender, enseñar y mejorar nuestras
habilidades de diseño y programación,
compartiendo con otros desarrolladores de
Software.
Dojo (道場): El camino en búsqueda de la perfección.
Deliverate Practice
Code Kata
Kata(型 o 形): repetición de movimientos establecidos, buscando la
perfección en la ejecución.
Nos divertiremos y mejoraremos nuestras habilidades de
desarrollo resolviendo un problema de programación
aplicando TDD y Pair Programing.
Test Driven Development
Ejemplo
Concreto
(Prueba)
Falla
CodificarFunciona
Mejorar
Pair Programming
Driver Navigator
Comunicación , debate y rotación constante
Escribe código
limpio, compila y
ejecuta
Orienta sobre el
diseño, pruebas y
refactoring
Modalidad: Randori
Cada 7 Minutos
- Coder -> Regresa al público
- Copiloto -> Coder
- Público -> Copiloto
Una única computadora conectada al proyector
- 1 Coder
- 1 Copiloto
Los asistentes prestan atención y brindan sugerencias.
La pareja en la computadora explica que está haciendo.
Modalidad: Multi Randori
Cada Mesa
-  1 Coder
-  1 Copiloto
-  Asistentes interactuando
Cada 7 Minutos
-  Coder -> Queda libre
-  Copiloto -> Coder
-  Asistente -> Copiloto
Próximos Pasos
Practiquen este u otro Kata en su casa.
Organicen sus propios Coding Dojo en su
trabajo o comunidad.
(pueden utilizar esta presentación)
Referencias
Más sobre Coding Dojo
http://codingdojo.org/ (incluye catálogo de Katas)
Libros
“The Coding Dojo Handbook”, Emily Bache
“Test Driven Development by Example”, Kent Beck.
"Refactoring , Improving the Design of Existing Code”, M. Fowler.
“Clean Code”, Robert C. Martin.
Cierre y Feedback

Más contenido relacionado

Similar a Coding Dojo

Kleer yoseki coding dojo - Pre-Smalltalk 2012
Kleer   yoseki coding dojo - Pre-Smalltalk 2012Kleer   yoseki coding dojo - Pre-Smalltalk 2012
Kleer yoseki coding dojo - Pre-Smalltalk 2012Diogenes Moreira
 
FLL 2009 Sesión 004
FLL 2009 Sesión 004FLL 2009 Sesión 004
FLL 2009 Sesión 004Roman Martin
 
Yoseki Coding Dojo - Agosto 2012 (Lima)
Yoseki Coding Dojo - Agosto 2012 (Lima)Yoseki Coding Dojo - Agosto 2012 (Lima)
Yoseki Coding Dojo - Agosto 2012 (Lima)Hiroshi Hiromoto
 
Coding dojo - Kata The Cube
Coding dojo - Kata The CubeCoding dojo - Kata The Cube
Coding dojo - Kata The CubeOriol del Barrio
 
Quasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje CQuasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje Cdegarden
 
Yoseki Coding Dojo - Julio 2012 (Lima)
Yoseki Coding Dojo - Julio 2012 (Lima)Yoseki Coding Dojo - Julio 2012 (Lima)
Yoseki Coding Dojo - Julio 2012 (Lima)Hiroshi Hiromoto
 
Universo Agile
Universo AgileUniverso Agile
Universo Agilelucsat
 
Meetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven DesignMeetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven DesignOsvaldo Mercado Coss
 
1 introduccionlenguajec
1 introduccionlenguajec1 introduccionlenguajec
1 introduccionlenguajecJaneth Gallo
 
AdV - Programación para no Programadores
AdV - Programación para no ProgramadoresAdV - Programación para no Programadores
AdV - Programación para no ProgramadoresJavier_J
 
Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'AulaDeVideojuegos
 

Similar a Coding Dojo (20)

Kleer - Yoseki Coding Dojo - RubyConfAr
Kleer  - Yoseki Coding Dojo - RubyConfArKleer  - Yoseki Coding Dojo - RubyConfAr
Kleer - Yoseki Coding Dojo - RubyConfAr
 
Kleer yoseki coding dojo - Pre-Smalltalk 2012
Kleer   yoseki coding dojo - Pre-Smalltalk 2012Kleer   yoseki coding dojo - Pre-Smalltalk 2012
Kleer yoseki coding dojo - Pre-Smalltalk 2012
 
FLL 2009 Sesión 004
FLL 2009 Sesión 004FLL 2009 Sesión 004
FLL 2009 Sesión 004
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Yoseki Coding Dojo - Agosto 2012 (Lima)
Yoseki Coding Dojo - Agosto 2012 (Lima)Yoseki Coding Dojo - Agosto 2012 (Lima)
Yoseki Coding Dojo - Agosto 2012 (Lima)
 
Coding Dojo en Ágiles 2011
Coding Dojo en Ágiles 2011Coding Dojo en Ágiles 2011
Coding Dojo en Ágiles 2011
 
Coding dojo - Kata The Cube
Coding dojo - Kata The CubeCoding dojo - Kata The Cube
Coding dojo - Kata The Cube
 
Kleer yoseki coding dojo - 2012-08-03 - medellín
Kleer   yoseki coding dojo - 2012-08-03 - medellínKleer   yoseki coding dojo - 2012-08-03 - medellín
Kleer yoseki coding dojo - 2012-08-03 - medellín
 
Quasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje CQuasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje C
 
Yoseki Coding Dojo - Julio 2012 (Lima)
Yoseki Coding Dojo - Julio 2012 (Lima)Yoseki Coding Dojo - Julio 2012 (Lima)
Yoseki Coding Dojo - Julio 2012 (Lima)
 
Metodos agiles 4
Metodos agiles 4Metodos agiles 4
Metodos agiles 4
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Universo Agile
Universo AgileUniverso Agile
Universo Agile
 
Meetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven DesignMeetup: Sesión #8 Domain Driven Design
Meetup: Sesión #8 Domain Driven Design
 
Diseñoconsoftwarelibre
DiseñoconsoftwarelibreDiseñoconsoftwarelibre
Diseñoconsoftwarelibre
 
1 introduccionlenguajec
1 introduccionlenguajec1 introduccionlenguajec
1 introduccionlenguajec
 
1 introduccionlenguajec
1 introduccionlenguajec1 introduccionlenguajec
1 introduccionlenguajec
 
Scrum y craftsmanship
Scrum y craftsmanshipScrum y craftsmanship
Scrum y craftsmanship
 
AdV - Programación para no Programadores
AdV - Programación para no ProgramadoresAdV - Programación para no Programadores
AdV - Programación para no Programadores
 
Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'
 

Más de Angel Nuñez

Structural Agility
Structural AgilityStructural Agility
Structural AgilityAngel Nuñez
 
Architecting Sociotechnical Systems
Architecting Sociotechnical SystemsArchitecting Sociotechnical Systems
Architecting Sociotechnical SystemsAngel Nuñez
 
Product Development Flow
Product Development FlowProduct Development Flow
Product Development FlowAngel Nuñez
 
Hackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalHackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalAngel Nuñez
 
Liderazgo Transformacional
Liderazgo TransformacionalLiderazgo Transformacional
Liderazgo TransformacionalAngel Nuñez
 
Liderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsLiderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsAngel Nuñez
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory TestingAngel Nuñez
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingAngel Nuñez
 
Agile Test Strategy
Agile Test StrategyAgile Test Strategy
Agile Test StrategyAngel Nuñez
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummitAngel Nuñez
 
Agile Testing - Software Testing Club
Agile Testing - Software Testing ClubAgile Testing - Software Testing Club
Agile Testing - Software Testing ClubAngel Nuñez
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlimaAngel Nuñez
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodeAngel Nuñez
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven InfrastructureAngel Nuñez
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteAngel Nuñez
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NETAngel Nuñez
 
Refactoring to Patterns
Refactoring to PatternsRefactoring to Patterns
Refactoring to PatternsAngel Nuñez
 

Más de Angel Nuñez (20)

Structural Agility
Structural AgilityStructural Agility
Structural Agility
 
Architecting Sociotechnical Systems
Architecting Sociotechnical SystemsArchitecting Sociotechnical Systems
Architecting Sociotechnical Systems
 
Product Development Flow
Product Development FlowProduct Development Flow
Product Development Flow
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
 
Hackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalHackeando la Cultura Organizacional
Hackeando la Cultura Organizacional
 
Liderazgo Transformacional
Liderazgo TransformacionalLiderazgo Transformacional
Liderazgo Transformacional
 
Liderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsLiderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOps
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory Testing
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and Scaling
 
Agile Test Strategy
Agile Test StrategyAgile Test Strategy
Agile Test Strategy
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummit
 
Agile Testing - Software Testing Club
Agile Testing - Software Testing ClubAgile Testing - Software Testing Club
Agile Testing - Software Testing Club
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven Infrastructure
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
 
Unit testing
Unit testingUnit testing
Unit testing
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NET
 
Refactoring
RefactoringRefactoring
Refactoring
 
Refactoring to Patterns
Refactoring to PatternsRefactoring to Patterns
Refactoring to Patterns
 

Coding Dojo

Notas del editor

  1. Dojo: "El lugar de la vía" == Búsqueda de la perfección. ¿Por qué "Dojo"? Dojo es un término de origen japonés, mediante el cual se designa a los espacios destinados al aprendizaje, la meditación y la sabiduría. Quién ocupa el lugar de "guía" en un Dojo, es llamado Sensei. Por ello, el significado semántico de Dojo, se refiere a la búsqueda de la perfección y de allí, es que se adopta el término de "Coding Dojo": el lugar donde los programadores se reúnen en búsqueda de perfeccionarse profesionalmente. Coding Dojo El Coding Dojo es una reunión de desarrolladores con el objetivo de aprender, enseñar y mejorar nuevas habilidades y técnicas. ¿Por qué asistir a un Coding Dojo? ¿Cuál es la finalidad? Fundamentalmente entender que adquirir nuevas habilidades de programación es un proceso continuo en la que como programadores debemos estar abiertos siempre a aprender nuevas técnicas y tecnologías. Para un desarrollador, participar de un Coding Dojo es una experiencia vital para su carrera. La finalidad de un Coding Dojo, es aprender de otros programadores y adquirir nuevas habilidades. Un Coding Dojo, es un lugar exento de competitividad y por el contrario, se sostiene sobre la base de un espíritu de colaboración mutua entre todos los participantes. Esto, es un concepto fundamental, ya que marca la máxima diferencia, con cualquier otro tipo de eventos para programadores. Es muy divertido ya que estamos para pasar un buen rato a parte de aprender.
  2. Muchos expertos en varias disciplinas han logrado lo que saben y pueden debido al gran esfuerzo que han puesto en lograr maestría y artesanía en sus respectivos trabajos. Y muchos han revelado que la cantidad y calidad de la práctica que han realizado es un factor clave en el nivel de expertise que han logrado. No toda la práctica nos ayuda a mejorar (no mejoramos solo por hacer nuestro trabajo), necesitamos un tipo de práctica en particular, la practica deliverada (que es un momento de práctica enfocada, con un propósito en particular, para mejorar habilidades que no las hacemos muy bien) En muchas otras profesiones en la música, los doctores, los deportes, tienen momentos deliverados de práctica, no solo la practica del trabajo. Este es un momento de práctica deliverada.
  3. Un kata es la repetición de movimiento establecidos, buscando la perfección en su ejecución y parte de nuestra memoria muscular. Nos divertiremos y mejoraremos nuestra habilidades de codificación resolviendo un problema de programación aplicando Pair Programming y TDD. El objetivo no es resolver el problema, sino aprender y entrenar nuestras habilidades y técnicas.
  4. Recordar que la pareja debe usar TDD
  5. Recordar que la pareja debe usar TDD
  6. For example you could ask each person to first write down something they learnt, something that surprised them and something they still don’t understand, then go around each person asking them to share. What surprised you What did you learn What do you want to achieve. • “What have we learned?”: Reflecting and discussing what was learned is an effective way to make learning an active process and to verify that the session met its goals. • “What has hindered learning?”: The negative aspects of a meeting are discussed, and the main impediments are identified. The group performs a root cause analysis and discusses how these impediments could be eliminated, coming up with a series of action items. People take responsibility to handle each action item for the next meeting, the results are recorded for future reflection, and the effects of the change are reevaluated in the next retrospective. “What went well?” and “What could be improved?”