В минувшие выходные я впервые участвовал в хакатоне. Когда я впервые услышал об этом, у меня в голове возникла долгая дискуссия, стоит ли мне регистрироваться или нет. Как мы все знаем, синдром самозванца вполне реален, но я полагал, что есть только один способ справиться с ним. Хакатон Hack Your Trip был посвящен использованию семи API-интерфейсов, предоставленных Discover Global Network, для создания инновационных решений для улучшения впечатлений от путешествий. Люди, которые меня знают, знают, что каждый год я стараюсь совершать одну поездку за границу. Путешествие - одно из моих любимых занятий, поэтому эта тема была мне очень интересна.

Перво-наперво, еда и вступление. Мероприятие началось с завтрака и вступительной презентации. У групп была возможность выйти на сцену, чтобы рассказать о своих идеях и набрать новых членов команды. Максимальный размер команды составлял пять человек, и в итоге я присоединился к команде других новых программистов. Двое участников работали полный рабочий день, одновременно изучая программирование. Один окончил учебный лагерь по программированию, а другой - на полпути по программе учебного лагеря по программированию. Все мы участвовали, потому что хотели узнать, что такое хакатоны, а не обязательно выиграть главный приз. У нас было около часа, прежде чем мы смогли приступить к программированию. Мы начали мозговой штурм о том, что можно построить с помощью семи API, поскольку нам нужно было использовать как минимум два из них. Я начал с изучения существующего продукта, который Discover должен был понять, как используются API-интерфейсы и как мы могли бы его улучшить. Мы начали с изучения API залов ожидания и не могли решить, стоит ли сосредоточиться на опыте в аэропорту или на общем впечатлении от путешествия. Прежде чем мы это узнали, было уже время обеда!

Мы наконец определились с функциями подписи, которые будет иметь наше веб-приложение, и нарисовали макеты того, как оно будет выглядеть. У нас было два участника, которые лучше справлялись с серверной частью, в то время как я и еще один участник имели опыт работы с React. У последней участницы не было опыта работы с React, поэтому она работала над дизайном фактического содержимого приложения. По какой-то причине у моего товарища по команде возникли проблемы с установкой приложения Create React. Мы занимались парным программированием и пытались понять, как использовать Postman для работы с данными API. Мы думали, что у нас есть хороший план на игру, но со временем возникло больше вопросов и ошибок. Например, сначала мы планировали, чтобы серверная часть выполняла запрос на выборку для API и сохраняла данные в базе данных. В конце концов, мы решили, что клиентская часть будет вместо этого делать запрос на выборку. По мере того, как часы отсчитывали время, мы оценили свой прогресс и начали сокращать количество функций. Примерно во время обеда член команды начал сомневаться в нашем приложении и его основной цели. Мы поняли, что в нашем приложении больше нет функции подписи.

Мы с товарищем по команде остались там на ночь, чтобы попытаться придумать что-нибудь презентабельное, но усталость и стресс не помогли. У меня даже не было возможности прикоснуться к своей полуночной закуске, так как у меня возникли проблемы с анализом данных ответа от API. Было глупо, как вещи, с которыми вы были знакомы, работали в прошлом, по какой-то причине решили больше не работать. К 1:30 я ничего не добился с ошибкой и решил покончить с этим. Мы получили дорожную подушку в качестве подарка для участия, что было полезно, но стул был неудобным, и я думаю, что обогрев был отключен, поэтому я вообще не мог заснуть. Товарищ по команде, которая работала над контентом приложения, вернулась утром, но вскоре ушла, потому что ей больше нечего было делать, поскольку она не была знакома с React.

В конце концов, у нас было работающее приложение React, которое отображало информацию из API, но без каких-либо функций подписи мы решили, что оно не достойно представления. Всего было 20+ команд. У каждой команды было две минуты на презентацию и одну минуту на вопросы и ответы судей. Некоторые из демонстраций были довольно впечатляющими, и было сенсацией увидеть, как команды включают машинное обучение, дополненную реальность и другие технологии в свои приложения. Я был очень взволнован, когда увидел такие вещи, как эпоха и скорость обучения, поскольку это некоторые из вещей, которые я сейчас изучаю в рамках стипендии PyTorch. Ранее в этом году я одновременно изучал машинное обучение и веб-разработку и пытался найти способ объединить эти два навыка. Поэтому было очень приятно увидеть реальные примеры того, как эти два навыка могут быть применены в реальном мире. Хотя конечный результат для моей команды не был идеальным, мы все согласились, что это был очень хороший опыт обучения. Это позволило мне оценить свой уровень кодирования и то, как я кодирую в условиях нехватки времени (26 часов, если быть точным). Это также дало мне представление об уровне, на котором я хочу быть. Я уверен, что лучшая подготовка перед мероприятием была бы полезной (набирайте товарищей по команде, которых вы уже знаете и с которыми у вас есть синергия, придумайте возможные решения до мероприятия и т. Д.). В конечном итоге моя цель по участию была достигнута, и я был рад, что у меня это получилось. Надеюсь, в следующем году я тоже выиграю этот денежный приз.