В прошлый раз в этом блоге я писал про свой DreamTeam в составе Алишера и Диаса.
Во второй раз, летом на стажировке methodpro я работал в команде из 4 человек: Альфия Малакшинова, Райымбек Дурбенов и Дэннис Алтаев.
В этот раз я собираюсь опять писать про работу в команде вместе с Бекнаром и Нуртасом.
11 cентября. Понедельник. Университет. Кантин. Я сижу с Бекнаром и пью чай.
Бекнар: “Ты слышал? В СДУ собираются хакатон делать.”
Я обрадовался новости Бекнара. Ровно год назад в СДУ был хакатон и я тогда не взял место. За этот год я немного набрал опыта в кодинге и хотел бы показать себя на деле еще раз.
Жунисали: “Серьезно? Круто!”
Бекнар: “Если что, давай в одной команде работать”.
Жунисали: “Давай.”
Организатором хакатона является Technopark SDU. Спонсором выступила компания “Kazakhstan Discount Center” (Создатели приложения Senim). Призовой фонд 6 миллионов тенге. Выигрывают только 5 команд. В команде должно быть 3 человека. Вознаграждение выдается в виде ежемесячной стипендии всем победителям до конца учебного года (май 2018 год). То есть 15 человекам будут выдавать по 50К, по условии если победители будут делать проекты для компании-спонсора до конца учебного года.
Senim - это приложение для получения скидок с покупок. Также с помощью Senim можно заказать еду.
Третьим в команду взяли Нуртаса. Бекнар и Нуртас учатся в одной группе, оба мобильные разработчики. Этим летом в рамках nFactorial Incubator ‘17 они разработали Zheti soz – приложение, помогающее изучать английский язык для казахоязычной аудитории.
По развешенным объявлениям в универе мы узнали, что открытие хакатона намечается на вторник 19 сентября.
День 1. 19 сентября. Вторник. Red Hall SDU. Открытие хакатона.
Даулет Ермеков, генеральный директор “Kazakhstan Discount Center” рассказал о 5 задачах хакатона.
Задача 1. Автоматическое заполнение полей для аутентификации или регистрации с помощью распознавания текста с изображения..
Задача 2. Поиск продавцов Senim посредством камеры телефона в режиме реального времени.
Задача 3. Свободная тема. Разработка любого решения для сферы FinTech.
Задача 4. Определить различные группы пользователей Senim.
Задача 5. Telegram bot Senim.
Хакатон будет длиться десять дней. 29 сентября презентация проектов.
Выходим из Ред Холла, садимся в кантине и делаем регистрацию команды. Назвали команду “Антихайп”. Выбрали 3 задачи: первую, вторую и пятую. Нам показалось что все задачи easy. Мы никогда так сильно не ошибались :D
После регистрации мы разбежались по урокам. На переменах я разработал прототип бота и после окончания пар я побежал к пацанам, чтобы показать прототип. Бекнару не понравилось. Говорит, что юзабилити плохое. У него была идея получше.
Мы посмотрели и у него действительно лучше. Всё дело в том, что он вставил кнопки. Клавиши создают удобство для юзера, а у меня в прототипе не было кнопок. Таким образом, мы решили работать по наброскам Бекнара. Он создал бота с username: @atyjok_bot. Это специально он так назвал, чтобы конкурентам не палить :)
По боту нам нужно было решить следующие технические задачи:
-
Выбрать категорию и присылать ближайшие 10 точек по данной категории. Приветствуется использование алгоритма нахождения короткого пути при помощи Яндекс/Google карт.
-
Задать вопрос в службу поддержки. Данный вопрос автоматически должен отправиться на другой номер телефона, у которого есть телеграмм. Другой номер телефона может отправлять ответ на заданные вопросы.
-
Вывод информации о сервисе Senim.kz.
Тем временем Нуртас занимался первой задачей. Автоматическое заполнение полей с помощью распознавания текста с изображения.
Во время хакатона мы работали по принципу Pair Programming (парное программирование). Pair Programming - это вид работы, когда два программиста сидят за одним компьютером. Один пишет код (ведущий), а другой подсказывает (наблюдатель). Время от времени они меняются ролями, обычно, каждые полчаса. Это мощная техника в работе по двум причинам.
-
Программисты в паре чаще «делают то, что нужно» и реже устраивают длинные перерывы.
-
Партнеры в паре менее склонны к неудачным решениям и производят более качественный код.
Часто члены команды предпочитают работать отдельно. Сидя на разных столах или даже в разных кабинетах. Мне этот подход не нравится, потому что нету обратной связи.
Мы приучили себя к дисциплине. Каждый день после пар приходить в кантин на третьем этаже и делать Телеграм бота. Работать до 8 вечера и уходить домой. Пацаны как и я оказались трудоголиками. Любят показывать результат. Бекнар не поднимался со стула пока не поймет, что сегодня сделал достаточно работы.
День 3. 21 сентября. Четверг. В интернете мы нашли алгоритм Евклида по нахождению ближайших точек. Мы вставили его в наш проект и он успешно заработал.
Нуртас заболел и сказал, что первую задачу тяжело сделать. Мы забили на первую задачу и все внимание бросили на бота.
День 4. 22 сентября. Пятница. Мы добавили эмоджи к боту. В итоге у нас получились яркая и приятная клавиатура с эмоджи.
День 5. 23 сентября. Суббота. Добавили ссылки на скачивание мобильного приложения и кнопку “Главная”.
В воскресенье мы отдыхали, а я забрался с родными в горы, собирать яблоки.
День 8. 26 cентября. Вторник. Мы развернули бота на бесплатном хостинге и забыли его выключить. В итоге бот стоял включенным до обеда среды.
День 9. 27 cентября. Среда. Нуртас заметил, что бот работает и сообщил нам. Я быстро отключил бота. Мы расстроились тем, что конкуренты могли скопировать все фичи нашего бота.
Близится дедлайн, а я с пацанами уже как 10 дней работаю. Если до хакатона мы друг к другу относились как к аристократу и разговаривали спокойно, элегантно, без матов, потому что плохо знали друг друга, то в последние дни хакатона мы обращались друг к другу уже без церемоний и часто шутили. Это говорит о том, что мы хорошо сблизились.
День 10. 28 сентября. Четверг. Завтра конец хакатона. Надо готовить презентацию. Презентацию мы готовили в стиле “по-пидорски”. “По-пидорски” - означает добавление элементов минимализма и простоты. Эффект белого и черного цвета. Как в презентации iPhone X.
День 11. 29 сентября. Пятница. Конец хакатона.
Собралось 16 команд. Отберут лишь 5 победителей.
Наша презентация прошла отлично. По атмосфере в комнате было видно что мы и наш продукт понравился жюри. Только мы упустили одну большую ошибку в презентации. Не надо было ставить юзернейм бота в начале презентации, а то жюри взяла свои телефоны и начала просматривать бота вместо того, чтобы слушать меня. И мне пришлось часто обращать внимание жюри на слайды.
На презентации члены жюри задавали много вопросов про наши скиллы. Мы там, можно сказать, продавали себя. Думаю наши скиллы имели большое значение в определении победителей.
Во время оглашения результатов мы очень волновались. Боялись, что все, что мы делали за эти 11 дней может пойти впустую.
Ректор награждает победителей. Счет пошел.
Первая команда ...
Вторая команда ...
Третья команда ...
Ректор: “Сертификат победителя присуждается команде “Антихайп”.
“Ееееееее” - c такими звуками мы шли взять руку ректора и Даулета Ермекова. Мы ликовали. Непередаваемые ощущения. Конечно приятно, когда твой труд хорошо оценивается другими.
Не знаю почему у нас получилось. По-моему, мы все имели желание показать результат. Также играла роль дисциплины: работать каждый день после уроков по 2 часа. Кроме того, у нас происходил постоянный обмен мыслей и идей для бота благодаря тому, что мы сидели за одним столом и ноутбуком. Мы хорошо смогли работать в одной команде. Например, для того чтобы исправить код, Бекнару надо было найти решение в интернете. Я вижу, что это может занять время, и делаю поиски в гугле вместо него, а тем временем Бекнар занимался делами поважнее. Как только решение найдено, я говорю ему решение и он быстро чинит код. Вот такая вот была слаженная работа. Жiгiттер, Бекнар и Нуртас, горжусь вами.
Читайте меня в Фейсбуке
Подпишитесь на меня и в Твиттере: @zhunisali