SlideShare una empresa de Scribd logo
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

FLL 2009 Sesión 004
FLL 2009 Sesión 004FLL 2009 Sesión 004
FLL 2009 Sesión 004
Roman Martin
 
Quasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje CQuasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje C
degarden
 
Universo Agile
Universo AgileUniverso Agile
Universo Agile
lucsat
 
1 introduccionlenguajec
1 introduccionlenguajec1 introduccionlenguajec
1 introduccionlenguajec
Janeth Gallo
 

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

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
 

Último

Último (11)

trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
 
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 

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?”