Хакатон: место, где идеи рождаются, планируются и создаются в течение от 18 до 36 часов. Мало спит, много кофеина потребляет, а удивительные идеи воплощаются в жизнь. Чтобы спланировать такое мероприятие, требуется многое: нужно обеспечить пространство, достаточно большое, чтобы вместить сотни хакеров, мероприятия должны быть спланированы так, чтобы люди не проводили часы, глядя на экраны своих компьютеров, достаточно еды. чтобы прокормить маленькую армию, нужно заказывать, заключать контракты со спонсорами, и так далее. Однако одна из самых заманчивых вещей в таком мероприятии (по крайней мере, для меня) — это веб-сайт.

В культуре хакатонов наличие хорошего веб-сайта — это все; это первое, что увидят потенциальные участники (и давайте не будем забывать о спонсорах), когда захотят узнать больше о вашем мероприятии. У некоторых из наиболее хорошо организованных хакатонов есть красивые веб-сайты, красноречиво составленные большими командами в отделе компьютерных наук каждой соответствующей школы. В моем случае 3 человека поставили перед собой задачу создать полнофункциональный веб-сайт с системой регистрации за 3 недели — можно сказать, это был своего рода хакатон. Всегда ли давление создает бриллианты? Ну, не совсем. Я обнаружил, что в правильных условиях ограничения по времени, а также ограничения по размеру команды могут создать некоторые из ваших лучших работ. В других случаях это вызывает целый ряд проблем. Вот что я узнал.

1. Используйте фреймворк — или нет

Создавал ли я веб-приложение без кода, работающего на сервере, и ожидал, что оно будет обрабатывать более 1500 различных приложений хакатона? да. Рекомендую ли я это? Не совсем, если только вы не знаете, что можете это осуществить. Использование таких сервисов, как Firebase, в качестве серверной части в теории кажется замечательным — вы получаете базу данных, подобную NoSQL (которую я лично люблю), простое создание учетной записи, отличную аналитику и почти постоянное время безотказной работы — но это может стать серьезной головной болью, если вы этого не сделаете. Не писать код, который одновременно расширяемый и хорошо организованный. Мой не был ни тем, ни другим. Фактор нехватки времени и отсутствия помощи, возможно; но я позволил себе убедиться, что могу использовать Firebase с нулевым бэкенд-кодом и что ничего не пойдет не так. В конечном счете, хотя в большинстве случаев это действительно работало, у нас было слишком много приложений, которые провалились (по неизвестным причинам), и слишком много людей, которые в результате так и не получили обновления о статусе своих приложений. Если вы настаиваете на том, чтобы пойти по этому пути, рассмотрите возможность использования Typeform или другого сервиса, созданного для регистрации людей на мероприятия. Мой совет любой команде веб-разработчиков, которые собираются участвовать в хакатоне, — использовать полный стек и разместить свой веб-сайт на собственном сервере.

2. Планируйте, и планируйте хорошо

При создании веб-сайта для такого мероприятия, как хакатон, необходимо соблюдать баланс между внешним видом и функциональностью. Как команда разработчиков, вы должны заранее решить, сколько времени вы действительно хотите потратить на то, чтобы ваш веб-сайт выглядел красиво, а сколько времени вы хотите потратить на то, чтобы он обрабатывал всевозможные варианты использования. В конечном счете, все сводится к хорошему UX-дизайну: сделайте навигацию по сайту удобной, чтобы был естественный переход от одного элемента к другому. Это звучит как здравый смысл, но это на удивление сложно сделать, если у вас нет нужного опыта. Имея больше опыта в программировании серверной части, мне было несколько сложно перейти на более ориентированную на дизайнера роль, и, в ретроспективе, в результате пострадал сайт. Была массовая путаница, когда мы добавили систему входа в систему после того, как были выпущены первые приемки, хотя у нас должна была быть такая система с самого начала. Есть еще несколько примеров, но все они подчеркивают важный момент в веб-разработке (а иногда и в жизни): важно знать конечную цель до того, как вы начнете. Не экономьте на деталях; они имеют все значение.

3. День технологий так же важен

Любой, кто участвовал в хакатоне, знает, что регистрация — одна из самых беспокойных сцен, которые вы испытаете на протяжении всего мероприятия; сотни людей несут все свои вещи, не зная, что делать и куда идти. Здесь важна логистика, и наличие хорошей системы регистрации может дать вам несколько вещей: она позволяет быстрее регистрироваться, дает вам быструю и точную статистику о посещаемости и сводит к минимуму скопление людей и путаницу. В нашем случае мы создали мобильное приложение, которое присваивало каждому хакеру QR-код и позволяло сканировать всех, а также иметь доступ ко всей их информации. Мы были очень взволнованы этим, и теоретически это должно было работать безупречно; однако мы не осознавали, что бесплатный план Firebase допускает только 100 открытых соединений одновременно (1 пользователь, вошедший в систему, = 1 открытое соединение). В результате мы быстро перешли от гладкого плавания к живому кошмару; люди столпились вокруг нас, спрашивая, почему они не могут зарегистрироваться через приложение. Как только мы смогли обновить наш план, все вернулось на круги своя, но наличие хорошего технического плана необходимо для успеха хакактона.

4. Используйте чужие вещи

Сообщество открытого исходного кода огромно; люди создают всевозможные удивительные вещи и делают их доступными для общественности. Это одна из вещей, которые двигают хакерскую культуру вперед, так что воспользуйтесь этим! Например, вместо того, чтобы строить менторскую систему (другими словами, способ, которым хакеры могли бы найти помощь в своих проектах, не блуждая бесцельно по площадке), мы решили использовать HELPq, который был создан для HackMIT. Для оценки мы решили использовать Gavel, который также был создан для HackMIT (начинаете видеть здесь закономерность?). Вместо того, чтобы заново изобретать велосипед и пытаться делать все своими силами (что почти всегда оказывается кошмаром), избавьте себя от стресса и воспользуйтесь некоторыми удивительными вещами, которые люди сделали для хакатонов по всему миру.

5. Отдайте себе должное

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