Ошибки Virgin Hackathoner

В минувшие выходные я имел удовольствие побывать на хакатоне Женщины, которые кодируют в Остине, штат Техас. Это был мой первый хакатон, и это было унизительно. Я нанял двух друзей, Алису, прекрасного UX-дизайнера, и Джо, отличного разработчика.

За эти 36 часов написания кода, проектирования и подготовки нашей презентации произошло много чего. Много плохого, но унизительного. Вот все, что я узнал.

Я был неподготовлен

Конкурентное программирование плохо переносится с трудом в разработке. Большую часть моего опыта в любом соревновательном виде программирования я получил в соревновательном программировании, где у меня есть x часов, чтобы решить y проблемы. Давление, которое я испытал на хакатоне, сильно отличалось от этого. Чтобы выяснить, какой технологический стек мы хотим использовать, как быстро создавать макеты данных, какие модели были, все было слишком сложно. То, что мы раньше делали с комфортом, стало напряженным и трудным.

Я не был реалистом

Я занимался бэкэндом для нашего приложения. В первый день я потратил 4-6 часов на написание GraphQL API, подключенного к серверу Prisma и размещенного на Heroku. Излишне говорить, что я потерпел неудачу. 4 часа, 31 предупреждение, 3 фатальных ошибки компиляции. Позже я понял, что наш бэкэнд еще далек от завершения, и время на исходе. Так что я все выбросил, написал наши модели и бросил на Firebase.

Я был амбициозен

Не знаю, что пришло мне в голову, но я подумал, что мы могли бы написать приложение на Swift. Я никогда раньше не писал Swift. Я инженер полного цикла с опытом работы с Java и C ++. Я никогда не касался мобильной разработки, но решил, что хочу писать на языке, которого никогда раньше не касался. Мое высокомерие стоило нам часов разработки, пока мы исследовали основную документацию.

Я не понимал MVP

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

UX-дизайнеры чертовски невероятны

Я помню, как молча смотрел, как Алиса за считанные минуты создавала великолепный макет за макетом, в то время как я в течение часа выдергивал волосы из-за проблемы с развертыванием. Я твердо уверен, что если бы мы использовали MERN или Django, мы смогли бы воплотить в жизнь некоторые из ее проектов.

Извини, Алиса.

Это нормально потерпеть неудачу

Я был опустошен тем, что не смог представить даже рабочую демонстрацию. Но когда я наблюдал, как люди представляют свои проекты и то, над чем они работают, я понял, что не только мы потерпели неудачу. У большинства людей не было рабочей демонстрации, а у тех, у кого она была, были реализованы только базовые функции. Но люди все еще веселились и страдали от кофеиновых сбоев.

Хакатоны - это больше, чем одномерное соревнование. Это место, где разработчики могут отдохнуть, повеселиться, познакомиться с новыми людьми, что-то вместе «взломать» и продемонстрировать это. Это объединение в сообщество энтузиастов программирования, студентов и работающих профессионалов.

В заключение

Это был замечательный опыт обучения. Я много узнал о том, как я, как разработчик, занимаюсь архитектурой проблем и проектированием моделей. Я узнал о Swift и мобильном дизайне гораздо больше, чем хотел. Больше всего я узнал, что у Алисы есть стальная спина, чтобы нести меня и Джо.