SlideShare ist ein Scribd-Unternehmen logo
1 von 21
CODING DOJO

              или

как стать Ninja разработчиком



          Evgeny Shepelyuk

               2012             @eshepelyuk
О себе

Евгений Шепелюк
8+ years in IT
пишу на Java/Groovy/JavaScript
no tests -> no code
Agile -> Scrum
@eshepelyuk
ОЛДФАГИ ПОМНЯТ



               cc




Bruce Lee    Ninja   Jackie Chan
Владение техникой
            позволяет ...
                                       достигать
                               поставленной цели
           одержать победу
           над врагами



                получить $$$


рассмешить
(Jackie Chan)
Как успешные люди
совершенствуют свои умения


                                             c




Если я не занимался один день, я знаю это. Если я не
занимался два дня, моя жена знает это. Если я не
занимался три дня, об этом знает весь мир.
                               Владимир Горовиц,
                               пианист-виртуоз
КАТА
Формализованная последовательность движений,
 связанных принципами ведения поединка с
 воображаемым противником или группой
 противников (http://ru.wikipedia.org/wiki/Ката)


              DOJO
“Место, где ищут путь”
Додзё — это место, где мы дисциплинируем и
 совершенствуем себя, чтобы стать лучше
  (http://ru.wikipedia.org/wiki/Додзё)
The pragmatic programmer

            Dave Thomas


0, начало                   t, шкала времени      бесконечность



 NON IT




                 Регулярно практикуемся
                                               EPIC WIN !!!

IT CROWD




                Регулярно пишем код
                                               EPIC FAIL !!!
Code Kata - абстрактная задача
 Разрабатывая ПО нам приходится
  практиковаться в процессе работы,
  вот почему мы и допускаем ошибки



разделять работу и практику кодирования
реализовывать одну задачу несколькими
 способами
получать отзывы о написанном коде
тренироваться в комфортном окружении
Paris Dojo - Prepared Kata
Laurent Bossavit                            Доска
                                          отсвечивае
                                                       W
                                              т !!!
                                                       TF
                              Что такое
            Сейчас я           E=mc2
             напишу
            E=mc2 на
              Java
Randori Dojo

                 Вместе атакуем“проблему”


ЗАДАЧА           Командная работа


                 Стрессовая ситуация


                 Наблюдаем и учимся
Pair Programming
driver and navigator
          постоянно общаются
                     меняются ролями
                        драйвер пишет код,
                       навигатор следит за общей
          Achtung !    картиной
         DIVISION by
            ZERO        ошибки исправляются до их
                       появления

                        обмен и передача знаний от
                       гуру к новичкам

                       опыт не критичен, писать
                       может любой
Traditional Development

                                      1. Пишем
                                    весь код сразу




Цикл разработки —
часы / дни
                     3. Отладка,                      2. Программа
                    поверхностное                    компилируется
                     тестировние
Test Driven Development

                                  1. Неработающий тест
                                        для нового
                                       функционала




Цикл разработки —
несколько минут
                      3. Рефактор —
                                                   2. Минимум кода,
                      тесты проходят,
                                                  чтобы тест проходил
                    код становится чище
Coding Dojo — randori style
                       проектор

                         Здесь
                          видно
                       код и тесты




                     меняются местами



парные програмисты                      участники




                     Dojo топливо
Coding Dojo — randori style
Задача (Kata)
  Парное программирование
  Test Driven Development + BabySteps
  Код пишет тот у кого клавиатура
  Критикуем дизайн после green bar

Смена пар
  TDD пинг понг
  По времени (5-7 мин)
  Участники делятся на команды или пары
Время проведения
  подготовить расписание                  c

  ~ 3-4 часа
Coding Dojo — randori style
         чего делать не надо ...

торопиться успеть закончить задачу
позволять участникам теряться в коде
соревноваться с другими участниками
начинать флеймы
решать рабочие задачи
CodingDojoCnUa
Группа в FaceBook
10 участников
3 Coding Dojo Randori style
Языки: Java, JavaScript
Темы
  WebDriver / Selenium
  Шаблоны проектирования / Design Patterns
  MineSweeper Kata / игра “Сапёр“
Coding Dojo — сделай сам
Нет проектора
  TeamViewer или похожее ПО

Нет доски
  Лист ватмана + плёнка :)))

Ретроспектива
  Плюс — что прошло успешно
  Дельта — что можно изменить
  Action points — что сделать
  в следующий раз
Coding Dojo

Социальные навыки
Новые языки и технологии
Учимся сами и учим других
Новые стороны                 c


привычных вещей
Just for fun
РЕГУЛЯРНАЯ ПРАКТИКА
Big Boss         Big Master



   c       Vs.
QUESTIONS ?




              @eshepelyuk

Weitere ähnliche Inhalte

Ähnlich wie Coding dojo

Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.Pavel Tsukanov
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU
 
Opensource на .NET
Opensource на .NETOpensource на .NET
Opensource на .NETlugnsk
 
Построение гибкого процесса разработки (3 курс)
Построение гибкого процесса разработки (3 курс)Построение гибкого процесса разработки (3 курс)
Построение гибкого процесса разработки (3 курс)Timur Rakhmatillaev
 
Код-ревью в Drupal
Код-ревью в DrupalКод-ревью в Drupal
Код-ревью в DrupalShvetsGroup
 
Построение гибкого процесса разработки (4-5 курсы)
Построение гибкого процесса разработки (4-5 курсы)Построение гибкого процесса разработки (4-5 курсы)
Построение гибкого процесса разработки (4-5 курсы)Timur Rakhmatillaev
 
Проходим тест Джоэла
Проходим тест ДжоэлаПроходим тест Джоэла
Проходим тест Джоэла0leGG
 
Выступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работыВыступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работыryba4
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшнеEugeni Feudorov
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingTatiana Volkova
 
Crucible или почему для Code Review нужна не только голова, но и инструмент
Crucible или почему для Code Review нужна не только голова, но и инструментCrucible или почему для Code Review нужна не только голова, но и инструмент
Crucible или почему для Code Review нужна не только голова, но и инструментMaxim Kuzmich
 
Meet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakMeet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakAmasty
 
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Ontico
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
Refactoring Legacy Code - Breaking Dependencies Techniques
Refactoring Legacy Code - Breaking Dependencies TechniquesRefactoring Legacy Code - Breaking Dependencies Techniques
Refactoring Legacy Code - Breaking Dependencies TechniquesDmitry Pavlov
 

Ähnlich wie Coding dojo (20)

Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест Джоэла
 
Opensource на .NET
Opensource на .NETOpensource на .NET
Opensource на .NET
 
BDD
BDDBDD
BDD
 
Построение гибкого процесса разработки (3 курс)
Построение гибкого процесса разработки (3 курс)Построение гибкого процесса разработки (3 курс)
Построение гибкого процесса разработки (3 курс)
 
Код-ревью в Drupal
Код-ревью в DrupalКод-ревью в Drupal
Код-ревью в Drupal
 
Построение гибкого процесса разработки (4-5 курсы)
Построение гибкого процесса разработки (4-5 курсы)Построение гибкого процесса разработки (4-5 курсы)
Построение гибкого процесса разработки (4-5 курсы)
 
Проходим тест Джоэла
Проходим тест ДжоэлаПроходим тест Джоэла
Проходим тест Джоэла
 
Выступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работыВыступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работы
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышло
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшне
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в Processing
 
Crucible или почему для Code Review нужна не только голова, но и инструмент
Crucible или почему для Code Review нужна не только голова, но и инструментCrucible или почему для Code Review нужна не только голова, но и инструмент
Crucible или почему для Code Review нужна не только голова, но и инструмент
 
Meet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakMeet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy Samilyak
 
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
Refactoring Legacy Code - Breaking Dependencies Techniques
Refactoring Legacy Code - Breaking Dependencies TechniquesRefactoring Legacy Code - Breaking Dependencies Techniques
Refactoring Legacy Code - Breaking Dependencies Techniques
 
запахи кода
запахи кодазапахи кода
запахи кода
 

Coding dojo

  • 1. CODING DOJO или как стать Ninja разработчиком Evgeny Shepelyuk 2012 @eshepelyuk
  • 2. О себе Евгений Шепелюк 8+ years in IT пишу на Java/Groovy/JavaScript no tests -> no code Agile -> Scrum @eshepelyuk
  • 3. ОЛДФАГИ ПОМНЯТ cc Bruce Lee Ninja Jackie Chan
  • 4. Владение техникой позволяет ... достигать поставленной цели одержать победу над врагами получить $$$ рассмешить (Jackie Chan)
  • 5. Как успешные люди совершенствуют свои умения c Если я не занимался один день, я знаю это. Если я не занимался два дня, моя жена знает это. Если я не занимался три дня, об этом знает весь мир. Владимир Горовиц, пианист-виртуоз
  • 6. КАТА Формализованная последовательность движений, связанных принципами ведения поединка с воображаемым противником или группой противников (http://ru.wikipedia.org/wiki/Ката) DOJO “Место, где ищут путь” Додзё — это место, где мы дисциплинируем и совершенствуем себя, чтобы стать лучше (http://ru.wikipedia.org/wiki/Додзё)
  • 7. The pragmatic programmer Dave Thomas 0, начало t, шкала времени бесконечность NON IT Регулярно практикуемся EPIC WIN !!! IT CROWD Регулярно пишем код EPIC FAIL !!!
  • 8. Code Kata - абстрактная задача Разрабатывая ПО нам приходится практиковаться в процессе работы, вот почему мы и допускаем ошибки разделять работу и практику кодирования реализовывать одну задачу несколькими способами получать отзывы о написанном коде тренироваться в комфортном окружении
  • 9. Paris Dojo - Prepared Kata Laurent Bossavit Доска отсвечивае W т !!! TF Что такое Сейчас я E=mc2 напишу E=mc2 на Java
  • 10. Randori Dojo Вместе атакуем“проблему” ЗАДАЧА Командная работа Стрессовая ситуация Наблюдаем и учимся
  • 11. Pair Programming driver and navigator постоянно общаются меняются ролями драйвер пишет код, навигатор следит за общей Achtung ! картиной DIVISION by ZERO ошибки исправляются до их появления обмен и передача знаний от гуру к новичкам опыт не критичен, писать может любой
  • 12. Traditional Development 1. Пишем весь код сразу Цикл разработки — часы / дни 3. Отладка, 2. Программа поверхностное компилируется тестировние
  • 13. Test Driven Development 1. Неработающий тест для нового функционала Цикл разработки — несколько минут 3. Рефактор — 2. Минимум кода, тесты проходят, чтобы тест проходил код становится чище
  • 14. Coding Dojo — randori style проектор Здесь видно код и тесты меняются местами парные програмисты участники Dojo топливо
  • 15. Coding Dojo — randori style Задача (Kata) Парное программирование Test Driven Development + BabySteps Код пишет тот у кого клавиатура Критикуем дизайн после green bar Смена пар TDD пинг понг По времени (5-7 мин) Участники делятся на команды или пары Время проведения подготовить расписание c ~ 3-4 часа
  • 16. Coding Dojo — randori style чего делать не надо ... торопиться успеть закончить задачу позволять участникам теряться в коде соревноваться с другими участниками начинать флеймы решать рабочие задачи
  • 17. CodingDojoCnUa Группа в FaceBook 10 участников 3 Coding Dojo Randori style Языки: Java, JavaScript Темы WebDriver / Selenium Шаблоны проектирования / Design Patterns MineSweeper Kata / игра “Сапёр“
  • 18. Coding Dojo — сделай сам Нет проектора TeamViewer или похожее ПО Нет доски Лист ватмана + плёнка :))) Ретроспектива Плюс — что прошло успешно Дельта — что можно изменить Action points — что сделать в следующий раз
  • 19. Coding Dojo Социальные навыки Новые языки и технологии Учимся сами и учим других Новые стороны c привычных вещей Just for fun РЕГУЛЯРНАЯ ПРАКТИКА
  • 20. Big Boss Big Master c Vs.
  • 21. QUESTIONS ? @eshepelyuk