Расскажу о своем первом опыте хакатона.

Взломать Upstate X

Мой первый опыт хакатона был в октябре 2017 года во время Hack Upstate X в The Tech Garden в Сиракузах, штат Нью-Йорк. В тот момент моей жизни я был выпускником колледжа по специальности физика и химия, активно занимался исследованиями, работал в сфере информационных технологий и проходил свой первый в истории курс алгоритмов на Python. До этого я знал, как редактировать HTML / CSS веб-сайта в основном через контекст. Я потратил немного времени на такие сайты, как Codecademy или бесплатные курсы от The Flatiron School по Javascript. И кодирование, которое я изучал на моих уроках физики, было в лучшем случае псевдокодом Maple, в то время как мой исследовательский опыт программирования был в MCNP6 (структурированный как старая перфокарта, которая не помогает с современными языками). Итак, я знал некоторый синтаксис, но только начинал по-настоящему учиться программировать, а не возился с игрушечными проблемами в Интернете.

Я был далек от эксперта. И я определенно не был готов написать собственный сложный код, скажем, для компьютерной игры.

Но, тем не менее, я сидел в углу Hack Upstate X после церемонии открытия с моей подругой по информационным технологиям Кристин, специализирующейся на компьютерных науках. Никто из нас раньше не был на хакатоне и не был уверен, что вписываемся ни в одно из только что объявленных проектных предложений. Она достаточно хорошо владела разными языками в качестве специалиста по информатике, пока я учился писать простые программы на Python, проверяющие правильность ввода. Поскольку наши наборы навыков не совпадали значимым образом, мы ожидали, что будем работать над программированием домашних заданий или расширять наши предыдущие проекты со стороны. По крайней мере, мы были там, верно? Затем пришли Кай и Энди.

«Ребята, вы ищете команду? Мы все еще выбираем проект, но вы можете присоединиться! »

Это предложение меня поразило не только как интроверта, но и как человека, обладающего сравнительно небольшими знаниями в программировании. Насколько я мог бы внести свой вклад? Мы согласились присоединиться, и нас встретили с распростертыми объятиями.

Выбор проекта

В нашей команде было шесть человек, трое из которых были профессиональными разработчиками, а остальные - студентами колледжей. Двое профессионалов, Кай и Энди, уже были давними друзьями, они вместе соревновались на Hack Upstate несколько лет назад. Майкл, первокурсник Сиракузского университета, только что на церемонии открытия предложил проект одноранговой сети (P2P).

Пришло время выбрать проект.

Проект P2P, конечно, звучал круто. Я услышал об этой идее только когда посмотрел Кремниевую долину на канале HBO. Но это оказалось серьезной технической проблемой, особенно если в планах было написать его на таком языке, как C ++, который не все из нас хорошо знали. Кай подошел.

«Что, если мы попробуем использовать фреймворк Phaser.JS? Мы могли бы сделать многопользовательскую игру, как классическую Atari Asteroids ».

«А для демонстрации люди могут входить в систему со своих телефонов!» вмешался Майкл.

«Привет, Кай, мы могли бы использовать наш старый домен Reoke для его хостинга!» - добавил Энди.

«Я хотел бы изучить управление с помощью акселерометра телефона», Тим был знаком с этой идеей и сразу погрузился в документацию.

Идеи продолжали течь.

«Я могу помочь с дизайном интерфейса!» наконец сказал я, счастливый, что нашел свой кусочек в этой головоломке.

И это был наш проект. Мы назвали себя MMA, сокращенно от «астероидов с множеством игроков».

Командный опыт

Моим новичком было то, что все остальные уже знали, что делают, и сразу же приступили к работе над своим делом. В конце концов, у нас было всего 24 часа, чтобы сделать это, верно?

По мере того, как все рассаживались по своим задачам и рабочим местам, Энди подошел к Кристине и мне.

«Ребята, вы знаете, как использовать Git? Он установлен на ваших машинах? »

Я когда-то играл с Github, но никогда не работал с ним над проектом.

Энди начал работать, помогая мне установить Git, научился делать запросы на вытягивание / push и настраивал репозиторий на моей машине. Так много всего нужно было узнать за такое короткое время! Но я доверился процессу и принялся за работу сам.

Та ночь была веселее, чем я ожидал. В то время как, несомненно, были долгие периоды целенаправленной тяжелой работы, мы также брали паузы, чтобы пообщаться и продемонстрировать нашу игру. Первая конструкция Тима для управления телефоном с акселерометром была вращательной, что оказалось более сложным, чем ожидалось: наши спрайты беспорядочно кружились на игровом экране (очевидно, на это также влияет вращение Земли!). Поэтому мы решили переключиться на наклон влево-вправо.

Тем временем мы с Кристиной возились с HTML / CSS для управления веб-сайтом и мобильных кнопок управления. Как упоминалось ранее, я никогда не изучал HTML или CSS формально до этого хакатона. Так что я углубился в онлайн-документацию, постепенно вытаскивая ее.

Постепенно наша игра складывалась. И у вас будет много свободного времени!

Церемония награждения

Был день второй, и пора перестать взламывать, чтобы мы могли подготовиться к презентациям. Наша игра была завершена! Пока Кристина добавляла наш проект на сайт Hack Assist, можно было увидеть, как Кай и Энди играют в игру с несколькими другими, определившись с деталями презентации и отправившись завтракать за несколько часов до этого.

Когда, наконец, начались презентации, я был поражен работой других хакеров. В конце концов, я все еще был новичком в этом, поэтому увидеть, как эти проекты воплотились в жизнь за один день, казалось немного волшебным.

Некоторые другие памятные проекты включают Earthwise, приложение, которое использует распознавание изображений AI, чтобы определить, пригоден ли объект для вторичной переработки; Go-ceries, еженедельный планировщик списка покупок, реализованный на языке программирования Go; и Strumdog, сайт, который берет существующие вкладки аккордов и преобразует их в текстовые аппликатуры, чтобы помочь новичкам разучивать свои любимые песни.

Наконец подошла наша очередь, и на сцену вышла команда ММА. Три наших профессиональных разработчика - Кай, Энди и Тим - объяснили технические детали инфраструктуры JS.Phaser и дизайна мобильного контроллера, а затем пригласили аудиторию присоединиться.

«Если вы все достанете свои телефоны и зайдете на Reoke.com в своем браузере, мы все сможем играть в игру вживую!»

Люди начали рыться в карманах в поисках телефонов, пока Энди объяснял, как войти в систему. Кай проецировал игровой процесс на проектор, когда десятки спрайтов космических кораблей начали появляться на экране в межгалактическом бою, пока судьи отвечали на их вопросы.

«Мы упоминали, что это наш первый настоящий стресс-тест?»

Игра работала почти идеально, несмотря на то, что в нее вошли более 30 участников. И, как мы обнаружили, он также поддерживает смайлы.

Пока судьи обсуждали победителей, зрители попросили сыграть в нашу игру MMA, продолжая играть в ожидании начала церемонии награждения.

Энди прошептал Каю, сидящему рядом с ним: «Это должно быть хорошим знаком».

Судьи по очереди зачитывают список других призов. И с каждым новым победителем мое сердце немного замирало. Когда они объявляли первого участника, занявшего второе место, Earthwise, я был убежден, что главный приз не может принадлежать нам… Было так много других замечательных проектов. Может, игра была недостаточно креативной?

Было время.

«И главный приз достается… ММА с их игрой об астероидах Phaser.JS!»

«Сколько кода?»: Настоящий ответ

Фактически, профессиональные разработчики написали большую часть проекта, над которым я работал. Несомненно, любой, кто этим зарабатывает на жизнь, сможет реализовать невероятный проект за 24 часа. Но первая команда, занявшая второе место, Earthwise, полностью состояла из старшеклассников!

Правильная идея при скромном опыте программирования может сделать уникальный проект достойным награды. В конце концов, выигрыш не всегда зависит от наличия технически продвинутого кода. Хакатоны также оценивают по таким критериям, как общий вау-фактор и креативность. Прошлые победители подходят под это описание. Убедитесь, что вы проверили критерии оценки для своего следующего хакатона, особенно потому, что могут быть специальные спонсорские призы для уникальных типов проектов. Например, Best DataCuse Hack для использования портала открытых данных Syracuse DataCuse.

Я хочу подчеркнуть, что любой может принять участие в хакатоне.

Нет сомнений, что мне повезло, что меня пригласили в команду, которая в итоге заняла 1-е место во время моего первого хакатона. Но даже если бы мы не выиграли, это был отличный опыт, который, несомненно, помог мне на моем собственном пути к тому, чтобы стать специалистом по данным.

Профессиональные разработчики тратят свое драгоценное время на то, чтобы научить меня устанавливать Git и использовать Github? Или объясните простое правило синтаксиса? Мои товарищи по команде хотели, чтобы я участвовал и учился.

Участие в хакатоне не обязательно должно означать победу. Я пришел, ожидая минимума, чтобы испытать, каково это смотреть хакатон со стороны, пока я всю ночь работаю над домашним заданием, и вышел с чеком на 83,33 доллара (Кай получил лишние 0,02 доллара). Вы могли бы стать следующим!

Взломанная Upstate XII

В эти выходные в районе Сиракуз? Подпишитесь на Hack Upstate XII здесь 6 и 7 октября 2018 г. и ознакомьтесь с Hack Upstate Medium, чтобы узнать больше!

(Эта статья написана независимо от Hack Upstate и The Tech Garden. Мнения и слова, выраженные здесь, принадлежат мне. Фотографии предоставлены и использованы с разрешения фотографа.)