Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Як прокачати трьох
студентів за п’ять тижнів
Artem Genvald
Km Code'n'Coffee #12
26.02.2015
Я очікував на щось таке...
Або таке...
Але отримав таке :)
Опитування студентів
Оцініть свої знання за шкалою від
0 до 10. Де:
0 - абсолютно нічого не знаю
10 - знаю бездоганно
Біллі 0 1 2 3 4 5 6 7 8 9 10
PHP
JavaScript
CSS
HTML
PHP-Framework Symfony2
Doctrine ORM
PHP best practice
PhpStorm
Шаблон...
Віллі 0 1 2 3 4 5 6 7 8 9 10
PHP
JavaScript
CSS
HTML
PHP-Framework Symfony2
Doctrine ORM
PHP best practice
PhpStorm
Шаблон...
Діллі 0 1 2 3 4 5 6 7 8 9 10
PHP
JavaScript
CSS
HTML
PHP-Framework Symfony2
Doctrine ORM
PHP best practice
PhpStorm
Шаблон...
Як організувати практику, щоб було
цікаво і студентам, і керівнику
● Придумати цікаве і корисне завдання
● Придумати цікав...
Про проект
Lost and Found - Бюро знахідок
● Подача/перегляд оголошень
● GPS-координати знайденої/загубленої речі
● Пошук с...
Рефакторити доводилось не
тільки код, але й робочі місця
До рефакторинга
Після рефакторинга
Робота в команді
Trello
Маркування
тікетів
кольорами
З першого погляду
видно стан справ
Перший тиждень
● Уроки по Git на Code School
● Реєстрація на GitHub
● Розгортання Symfony
● Code Style
● phpDocumentor
● П...
Code Style
Што, кря…?
Code Style
● PSR-0, PSR-1, PSR-2, PSR-3, PSR-4
● Symfony Coding standards
● TWIG Coding standards
● phpcs
RTFM! Читаємо документацію
Batsignal
Читаємо документацію! Кря...
Другий тиждень
● Версіонування даних
● Сторінка перегляду окремої речі
● Доробки в адмінці (batch actions, плюшки від Sona...
Leaflet Draw
Третій тиждень
● PHPUnit
● DoctrineExtensions: Tree
● Popus on markers
● Emails
● Вивід карти загублених/знайдених речей
●...
Skype >>> Slack
Підключаємо сервіси оцінки якості коду
● Travis CI
● Scrutinizer
● Codecov
● Packagist
● VersionEye
● SensioLabs Insight
● HHVM
● Gitter
Code Coverage
Scrutinizer
SensioLabs Insight
Парне програмування
Четвертий тиждень
● Консольна команда для пошуку співпадінь
● Events and Event Dispatcher
● Запит контактів автора оголоше...
Scrum
Team Lead
sКРЯm
● короткі спрінти: 3-4 дні для гнучкості
● тікети на команду, в команді тікети розподіляють
самостійно
● тім-лід при...
П’ятий тиждень
● Refactoring
● Кастомізація адмінки
● Покриття тестами існуючого функціоналу
● Верстка
● Повідомлення між ...
Story points
● Перший тиждень - 41
● Другий тиждень - 85
● Третій тиждень - 63
● Четвертий тиждень - 84,5
● П’ятий тиждень...
Типові баги, факапи, фейли
Типові баги, факапи, фейли
● закомітили вендори і кеш
● код з однієї фічі попадав в бранч іншої
● не переглядали diff під ...
Повторне опитування студентів в
кінці практики
Біллі 0 1 2 3 4 5 6 7 8 9 10
PHP
JavaScript
CSS
HTML
PHP-Framework Symfony2
Doctrine ORM
PHP best practice
PhpStorm
Шаблон...
Віллі 0 1 2 3 4 5 6 7 8 9 10
PHP
JavaScript
CSS
HTML
PHP-Framework Symfony2
Doctrine ORM
PHP best practice
PhpStorm
Шаблон...
Діллі 0 1 2 3 4 5 6 7 8 9 10
PHP
JavaScript
CSS
HTML
PHP-Framework Symfony2
Doctrine ORM
PHP best practice
PhpStorm
Шаблон...
Статистика RescueTime від Діллі
Бейджики
Біллі
● копіпастер level 2
● мауглі
● пінг-понгер
● merge-conflict
● вотЕтаПаварот
● йошкін кот level 2
● feature-inventor...
Віллі
● pair-programming
● копіпастер level 2
● F.A.Q. (friendly)
● йошкін кот
● sprint #1 done
● sprint #2 done
Діллі
● javascript-slave
● pair-programming
● монетизатор
● Робін
● sКРЯm-master
● Behat-сапер
● sprint #1 done
● sprint #...
Чуваки на правильному шляху
Перший отриманий хабар :)
Плани на наступну практику
● Покращення алгоритму пошуку співпадінь
● API
● Покращений пошук
● Кластеризація маркерів при ...
Як я прокачав себе
Як я прокачав себе
● time management
● project management
● оновив свої знання
● вивчив те, що не знав
● на скільки добре ...
Практика закінчилась
Тепер я вільний!
А де ж Поночка? :)
А ось вона =)
Яна - HR at Stfalcon.com
Happy End
To be continued...
Як прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнів
Upcoming SlideShare
Loading in …5
×

Як прокачати трьох студентів за п’ять тижнів

1,297 views

Published on

GitHub repository: https://github.com/stfalcon-studio/lost-and-found
Відео з презентації: https://www.youtube.com/watch?v=3EgilE_fpkI

До нас на студію прийшли три студенти проходити практику. Потрібно було дати їм завдання і організувати навчальний процес. Розробляли проект "Бюро знахідок" на PHP Framework Symfony2. Ділюсь своїм досвідом, як я це зробив і що в результаті вийшло.

Published in: Education

Як прокачати трьох студентів за п’ять тижнів

  1. 1. Як прокачати трьох студентів за п’ять тижнів Artem Genvald Km Code'n'Coffee #12 26.02.2015
  2. 2. Я очікував на щось таке...
  3. 3. Або таке...
  4. 4. Але отримав таке :)
  5. 5. Опитування студентів Оцініть свої знання за шкалою від 0 до 10. Де: 0 - абсолютно нічого не знаю 10 - знаю бездоганно
  6. 6. Біллі 0 1 2 3 4 5 6 7 8 9 10 PHP JavaScript CSS HTML PHP-Framework Symfony2 Doctrine ORM PHP best practice PhpStorm Шаблонізатор TWIG SQL MySQL DB Git, GitHub Workflow Design Patterns TDD, PHPUnit BDD, Behat & Mink Web-Development Workflow
  7. 7. Віллі 0 1 2 3 4 5 6 7 8 9 10 PHP JavaScript CSS HTML PHP-Framework Symfony2 Doctrine ORM PHP best practice PhpStorm Шаблонізатор TWIG SQL MySQL DB Git, GitHub Workflow Design Patterns TDD, PHPUnit BDD, Behat & Mink Web-Development Workflow
  8. 8. Діллі 0 1 2 3 4 5 6 7 8 9 10 PHP JavaScript CSS HTML PHP-Framework Symfony2 Doctrine ORM PHP best practice PhpStorm Шаблонізатор TWIG SQL MySQL DB Git, GitHub Workflow Design Patterns TDD, PHPUnit BDD, Behat & Mink Web-Development Workflow
  9. 9. Як організувати практику, щоб було цікаво і студентам, і керівнику ● Придумати цікаве і корисне завдання ● Придумати цікавий робочий процес ● Викладатись на максимум і вимагати цього ж ● Давати не тільки критику, але і похвалу ● Краще багато маленьких завдань, ніж одне велике ● Не скупитись ділитись знаннями
  10. 10. Про проект Lost and Found - Бюро знахідок ● Подача/перегляд оголошень ● GPS-координати знайденої/загубленої речі ● Пошук співпадінь, прив’язка до категорій ● Соціалізація ● https://github.com/stfalcon-studio/lost-and-found
  11. 11. Рефакторити доводилось не тільки код, але й робочі місця
  12. 12. До рефакторинга
  13. 13. Після рефакторинга
  14. 14. Робота в команді
  15. 15. Trello
  16. 16. Маркування тікетів кольорами
  17. 17. З першого погляду видно стан справ
  18. 18. Перший тиждень ● Уроки по Git на Code School ● Реєстрація на GitHub ● Розгортання Symfony ● Code Style ● phpDocumentor ● Проектування бази даних ● Semantic Versioning ● Опис перших сутностей та міграції ● Перший робочий функціонал: форма для додавання речей, адмінка
  19. 19. Code Style
  20. 20. Што, кря…?
  21. 21. Code Style ● PSR-0, PSR-1, PSR-2, PSR-3, PSR-4 ● Symfony Coding standards ● TWIG Coding standards ● phpcs
  22. 22. RTFM! Читаємо документацію
  23. 23. Batsignal
  24. 24. Читаємо документацію! Кря...
  25. 25. Другий тиждень ● Версіонування даних ● Сторінка перегляду окремої речі ● Доробки в адмінці (batch actions, плюшки від Sonata) ● Підключення Leaflet.js ● Шаблонізатор TWIG ● ORM, DBAL ● FormType в Symfony ● Сесія, флеш-повідомлення ● Валідація ● Різні маркери категорії ● YAGNI, KISS, DRY ● Реєстрація користувачів через Facebook ● Сторінка профілю користувача ● Можливість позначення території для загубленої речі
  26. 26. Leaflet Draw
  27. 27. Третій тиждень ● PHPUnit ● DoctrineExtensions: Tree ● Popus on markers ● Emails ● Вивід карти загублених/знайдених речей ● AJAX ● Виправлення багів ● Service Container в Symfony2 ● Як слідкувати за інформацією в світі PHP? ● Розділення функціоналу по ролям ● F.A.Q.
  28. 28. Skype >>> Slack
  29. 29. Підключаємо сервіси оцінки якості коду
  30. 30. ● Travis CI ● Scrutinizer ● Codecov ● Packagist ● VersionEye ● SensioLabs Insight ● HHVM ● Gitter
  31. 31. Code Coverage
  32. 32. Scrutinizer
  33. 33. SensioLabs Insight
  34. 34. Парне програмування
  35. 35. Четвертий тиждень ● Консольна команда для пошуку співпадінь ● Events and Event Dispatcher ● Запит контактів автора оголошення ● Форма зворотнього зв’язку ● Завантаження фотографії для оголошень ● Переклади інтерфейсу ● Статистика загублених і знайдених речей в бекенді ● Вивчення Behat та перші тести ● SonataSeoBundle ● Корисні фічі PhpStorm
  36. 36. Scrum
  37. 37. Team Lead
  38. 38. sКРЯm ● короткі спрінти: 3-4 дні для гнучкості ● тікети на команду, в команді тікети розподіляють самостійно ● тім-лід приймає пулл-реквести в свій бранч ● в кінці спрінта - демо ● я приймаю тільки один великий пулл-реквест в develop в кінці спрінта
  39. 39. П’ятий тиждень ● Refactoring ● Кастомізація адмінки ● Покриття тестами існуючого функціоналу ● Верстка ● Повідомлення між користувачами ● SonataMediaBundle ● CSRF tokens ● RESTful API
  40. 40. Story points ● Перший тиждень - 41 ● Другий тиждень - 85 ● Третій тиждень - 63 ● Четвертий тиждень - 84,5 ● П’ятий тиждень - 33,5...
  41. 41. Типові баги, факапи, фейли
  42. 42. Типові баги, факапи, фейли ● закомітили вендори і кеш ● код з однієї фічі попадав в бранч іншої ● не переглядали diff під час коміту, попадав зайвий код ● вперто не видаляли закоментований код ● зламані міграції
  43. 43. Повторне опитування студентів в кінці практики
  44. 44. Біллі 0 1 2 3 4 5 6 7 8 9 10 PHP JavaScript CSS HTML PHP-Framework Symfony2 Doctrine ORM PHP best practice PhpStorm Шаблонізатор TWIG SQL MySQL DB Git, GitHub Workflow Design Patterns TDD, PHPUnit BDD, Behat & Mink Web-Development Workflow
  45. 45. Віллі 0 1 2 3 4 5 6 7 8 9 10 PHP JavaScript CSS HTML PHP-Framework Symfony2 Doctrine ORM PHP best practice PhpStorm Шаблонізатор TWIG SQL MySQL DB Git, GitHub Workflow Design Patterns TDD, PHPUnit BDD, Behat & Mink Web-Development Workflow
  46. 46. Діллі 0 1 2 3 4 5 6 7 8 9 10 PHP JavaScript CSS HTML PHP-Framework Symfony2 Doctrine ORM PHP best practice PhpStorm Шаблонізатор TWIG SQL MySQL DB Git, GitHub Workflow Design Patterns TDD, PHPUnit BDD, Behat & Mink Web-Development Workflow
  47. 47. Статистика RescueTime від Діллі
  48. 48. Бейджики
  49. 49. Біллі ● копіпастер level 2 ● мауглі ● пінг-понгер ● merge-conflict ● вотЕтаПаварот ● йошкін кот level 2 ● feature-inventor level 2 ● renamer… ● селфі-спамер ● sprint #1 done ● sprint #2 done
  50. 50. Віллі ● pair-programming ● копіпастер level 2 ● F.A.Q. (friendly) ● йошкін кот ● sprint #1 done ● sprint #2 done
  51. 51. Діллі ● javascript-slave ● pair-programming ● монетизатор ● Робін ● sКРЯm-master ● Behat-сапер ● sprint #1 done ● sprint #2 done
  52. 52. Чуваки на правильному шляху
  53. 53. Перший отриманий хабар :)
  54. 54. Плани на наступну практику ● Покращення алгоритму пошуку співпадінь ● API ● Покращений пошук ● Кластеризація маркерів при зумі ● Публікація в соціальні мережі ● Рейтинг користувачів, бейджики ● Нотифікація про знайдені поряд речі ● Прив’язування оголошення до події ● Функціонал блогу ● RabbitMQ? ● ElasticSearch? ● MongoDB?
  55. 55. Як я прокачав себе
  56. 56. Як я прокачав себе ● time management ● project management ● оновив свої знання ● вивчив те, що не знав ● на скільки добре я пояснюю матеріал?
  57. 57. Практика закінчилась Тепер я вільний!
  58. 58. А де ж Поночка? :)
  59. 59. А ось вона =) Яна - HR at Stfalcon.com
  60. 60. Happy End To be continued...

×