Как украинец без знаний в программировании создал сервис, который вышел в топ трех рубрик Product Hunt
5 февраля Андрей Азимов, менеджер по продукту компании Railsware, написал на Medium заметку о том, как он научился программировать за 2 месяца и создал сервис When To Surf, который уведомляет пользователей об идеальной погоде для серфинга. Неделей позже Азимов рассказал, что When To Surf вышел на первое место на платформе Product Hunt в рубриках «Спорт», «Погода» и «Серфинг». Редакция AIN.UA приводит адаптированный перевод заметки.
Два месяца назад я начал работу над своим сервисом When To Surf, который рассчитывает для серферов идеальную погоду для катания. Как многие люди в IT, я всегда мечтал создать свой продукт, который люди будут использовать ежедневно. Я хотел создать такой однажды.
Сейчас я живу на Бали и учусь кататься на серфе. Когда я начинал обучение, то с трудом понимал прогноз погоды для серферов — как, например, на сайте Magic Seaweed. Там куча разных показателей: периодичность волн, скорость ветра, его направление и так далее.
Иметь много информации — круто, но что, если большинство людей не могут ее понять? В интернете я нашел 10-страничную инструкцию, как интерпретировать эти данные. Я подумал: что, если я бы мог взять эту информацию и благодаря коду проанализировать ее и рассчитать идеальные условия для серфинга? Я хотел это сделать, но не мог, потому что никогда не программировал всерьез. Также у меня не было денег, чтобы набрать команду. Поэтому я на время сдался.
Спустя несколько месяцев в одном из коворкингов на Бали я встретил разработчика Питера Левелса, который поставил себе цель создать 12 стартапов за 12 месяцев, в результате чего запустил сервис Nomad List (платформа, которая помогает найти лучшие места для жизни и удаленной работы — прим. ред.). Он вдохновил меня сделать свою программу. Вот его основные принципы:
- Решай только свои проблемы.
- Не ходи на встречи предпринимателей, избегай бизнес-тренеров.
- Программируй и ищи решения в интернете — только так можно научиться.
- Делай простые вещи, которые вероятнее всего будут работать (не трать время на крутой но сложный фреймфорк, изучение которого займет год).
С этими принципами я хотел попробовать научиться программировать и создать свой сервис. Я знал, что не стану крутым разработчиком, но был уверен, что смогу воплотить свою идею в жизнь.
Старт проекта
3 декабря я купил домен whentosurf.co за $6. Я нашел бесплатный хостинг и загрузил свою первую HTML-страницу с надписью «Привет, мир!».
Я задумался о том, где бы взять данные и нашел API сервиса World Weather Online. Оно бесплатно первые два месяца и содержит всю информацию, которая мне была нужна. У меня не было опыта в программировании, поэтому я начал пробовать различные языки, которые видел до этого. Сначала я хотел взять данные из API и импортировать их на свою HTML-страницу. Поэтому мне нужен был самый простой язык из всех возможных — без установки серверов, фреймворков и подобных вещей.
Первым делом я попробовал JavaScript, но он оказался для меня слишком сложным. Потом я подумал о Python. Мне нравился его четкий синтаксис, но мне нужно было установить фреймворк Django, настроить для него специальный сервер — и все ради одного скрипта! Поэтому я отказался от этой идеи.
Я остановился на PHP. «PHP — плохой язык, лучше используй Ruby, Node, React или что-то похожее» — я знал, что мне будут говорить подобные вещи, но не обращал на это внимание. Для меня этот способ был самым быстрым, чтобы что-то выучить.
Спустя несколько дней мне удалось импортировать данные на свой сайт. После этого я за ночь создал первую версию сайта.
Спустя некоторое время я вдохновился одним из примеров в интернете и создал новый макет.
В это время все вокруг начали советовать мне использовать Github, но мне не понравилась эта идея. Я просто создал папку для бэкапов и каждый раз скидывал туда обновленные версии сайта.
Бесплатный хостинг работал очень плохо. Поэтому через несколько недель после старта проекта мне понадобился VPS. Я заплатил провайдеру DigitalOcean $5 и с помощью его инструкций и подсказок парня, которого встретил в коворкинге, настроил сервер.
Препятствия продолжались на моем пути. Мне нужно было получать местоположения пользователей, но недавно Chrome запретил это делать сайтам без протокола HTTPS. Поэтому мне пришлось установить сертификат Let’s Encrypt. Это было безумно сложно, но я четко следовал инструкции и все получилось.
Отзывы
В коворкинге я познакомился с Марком (Марк Кельбрюгге, основатель онлайн-каталога стартапов BetaList — прим. ред.), который предложил прикрепить iPad с запущенным приложением вместе с коробкой для отзывов к стене — таким образом я бы мог узнать мнения людей о сервисе. У этой идеи был смысл, так как почти половина посетителей коворкинга занимаются серфингом.
В течение суток всего несколько людей оставили отзыв. Задумка не сработала. Людей не заинтересовало мое приложение. В это же время у меня начал пропадать энтузиазм. Теперь работать над приложением было не так круто. Даже наоборот — в большинстве случаев это было мучительно. Я вышел на основную работу, поэтому теперь был вынужден заниматься сервисом по ночам.
Я показал приложение своему инструктору по серфингу. Ему не понравилась идея, так как на его взгляд «в серфинге есть слишком много неизвестного, чтобы предсказать идеальное время». Я осознал, что до сих пор не решил эту проблему. У меня не хватало информации, к тому же я не был достаточно хорош в программировании, чтобы проанализировать данные и рассчитать идеальное время. Более того, сервис работал только на Бали, и я не мог адаптировать его к другим местам.
Я уже хотел сдаться из-за мысли, что приложением никто не будет пользоваться. Я также не знал, как адаптировать сервис к другим местам для серфинга.
Второй раунд
Я поговорил с друзьями и они посоветовали мне продолжить работу над сервисом. Питер Левелс сказал, что подобные ситуации происходят часто, и именно в такое время «большинство людей сдаются и не запускают приложение из-за страха». Следующие несколько недель я работал очень упорно. Я хотел закончить приложение, даже если б знал, что им никто не будет пользоваться.
Даже если б я вывел формулу для расчета идеального времени, я бы не знал, как ее запрограммировать. Нужно было начать с чего-то другого. Я создал таблицу в Excel и начал экспериментировать с формулами.
Методом проб и ошибок я выразил эти формулами через код:
Я начал давать оценки каждому месту на планете — даже тем, где не было пляжей. И это работало.
На работу над сервисом я потратил около 118 часов (я подсчитал это время через приложение Toggl) и $11. Код доступен на GitHub.
Чему я научился?
- Решайте только свои проблемы. Так лучше, потому что вы действительно переживаете за них. Поиск идеального времени для серфинга был моей навязчивой идеей, благодаря чему мне было легче закончить работу над сервисом.
- Найдите наставников там, где вы хотите работать. В этом случае отлично подходят коворкинги, где люди уже работают над успешными вещами.
- Вы научитесь программированию только когда будете делать это. Не читайте книг, не покупайте курсы, не платите учителям и избегайте бизнес-тренеров. Ищите решения в интернете. Лучшие наставники не возьмут у вас денег, потому что им они не нужны.
- Не бойтесь новых технологий. Меня пугало программирование, API, настройка сервера, HTTPS, но я сделал это.
- Никогда не сдавайтесь. Делайте все, чтобы закончить свой проект.
Ранее, AIN.UA публиковал колонку разработчика о 27 вещах, которые бы он хотел знать перед тем как начать учиться программировать.
Комментарии | 15
ну и в чем смысол статьи?
рассказать о челе который создал никому не нужный кусок говнокода?
покажи свой гавнакод
die;
Его сайт так и не показал можно ли серфить в Киеве 🙂
После фразы «научился программировать за 2 месяца и создал ресурс», дальше не особо было интересно читать статью. Это, на уровне, какой-то желтой прессы. Уважаемые, вас читают, в основном, инженера. Кому вы это парите??
Инженера компании Oracle
Ебать ты рак
На Бали походу катнуть нельзя
https://whentosurf.co/bali
А вообще я не вижу смысла в приложении вообще с точки зрения стартапа. ибо это ведь не стартап. это просто поделка парня для того чтобы научиться «кодить». а для того чтобы это было стартапом нужно смотреть намного намного дальше чем просто сделать страничку в вебе.
А тот же Питер Левелс, не просто левый чувак страдающий всю жизнь хз чем, а толковый маркетолог.
Все понятно.
Позитивная и оптимистичная статья для тех, кто не знает с чего начать своё развитие, и реальный пример, на комментариях к ней, как это бесит тех, кто так ничего и не добился и никогда и никого ничему полезному не научат .
Парень молодец. Но реально ему бы потренироваться еще
Молодец! Иди к цели и все получится.
В Новомосковске сегодня неплохие волны для новичков
Андрей молодец, но рано сдался! Маркетинг запуска и маркетинг продукта — это разные вещи. Мнение узкой групки фанов — тоже не показатель. Отсутствие результата и отрицательный результат, это только указание на то, что неправильно выстроена маркетинговая стратегия, надо немного изменить стратегию и пробовать вновь. Например, Браян Чески (AirBnB) писал, что «если запуск провалился, запускайтесь вновь. Мы запускались 3 раза». Некоторые проекты годами не могут получить поддержки и только спустя 2-3 года, когда рынок уже свыкся с новой реальностью, проект выстреливает.