[ВКонтакте API, Хакатоны] Хакатоны и чемпионаты по программированию: how to win

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
14-Дек-2020 17:36


Источник: https://vk.com/vkteam?w=wall-147415323_7075&z=p...132289Чемпионаты по программированию — это прекрасная возможность получить практический опыт, деньги и работу. Рассказывая про свой опыт победы и формат VK Cup, я поделюсь советами по процессу решения практической части, проработке идей и реализации продукта, а также по тому, как блистать на сцене. Это будет полезно и вне рамок соревнований.ПредисловиеЯ узнал про VK Cup из одной из множества рассылок, которые регулярно приходят мне и вам на почтовый ящик. Участвовать решил из-за имени и даже не представлял, что это может во что-то вылиться.Отбор на данное соревнование простейший: требовалось решить тест на проверку теории по языку и ОС (в моем случае — Android). Вопросы простые, ответы можно найти по первому запросу в гугл, поэтому при отборе не должно возникнуть сложностей. Полагаю, данный этап помогает отсеять тех, кто не собирается всерьез браться за решение: из тысячи подавших заявку только 256 прошли в следующий этап.Далее речь пойдет про основные этапы соревнования: практическую и продуктовую части. Данные этапы можно встретить и на других соревнованиях, например здесь, здесь и здесь, а продуктовый этап есть во всех хакатонах без исключений. Если вы собрались участвовать в подобных соревнованиях или думайте об этом, эта статья для вас.Практическая часть соревнований: решение задач
Задания трека Mobile. Источник: https://codeforces.com/contest/1309Об этапе: Практическая часть представляет собой решение 7 больших задач за 2 недели. Самое главное на этом этапе — набрать как можно большее количество баллов. 2 недели — очень маленький срок, потому что требуется не только сверстать экраны, но и соблюсти ряд бизнес-требований с использованием VK API. Тактики здесь две: делать упор на количество и решить как можно больше задач или на качество, стараясь совершенствовать техническую сторону.Рассмотрим самую простую задачу — отображение документов из VK. Требования и макеты для нее представлены на скриншотах ниже.
Требования первого задания. Источник: https://codeforces.com/contest/1309/problem/A
Макет первого задания. Источник: https://www.sketch.com/s/4WWb3Помимо реализации базовой функциональности, приложение можно докручивать бесконечно:
  • совершенствовать архитектуру;
  • добавлять кеш;
  • реализовать постраничную загрузку данных и их preloading;
  • реализовать просмотр всех типов документов напрямую в приложении;
  • …и много другое.
И это всего лишь самое простое приложение! В заданиях есть приложения с камерой, картой, большим количеством экранов и сложной бизнес-логикой, за качеством которых не угнаться за 2 недели. Поэтому я решил выбрать количественную тактику.Совет #1: Чтобы преуспеть при прохождении данного этапа, важно не держать все голове и где-то хранить идеи и процесс выполнения. Вот так выглядела моя итоговая Kanban-доска, которая даже не поместилась в скриншот:
Совет #2: Если вы считаете, что какая-то задача вам не по силам, не приступайте к ней. Лучше уделите больше времени тому, с чем вы можете справиться, так вы получите больше баллов. Для меня непосильной задачей была реализация функциональности а-ля Instagram-stories, только взгляните на один из экранов:
Макет задания “Camera App”. Источник: https://www.sketch.com/s/V889AПо итогам раунда в финал попало 40 мобильных разработчиков из 256, моя тактика не подвела:)Продуктовая часть соревнований
Выступление. Источник: https://vk.com/vkteam?w=wall-147415323_7528Об этапе: На выполнение последнего этапа давалась неделя: требовалось на основе уже реализованных экранов собрать полноценный продукт. Экраны можно было дополнять как угодно и менять под свои нужды, использовать часть экранов или все сразу.Совет #3: На этапе представления продукта самое главное — ваша идея! Больше всего это касается хакатонов. Ваш продукт должен решать какую-то проблему, приносить пользу, удовлетворять чьи-то потребности, иначе в вашем продукте нет смысла и он ни за что не выиграет. На подобных соревнованиях от вас не требуют конечной реализации: сделайте MVP и попытайтесь чем-то удивить. Не думайте над архитектурой и качеством кода. Но не переборщите: организаторы все же смотрели на код, но по моим ощущениям это была скорее “проверка на адекватность”.Совет #4: Чтобы придумать идею, я использовал метод мозгового штурма: накидывал все возможные варианты развития разработанных экранов, их пользы и возможной монетизации, советовался с коллегами и друзьями, а в конце сортировал по простоте реализации и тому, насколько действительно может выстрелить данная идея. Чтобы сгенерировать максимально возможное количество идей, вывел все свои экраны в одно место, это помогло ничего не упустить. На скриншоте ниже представлено, как это было.
В конце концов я решил переиспользовать экраны документов и альбомов и сделать “Облако ВКонтакте” — расширить экосистему облачным хранилищем. Почему я посчитал, что эта идея может выстрелить, смотрите в моем выступлении.После определения темы я начал накидывать дизайн, получилось примерно так (да, дизайнер из меня так себе):
Сама реализация получилась следующей:
Здесь важно понимать, что некоторые вещи у меня не работают (все кнопки на экране профиля некликабельные), а социальные возможности и развитие документов были представлены как концепты, но победе это не помешало (смотри совет #3).Совет #5: Как впечатлить жюри. Сделайте логотип! Логотип придаст вашему продукту элемент завершенности. Если дизайнер из вас так себе (вспомните мой прототип), попросите знакомых. Я обратился к своему коллеге-дизайнеру. Результат на скриншоте ниже. Дизайнеры VK были в восторге, это определенно сыграло мне на руку.
ВыступлениеНа эту тему есть уже много статей и рекомендаций. Пожалуй, больше всего мне помогла серия видео про мастерство презентаций. Для себя я четко определил следующее:Совет #6: Составьте текст выступления заранее. Если вы можете без этого — вам повезло, я по-другому не могу. Это сильно помогло мне не волноваться.Совет #7: Отрепетируйте выступление! Желательно с теми, кто может покритиковать вас и задать хорошие вопросы. С любимой бабушкой лучше не репетировать.Во что вылилась победаПосле победы можете ожидать получения шестизначной суммы на банковский счет и не сомневаться в получении письма счастья от HR-менеджера со стороны организаторов.Также, когда последний этап еще не начался, работодателей приманивал сам факт выхода в финал такого чемпионата.Помогает ли полученный опыт в работе? Ну, скорее да, чем нет. В ситуации большой неопределенности и ограниченности сроков начинаешь отдавать приоритет тому, в чем видишь бо́льшую ценность для бизнеса.Совет #8: Укажите опыт участия в подобных чемпионатах в своем резюме.Краткие итоги
  • Чемпионаты, хакатоны и соревнования по программированию — это прекрасная возможность для получения:
    • опыта выполнения заданий в сжатые сроки;
    • денег;
    • работы.
  • При выполнении практических задач:
    • самое главное — корректное решение задач и набор наибольшего количества баллов;
    • не пытайтесь держать все идеи и прогресс в голове, используйте Kanban-доски.
  • При работе над непосредственным продуктом:
    • самое главное — идея;
    • используйте мозговой штурм для генерации идей, спросите своих коллег/семью/друзей о том, что им не хватает, какие у них боли при использовании продукта, который вам надо улучшить.
  • До выступления:
    • заранее составьте текст (если можете без этого — отлично);
    • отрепетируйте с теми, кто может дать совет по выступлению, задать вам вопросы и покритиковать.
  • Чтобы впечатлить жюри, сделайте логотип для продукта.
Ссылки
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_vkontakte_api (ВКонтакте API), #_hakatony (Хакатоны), #_chempionaty (чемпионаты), #_hakatony (хакатоны), #_sorevnovanija (соревнования), #_poisk_raboty (поиск работы), #_pobeda (победа), #_vkontakte_api (
ВКонтакте API
)
, #_hakatony (
Хакатоны
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 03:50
Часовой пояс: UTC + 5