Программируешь? Хочешь весело провести время с нами? Мы предлагаем тебе новый coding dojo framework. «Coding dojo» – это формат, в котором все его участники шаг за шагом выполняют одинаковые задания, но с помощью кода, который пишут в процессе игры.
На этот раз мы все закрутили вокруг старого доброго тетриса. Оказалось, что объяснить кремниевому другу, как играть в тетрис не так-то просто – не то, что человеку. Вот в этом и посоревнуемся.
Что такое tetris coding dojo можно узнать тут http://bit.ly/SNwVkp, а тут http://bit.ly/PPXRRN подглядеть, как dojo проходило в одно из прошлых собраний.
21. Что имеем?
Драйв в разработке
Среда для прокачки навыков
Можно экспериментировать с новым
Фидбек будет быстрым
Это весело
Нетворкинг
А нам +1 к треннинговым тулзам
22. Технические особенности
2129 строк кода и 2132 строк тестов
Ничего сверх сложного
Время – около 100 middle*h
Middle справится
24. Мы продолжаем
Уже есть то же, но в «змейку»
Уже есть «automated testing dojo»
Еще пару игрулек в разработке
Мы регулярно собираемся поиграть
И нам это нравится
25. Это все open source
Open source – отдавая получаешь
Хочешь погаматься с друзьями?
Пиши нам на http://codenjoy.com
26. К чему все это?
Найди напарника
Берите идею, которая драйвит
Берите Java и делайте что-то новое
У вас получится!!!
Привет, меня зовут Саша Баглай. И мы вместе со своим напарником Сергеем Зелениным работаем в GlobalLogic. Я помагаю ребятам научиться джаве, а Серега лидит команды и выполняет роль архитектора. И вот мы познакомились и начали вместе чудить с треннингами. Об этом и поговорим сегодня. Но перед тем, немного лирики.
Я этот вопрос часто задаю по долгу службы ребятам, которым в последствии помогаю изучать джаву. Ребята приходят и хотят выучить джаву. А зачем? И плюс минус ответы сходятся к одному…
У нас в стране айти хорошо развивается, в основном, как мне кажется, благодаря заграничным заказчикам. Там идеи, у нас реализация. Инструменты, которыми мы пользуемся, кстати в основном так же не наши: IDE, библиотеки, сама java, книги, документация, google.Недавно покупал себе обувь к осени и на кассе я заметил надпись на коробке - сделано в Украине. Я порадовался этому. И купил, чтобы поддержать нашего производителя. И задумался, а какие Украинские программные продукты я поддерживаю - какими пользуюсь? А в разработке каких из них я сам принимал участие? Ну ладно, работа есть работа.
Не всякую работу интересно работать. Айтишникам повезло – это люди, которые находят фан в таких вещах, которые обычных смертных не привлекают. Но даже с этим свойством часто встречается такая работа, ради которой сутра в субботу никогда не выйдешь в офис. Подними руку и скажи, из за чего ты точно в субботу добровольно не выйдешь на работу? Но оставим вопрос мотивации нашим менеджерам. Больше интересует другой вопрос - а из-за чего хочется выходить в субботу, оставаться после 18:00 в офисе и еще немного пошаманить?
У меня это случается, когдаджаву я использую для своих целей. Раньше это были велосипеды, а с ростом опыта полезные фреймворки для поддержки проектов.Сейчас еще одно модное направление - поработать на стартап. Я думаю, что любой стартап стоит начинать с программирования для души - то, чем реально сам будешь пользоваться и кафйфовать. Украинцем для украинцев. Мы с напарником нашли такое направление на пересечении тренингов и игр. И стали писать на javaдля себя. По выходных, вечерами - но мы получали от этого удовольствие. И хоть это не было быстро, все же результат есть. Спасибо моему напарнику Сергею за это!Мы стали использовать часть из того, чему научились на коммерческих проектах, но теперь для себя, для души.
Кстати о тренингах - мы с Сергеем частенько проводим тренинги и видим, что айтишникам не нравится. Монологи тренера не всегда привлекают так, как хотелось бы. Пусть информация на 100500% ценная, но если спикер не прокачанто мозг отказывается слушать, больше чем 15 минут. А скучающий мозг либо спит либо развлекается (привет троллям), либо разгребает почту.Можно спрятаться за красивыми слайдами, но это даст немного времени. (Кстати про красивые слайды – «Смерть от презентаций» Алексея Каптерева – очень рекомендую)Да и одним монологом тренера навыков у учащихся не прокачаешь. Надо что-то другое. Нужна практика. Но не нудная, а драйвовая. Вооружившись этим вопросом, мы ходили по тренингам к нашим более опытным коллегам, и что мы заметили…
…наиболее запоминаемый и веселый тренинг случается тогда, когда тренер использует игры на тренинге. Простые детские игры. Ребята сразу же включаются в игру, а после тренер просто наводит мостик между игрой и рассматриваевым бизнес кейсом.Игры нужны! Играя мозг не скучает и не критикует.Все любят играться, но айтишники особенно!И вот мы стали искать подходящий для наших тренингов фреймворк.
Одним из таких игровых тренингов был codingdojo,на котором Сергей участвовал. После мы провели его пару раз в своей компании и поняли, это хорошо! Суть codingdojo в том, чтобы решать какую-то задачку, зарабатывать этим баллы, сумма которых светится на экране рядом с очками других игроков. Быстрая обратная связь. Время на решение ограничено. Рядом кодит коллега ту же задачу. Он дишит в затылок, и это стимулирует. Пробуй, экспериментируй и увидишь как это скажется на твоей игре. Это весело. Программисты любят развлекаться. Развлекаться путем написания кода. Мы в этом убедились.
И вот как-то раз Серега мне говорит - «а что если Тетрис взять за основу coding dojo?» Тогда я не сразу увидел картинку, которую он предлагает, а потому сказал "давай попробуйвыкати первый релиз - посмотрим, что получится". На первом демо, мы как дети игрались два часа - раскладывали фигурки программным образом. Время летело незаметно. А это было 7 часов вечера после непростого дня, наполненного митингами.Как оказалось, научить компьютер играть в тетрис довольно интересная задача. Вот мы и увлеклись. Как дети.После были фиксы, переработки, тестовые встречи с нашими близкими друзьями – и в результате получился тетрис кодингдоджо.
Как играть?Все просто. Ведущий запускает сервак. Каждый участник регистрируется. Качает себе клиента. Запускает его в любимой IDE и начинает разбираться в правилах игры.
Регистрируемся и начинаем играть
В клиенте (который правильно называть сервером игрока, ибо это сервлет) Игрок кодит правила укладывания фигурок, а когда сервлет запущен – сервер начинает с ним общаться.
Команд управления всего 4. Подвинуть фигурку влево/вправо, перевернуть или уронить ее. Метод answer должен вернуть список таких операций серверу в ответ на вопрос сервера.
Сервер присылает клиенту состояние стакана и координаты и тип текущей фигурки.
Состояние стакана закодировано в одной строке размером 10*20.
А вот этот скрин красуется на экране проектора, где каждый игрок может посмотреть как играет его коллега за соседним ноутом. Тут он может наблюдать общее количество очков, уровень до которого добрался, сколько линий снял и задачу, которую предстоит решить чтобы добраться до следующего уровня.
А это лидерборд где видны только очки игроков. Вот она обратная связь. Глядя сюда понимаешь, чьи инструменты круче.
Очки начисляются просто.+ за упавшую фигурку и снятые линии- за переполненный стакан. В отличие от реальной игры, game over не наступает – просто стакан обнуляется и игра продолжается с начала.
Обычно мы предлагаем играть ребятам в парах – это придает еще больше драйва
Есть ли вопросы по внутренностям тренинга? На них ответит Сергей.
Что мы имеем сейчас? Среду, в которой ребята могут проверить свои инженерные практики. Попробовать новые штуки, получить быстрый фидбек. Получить удовольствие и понетворкаться.
Я хочу показать сколько кода надо написать, чтобы все получилось именно так. Я не поленился и посчитал общее количество строк кода. Их - 2129 кода. И всего на три строчки больше тестов - 2132. Написано и удалено, конечно же было раза в два больше, но тем не менее - 8000 строк кода и ребята могут получить удовольствие в виде соревнования в тетрис. Технологии тут, стыдно даже сказать, что энтерпрайсные - немного спринга, немного http, сервлеты, jsp, javascript… Проект писался месяца два по пару-тройку часов в неделю.
Есть ли вопросы по внутренностям тренинга? На них ответит Сергей.
Кроме тетриса уже сейчас создано еще два подобных фреймворка, один на основе игры в змейку, а второй для автоматизаторов. На них мы не останавливаем наш кодэнджой (так мы назвали наш тим). Будет еще. В разработке ругие игрушки, над которыми работают наши друзья. Собираем встречи, на которых играемся. Потом снова переходим в режим – покодить. Покодили – собираемся, и пробуем. Кстати, скоро (14 ноября) при поддержки xpdays будет проходить очередное собрание tetris coding dojo.Кто хочет принять участие в этом - велкам к нам.
Как поиграться у себя в команде? Мы думаем, что опенсорс это наше все. А потому мы с напарником решили, что все наши игровые площадки будут открыты. Открывая, ты получаешь больше. Так кажется. Код можно скачать, чтобы сделать это напишите нам.
Но тетрис это не главное – тетрис, как пример.Каждый из нас имеет в туду-загашнике ряд интересных идей, которые почему-то постоянно откладываются.Без напарника дело вряд ли далеко сдвинется, а потому найди себе напарника, единомышленника и давай вместе плить что-то для своего собственного кайфа. А потом собирайте других коллег и делитесь с ними. Толк будет, я уверен.