Два месяца назад я начал путь к созданию своего первого веб-приложения. Это очень простенькое веб-приложение, оно называется When To Surf и каждый день подсказывает серферам самое лучшее время для занятий серфингом. Сегодня я его запускаю.

UPD: после запуска я написал статью о результатах



Меня зовут Андрей


Я из Украины, работаю удаленно в Railsware. Как и многие люди в IT-компаниях, я мечтал создать свой собственный продукт. Свое собственное приложение, которым люди пользовались бы ежедневно. Мне очень хотелось когда-нибудь претворить эту мечту в реальность.

Проблема


В данный момент я работаю удаленно, из Бали. И так уж совпало, что Бали — одно из лучших мест для серфинга. Переехав сюда, я стал брать уроки, но, когда начал заниматься сферфингом, столкнулся со сложностью: было очень трудно разобраться в приложениях для серферов типа Magic Seaweed, которые выдают сведения о погоде и прогнозы. Там целая куча разных данных — течение, свеллы, скорость и направление ветра и тому подобное.



Здорово, конечно, когда много информации, но какой в ней смысл, если люди не могут ничего понять? В интернете были целые руководства на 10 страниц о том, как расшифровать все эти данные.

С моей точки зрения, это просто ночной кошмар UX-дизайнера.

А что, если бы я мог собирать необработанные данные о погоде, а затем при помощи особого кода анализировать и оценивать их с точки зрения «серфибилити» (интересно, есть ли вообще такое слово?)

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

Петер Левелс


Через несколько месяцев в Dojo (коллективный офис на Бали), я познакомился с Петером Левелсом. Когда-то он поставил себе цель запустить 12 стартапов за 12 месяцев — и в рамках этого проекта был создан Nomad List. Он вдохновил меня сделать собственное приложение. Я настоятельно рекомендую посмотреть его видео. Вот его принципы:

  • Решайте проблемы, которые волнуют лично вас
  • Перестаньте ходить на сходки стартаперов, избегайте стартап-тренеров
  • Учитесь писать код двумя методами: практика и поиск в Google
  • Забудьте о курсах, тренингах и книгах
  • Делайте простейшие вещи, которые можно осилить с вашим текущим уровнем знаний (т.е. не тратье время на супер-классные новые инструменты, типа React, которые придется осваивать год)
  • Делайте все самостоятельно

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

Старт


3 декабря 2016 г. я купил домен whentosurf.co за 6 долларов на Namecheap. Уже одно это меня взбудоражило.

Я нашел бесплатный хостинг atspace.com и загрузил первую в своей жизни HTML страничку «Hello World».


Затем я задумался о том, где достать данные для приложения. Я погуглил погодные API и нашел World Weather API. Они предоставляют информацию бесплатно первые два месяца, и у них есть все данные, которые были мне нужны: направление ветра, периоды свелла и время прилива.

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

Моя первая цель была проста: брать данные с API и выводить их в HTML. Желательно, чтобы весь процесс был как можно проще и требовал минимума подготовки. Я хотел иметь возможность изменить одну строку кода и тут же протестировать, все ли работает. Все должно было быть элементарно, без установки серверов, фреймворков, компилирования, деплоя — без вот этого всего. Мне нужно было работать быстро, а не вдумчиво писать по одной строчке кода в день, как некоторые большие команды, которые делают все «как надо».

Реализация


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

// Javascript
var getJSON = function(url, callback) {
    var xhr = new XMLHttpRequest();

К черту. Слишком трудно!

Python

Я подумывал насчет Python. Синтаксис у него очень читаемый, но мне бы пришлось установить фреймворк Django, создать для него особый веб-сервер и так далее.
И все это чтобы просто запустить скрипт! Так что Python отпал.

PHP

Я попробовал PHP и сразу понял: вот оно. Я знал, что о нем говорят: «PHP — это не круто, тебе нужен Ruby, Node, React, Bla.JS». Но мне было все равно. Потому что этот язык оказался самым быстрым вариантом для тех, кто начинает с нуля. Серьезно, PHP уже был запущен на моем компьютере (macOS) и установлен на веб-сервер. Никаких дополнительных усилий!

Потребовалось всего несколько минут работы, чтобы сделать первый в жизни API вызов и извлечь данные. Дамы и господа, представляю вам мой первый код!

$url=’http://api.worldweatheronline.com/premium/v1/marine.ashx?key=2a5fc1776e234e14a7e172153160312&q=-8.659263,115.130158&format=json&tide=yes&tp=1&date=;
$json = file_get_contents($url);
$data = json_decode($json);
$swell_period = $data->data->weather[0]->hourly[0]->swellPeriod_secs;

За одну ночь я создал свое первое веб-приложение (на самом деле, сайт):


После нескольких дней работы я вдохновился примерами из Интернета и сделал такой макет:


Я был очень горд собой.

Только не git


Где-то в это же время все наперебой стали советовать мне использовать GitHub и прекратить загрузку через FTP.

Мне не нравится каждый раз делать так с git:

git add, git commit -m “Bla Bla Commment ”, git push origin master

Вместо этого я просто создал папку, а для бэкапов каждый раз делаю новую, прописывая в названии вчерашнюю дату. Так я избегаю git. Но собственная незамысловатая система управления версиями у меня все-таки была.


Создание собственного веб-сервера


Мой бесплатный хостинг никуда не годился. После нескольких недель он перестал нормально работать, и мне предложили завести собственный VPS.

Я испугался: мне вовсе не хотелось заниматься настройкой сервера. Но особого выбора у меня не было, ведь бесплатный хостинг не работал. Поэтому я заплатил DigitalOcean 5 $, проследовал инструкциям, прописанным в их пошаговых рукодствах, и все настроил. Оскар, парень из Швеции, которого я встретил в коллективном офисе на Бали, помогал мне с VPS сервером, когда я заходил в тупик.



Переход на HTTPS


Препятствия не кончались. Мне нужно было получать данные о местоположении пользователя через GPS из браузеров. Для этого я ввел код JavaScript. Но Chrome в последнее время позволяет определять местоположение только на сайтах с сертификатом HTPPS. Так что сначала мне нужно было разобраться, как настраивать Lets Encrypt. Это было безумно сложно, но опять-таки, я просто следовал инструкциям — и все получилось. Теперь мой сайт был переведен на HTTPS.

На полпути


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



Сбор отзывов


Эрик Райз из Lean Startup посоветовал мне наладить обратную связь с пользователями как можно скорее.

Еще один мой знакомый по коллективному офису, Марк, предложил такой способ опрашивать людей: прикрепить планшет, на котором запущено мое приложение, и ящик для отзывов на стену. Это имело смысл, потому что здесь 40% людей — серферы (Dojo находится в двух шагах от пляжа). Мой ящик выглядел так:



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

Темное болото отчаяния




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

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

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

Вдобавок мое приложение работало ТОЛЬКО на Бали. У меня не было возможности предоставлять достоверную информацию для серферов из других локаций. А хотелось, чтобы серферы из любой точки земного шара могли открыть http://whentosurf.co и немедленно получить всю необходимую информацию на текущий день.

Я хотел сдаться – какой смысл делать то, чем никто не будет пользоваться? И как мне получить столько данных, чтобы приложение могло быть полезным людям по всему миру?

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

Но я закапал в глаза капли и продолжил кодить.

Второй раунд


Я поговорил с друзьями и они посоветовали продолжать работу. Петер сказал, что это нормально и «на этом этапе многие бросают все, поддаются страху и не доводят продукт до релиза».

Следующие несколько недель я работал в жестком режиме. Мы ввели систему денежных штрафов, чтобы заставить себя закончить задачи, в моем случае – приложение для серфинга.

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

Наши «ночные смены» начинались с 8 вечера и продолжались до 6 утра. Мы слушали техно и пили чай.

Формула расчета лучшего времени для серфинга


Я хотел узнать, как вычислить лучшее время для серфинга, но не мог сделать это при помощи кода. Значит, мне нужно было начать как-то по-другому. Я составил таблицу и начал экспериментировать с формулами:



Затем путем проб и ошибок я перевел эти формулы в код:



И сработало! Ну, почти


После этой попытки приложение стало выдавать рейтинги для любой локации в мире. Включая места, где вообще нет пляжей для серфинга – например, не знаю, Казахстан. Но не беда, это ведь была первая версия. По крайней мере, теперь все хоть как-то работало:

План запуска


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

Мой план:

  • Самостоятельно отправить приложение на Product Hunt (не хочу быть обязанным своим успехом influencers, хочу, чтобы мой продукт пробился за счет собственных достоинств) — UPD: ТОЛЬКО ЧТО ЗАПУСТИЛ ПРИЛОЖЕНИЕ на Product Hunt.

  • Найти на Facebook и в Сети сообщества по серфингу, поделиться с участниками приложением, спросить, что они об этом думают, и продолжать его дорабатывать.

  • Собирать email-адреса с помощью поля MailChimp в нижней части экрана, чтобы рассылать пользователям обновления, касающиеся серфинга в их регионе (позже, я еще не написал код) и тем самым подталкивать их вернуться на сайт.

  • Если это сработает, конкурировать с крупными игроками вроде Magic Seaweed, предлагая пользователям более простую и подходящую для начинающих серферов схему взаимодействия с приложением.

Временные и денежные расходы


Время

Я подсчитал все потраченное мною время при помощи приложения Toggl. Вышло около 118 часов

Деньги

Доменное имя = 6$ / год
VPS = 5$ / месяц
Итого: 11$

Если бы я попросил какую-нибудь компанию реализовать мое приложение для серферов, уверен, это бы мне стоило на $29,989 больше :)

Использованные инструменты

Я использовал:


Мой код – открытый ресурс


Весь мой код доступен на GitHub. Он супер хардкорный. Никакого MVC, все в одном файле

Чему я научился?


  1. Работайте над своими собственными проблемами. Это лучше всего, потому что до них-то вам точно будет дело. Вычисление лучшего времени для серфинга стало моей навязчивой идеей, и это сделало весь процесс легче (хотя все равно было сложно). Первый ваш пользователь – это вы сами.

  2. Очень помогают хорошие наставники, которые уже вышли на тот уровень, к которому вы стремитесь. В этом отношении полезны коллективные офисы типа Dojo – там вы встретите людей, работающих над интересными и успешными проектами.

  3. Учитесь на практике. Не надо покупать/читать книги. Не надо записываться на курсы. Не надо платить учителям. Просто гуглите и пользуйтесь тем, что уже освоили. А если вам нужны наставники, имейте в виду: лучшие из них консультируют бесплатно, потому что они уже успешны и не нуждаются в ваших деньгах! Также избегайте тренеров по стартапам – это пиявки, которые хотят только высосать из вас последние деньги.

  4. Не бойтесь использовать новые технологии. Я боялся связываться с кодом, потом с API, потом с настройкой серверов, потом с HTTPS. Но я сделал это. А когда попробовал, все оказалось не так страшно.

Действуйте! Не сдавайтесь. Всегда старайтесь закончить свой проект.
Поделиться с друзьями
-->

Комментарии (35)


  1. Magic_B
    17.02.2017 14:17
    +1

    От души улыбнуло )))


  1. maxlazar
    17.02.2017 14:43

    Вышло около 118 часов
    время = деньги. Даже по минимальному тарифу в $10, получится $1180 затрат. К этому можно смело добавлять процентов 20-30 неучтенного времени.

    Если бы я попросил какую-нибудь компанию реализовать мое приложение для серферов, уверен, это бы мне стоило на $29,989 больше :)

    Если в том объеме, что сейчас, то нормальному фрилансеру, это было бы часов так 30 и стоимость максимум в $1000. Максимум. + часов 10 собственного времени на составления нормально тех. плана. В компании можно было был удвоить эту суммы (если конечно компания не Лебедев и Ко)

    Так что это можно рассматривать исключительно как проект на самообучение.

    p.s. да и сервер можно было бы настроить лучше, потратив на это всего часа 2, с авто диплоем из vc, h2 и т.п…


    1. bjornd
      17.02.2017 17:00

      Если в том объеме, что сейчас, то нормальному фрилансеру, это было бы часов так 30 и стоимость максимум в $1000

      Чтобы найти нормального фрилансера нужно попытки 3, а если не повезет, то и больше.


  1. LeiTZ
    17.02.2017 14:46
    +4

    Серфинг это опасное для жизни/здоровья занятие, которое крайне сложно освоить без инструктора, или, по крайней мере, без самостоятельного освоения параметров, отражённых на сайтах типа magicseaweed. По идее, хорошие инструкторы сами должны рассказывать начинающим в какое время им лучше проводить занятия, рассказывать как обращаться со специализированными сайтами, рассказывать как понять водоём, смотря на него, и когда следует заходить в воду, а когда лучше посидеть на берегу и поизучать программирование. И в первую очередь для того, чтобы это было безопасно.

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


  1. LexS007
    17.02.2017 15:02
    +5

    Мне не нравится каждый раз делать так с git:…
    Вместо этого я просто создал папку, а для бэкапов каждый раз делаю новую, прописывая в названии вчерашнюю дату. Так я избегаю git. Но собственная незамысловатая система управления версиями у меня все-таки была.

    Вот же нонконформист. Скорее всего он даже не пытался разобраться для чего git и как работает.


    1. Chikey
      17.02.2017 16:35
      -16

      Зачем нужен гит при разработке в одного?


      1. artifex
        17.02.2017 17:33
        +5

        История изменений, возможность откатиться, залить код на какой-нибудь Гитхаб или Битбакет, вести учёт задач в Issues, сделать простой деплой на сервер… Это то, что сразу приходит в голову.


        1. Chikey
          19.02.2017 22:46

          Это все круто, но зачем мне это для демки в 100-1000 строк кода как у автора?


      1. tema_sun
        17.02.2017 23:06
        +2

        Тут все просто — если вы не понимаете зачем, то вам и не нужно.


        1. Chikey
          19.02.2017 22:44

          Ололо, налетели. Разработка бывает уровня «запилил за вечер демку» — что собственно в этом посте и описано — все это там не нужно.


          1. tema_sun
            19.02.2017 23:35

            Согласен, там не нужно. Но вы же написали «Зачем нужен гит при разработке в одного?», а не «Зачем нужен гит при разработке демки в 100 строк?».


  1. ilyaplot
    17.02.2017 15:16
    +6

    Зашел на сайт, разрешил определение местоположения. Увидел надпись «Small waves today». Для моего города такая информация говорит о наступлении апокалипсиса.


  1. owlycrap
    17.02.2017 15:18

    Я понимаю, что Норильск не лучшее место для серфинга, возможно, даже одно из худших, но все же, предположим, что я упертый и хочу покататься на снегу, но не знаю, хорошая ли там погодка.
    https://whentosurf.co/norilsk
    Но суть-то в чем… Успехов тебе, человек.


    1. KriMs
      18.02.2017 10:12

      На хабре плохая погодка https://whentosurf.co/habr


  1. Alexeyco
    17.02.2017 15:47
    +1

    Стараться закончить свой проект — похвально. Увлечься идеей, которая заставит освоить что-то новое — похвально. Но…

    $data->data->...
    Это не «научился кодить». Это «как я быстро налячкал, чтобы работало». И снова же — это тоже похвально. Но давайте уважать труд программистов, для которых кодинг — это еще и особый вид наслаждения.


    1. DuDDiTs
      17.02.2017 16:41

      Это потому что:


      "Не надо покупать/читать книги. Не надо записываться на курсы. Не надо платить учителям"

      Отчасти он автор конечно прав — практика очень важна. Но теорию подтягивать тоже временами нужно :)


  1. DjoNIK
    17.02.2017 17:00
    +2

    Мне не нравится каждый раз делать так с git:
    git add, git commit -m “Bla Bla Commment ”, git push origin master

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

    В контексте заголовка, кодить-то может и научился… а вот разрабатывать пока нет.


  1. White_Scorpion
    17.02.2017 17:39
    +2

    Меня восхищают такие темы «как я научился кодить, запустил веб-приложение и бла-бла-бла». Особенно если не понятно, что является целью — таки «кодить» или таки «запустить приложение для себя». Восхищают в негативном смысле, поэтому чувства — весьма двойственные:
    С одной стороны — это весьма хорошо, что отдельно взятый человек смог разобраться, написать и запустить что-то, что было нужно ему. Ещё более хорошо, что это даже нашло отклик у кого-то ещё. Совсем круто, когда это считается новомодным словом — стартап! Ибо слово это в тренде и широкоузнаваемо…
    НО(!)
    С другой стороны — результирующая оценка и отношение к такому «кодингу» у меня скорее отрицательные. Ибо это даже не кодинг это, как уже было указано кем-то в комментах — скорее обучение, причём — фрагментарное. По принципу: надо — впихнул, не надо — даже не смотришь и уж тем более не разбираешься — зачем это. Банальный пример мотивации, прослеживаемый в тексте: https был внедрён не потому что он нужен, чтобы сохранить данные закрытыми и не позволять в них шариться кому попало, а… потому что какой-то там сервис отказывался работать без https. Т.е. присутствует явное нарушение причинно-следственной связи. Аргументация типа: «не нравится git» или «весь код в одном файле» — лишь поддерживают это мнение. Человеку это не нужно постоянно, а значит — не буду разбираться, а соответственно и пользоваться/делить файл на логические модули.

    Т.е. если целью было: создать лично для себя инструмент для чтения данных серфинга — то результат более чем успешен. Поздравляю.
    Если же результат планировался: «научиться правильно кодить» и «запускать вебприложения» — то увы.

    P.S. Принципы же Питера Левелса — не выдерживают никакой критики [ИМХО]. Мало того — стартап если и можно так запустить, то сомнительно, что он далеко «улетит». Как минимум потому, что делать для «долгополётного» стартапа всё одному — это из области фантастики.


    1. Ronnie_Gardocki
      18.02.2017 13:36
      +1

      Вы как бы по большей части правы, но тут есть один важный момент — обучаться «как делать правильно» после того как что-то слепил на коленке становится в 100 раз проще и интереснее, когда ты уже увидел результат своими глазами (ибо сам слепил) и теперь понимаешь всю боль, связанную с неумением организовывать код, делать его понятным, поддерживаемым и так далее. Если бы он все делал «как надо» со старта по книгам и так далее, то он бы скорее всего забил через неделю, уснув в очередной раз на какой-нибудь главе заумной фундаментальной книги, недоумевая, как же ему эта информация поможет в создании сайта для серферов.

      Я вот например фундаментальные книги по JS сел читать только через полгода+ клепания всего подряд с jQuery, ибо мне в начале был важен результат (а глаза у меня были горящие) и только лишь со временем я начал понимать, что мне не хватает понимания того, как все это работает без сахара. И читать все эти книги было намного интереснее и проще, четко осознавая суть и предназначение каждой главы, вспоминая реальные примеры из жизни, а не аморфные куски кода.


  1. MartinKiuru
    17.02.2017 20:58

    Любопытно что большинство комментариев в стиле «фу, говнокод!». В то время как пост отнюдь не про красоту кода, а про запуск продукта своими силами при минимальных вложениях. Если хватит сил и упорства растолкать сервис до уровня первых денег — автор наймет специально обученных пхп людей, рассуждающих о говнокод, и они перепишут ему все в более скалируемый и пристойный вид. А автор в это время будет изучать уже другие вещи — управление командой, маркетинг и продвижение, и.т.д. Идти вперед, одним словом.

    Так что удачи на этом нелегком пути! Если есть работающий результат — значит все сделано верно.


    1. maxlazar
      17.02.2017 23:15

      да тут не в коде даже дело. Нам преподносится это как пример, но надо задуматься — а действительно ли это хороший пример.

      «про запуск продукта своими силами при минимальных вложениях»
      А являются ли более чем сотня часов на одностраничный сайт «минимальным вложением»? К этому надо добавить еще время людей, которые вроде как консультировали его.

      Если так смотреть по его архитектуре, то ему вообще php не нужен был. Тут серверная часть нужна была бы, если только для кэширования ответов от погодных серверов. Но я так думаю, он этого даже в своем php коде и не делал. А, у него там еще форма подписки на оповещение на лучшие волны в определенной местности, и когда-то это возможно понадобиться, но сейчас это просто пустышка — он собирает emails на mailchamp даже без локаций людей.

      А так — JS + использование github в качестве хостинга для данной страницы. И время на minimum viable product сужается часов так до 20(из которых 10 часов на выведение формулы). По деньгам — Доменное имя = 6$ / год.


      1. MartinKiuru
        18.02.2017 01:49

        Все верно. Но автор же написал — JS у него не пошел. Так что на мой взгляд, это как раз таки очень показательный положительный пример — именно за счет своей невообразимой корявости. Парень сделал как умел. Если заглянуть внутрь — то топорно и нелепо. Можно было проще и быстрее. Зато оно как-то работает. Его можно показывать, рекламировать, развивать и переписывать.

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


        1. Pakos
          20.02.2017 09:46

          Нет своего, потому как на работе достаточно кода пишется и всяких формул разной степени бредовости придумывается(к сожалению). А вне этого можно, например, строить дом. Но хвастаться перед строителями «смотрите, я научился забивать гвозди, а уровень мне не нужен, потому как его не понимаю» не приходит в голову.
          И да, когда-то были свои проекты и они даже живут сейчас более-менее, что-то делалось в процессе изучения нового языка, потом переделывалось нормально (или чуть более нормально), но тогда было больше сил и времени сидеть за компом.


        1. Andrey_911
          20.02.2017 09:52

          «Парень сделал как умел. Если заглянуть внутрь — то топорно и нелепо. Можно было проще и быстрее. Зато оно как-то работает. „- тоесть этот пост про продукт, который “хоть как-то работает». Очаровательный пример подает автор. Продукт «может быть дойдет до уровня первых денег», зато он уже тяп-ляп работает.


    1. White_Scorpion
      18.02.2017 05:38

      На данные мысли и выводы «о коде» лично меня сподвигает начало заголовка: «Как я научился кодить...». Мало того — это идёт аж первым посылом, но скорее ситуация похожа на — «я узнал как стандартные конструкцие зафигачить, чтобы всё работало и не сильно глючило».

      И заметьте, что по поводу выхода проекта — вопросов нет — народ скорее как раз поздравляет с запуском. Работающий результат хорошо, но ответьте сами себе честно — парень таки «научился кодить», как он сам позиционирует?


      1. MartinKiuru
        18.02.2017 12:14

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


  1. via-site
    17.02.2017 21:21

    «Учитесь на практике. Не надо покупать/читать книги. Не надо записываться на курсы. Не надо платить учителям. Просто гуглите и пользуйтесь тем, что уже освоили.»

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

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

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

    В английском языке нравится определение «strong problem solvers», в русском языке аналог для этого наверное «решалы». По моему мнению, именно это и есть правильное определение настоящего программиста.

    P.S. Программированию нельзя обучить, ему можно только обучиться.


  1. sumanai
    17.02.2017 22:26

    Только не git

    Где-то в это же время все наперебой стали советовать мне использовать GitHub и прекратить загрузку через FTP.

    Мне не нравится каждый раз делать так с git:

    Если взять Mercurial через лучший GUI для систем контроля версий TortoiseHg, то использование систем контроля версий очень даже понравится.


  1. belkamax05
    18.02.2017 06:10

    Не понятно почему «перевод» когда автор статьи Вы же, ну да ладно. Не суть. Я живу на юге Португалии и здесь все сёрферы используют windguru. Не увидел упоминания о нем, возможно не встречали и найдете для себя полезные данные на нем. Удачи с проектом.


  1. Kladproraba
    18.02.2017 06:47

    Круто, мои поздравления :) Я знаком с чувством гордости, когда создаёшь что то сложное в первый раз, потом ещё сложнее задачу решаешь и понимаешь — нет предела совершенству, главное не останавливаться на достигнутом.


  1. Andrey_911
    18.02.2017 06:47

    «Учитесь на практике. Не надо покупать/читать книги. Не надо записываться на курсы. Не надо платить учителям. Просто гуглите и пользуйтесь тем, что уже освоили. А если вам нужны наставники, имейте в виду: лучшие из них консультируют бесплатно, потому что они уже успешны и не нуждаются в ваших деньгах!»- вот уж «молодо-зелено». На практике Возможно учиться только тогда, когда уже Есть определенная Теоретическая база. Книги не покупать и не читать? Автор серьезно думает, что гугл заменит ему все книги? На курсы не записываться? Автор всерьез уверен, что он Сам может Все изучить, без посторонней помощи?


  1. ittakir
    18.02.2017 07:51

    Пусть код написан на пхп в стиле хоп-хоп и в продакшен.
    Пусть сайт работает криво.
    Пусть автор потратил много личного времени.

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

    Что касается обучения не по книгам, а по google. Я согласен с этим утверждением. Иначе, следуя логике некоторых комментирующих, автору нужно было прочитать книги по PHP, JavaScript, по сетевым протоколам, по системам контроля версий, базам данных, взять платные курсы маркетинга и продаж, SEO, и конечно же администрированию Linux.
    Многие так и делают. Но до готового продукта так и не доходит, потому что сил и времени нет — не все книги из списка еще прочитаны.


  1. maxlazar
    18.02.2017 13:29

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

    Как продукт, When To Surf слабый, никакой. Как тут уже упоминали, в нем нет ничего особенного, уникально. По wind/surface forecast можно найти десятки профессиональных приложений (с вполне понятным и удобным интерфейсом). Приложений в основе которых лежат более серьезные алгоритмы и больше данных. У автора — ну что-то покликал в Excel, вроде стало что-то похоже на правду(что-то похоже, т.к. даже в комментах на PH отмечают, что прогноз так себе). Прогноз дается только вот только на сейчас и все.

    В чем же успех на Product Hunt? Во-первых, достаточно узкая ниша где требуется достаточно мало upvotes, что бы выйти в топы. Во-вторых, эти голоса собрал не продукт, нет. Голоса получены за историю, которые вы видите выше. Большинству(а это такие же предприниматели как автор) это история(не продукт) показалась как пример успеха и борьбы(там так и пишут, «ну я не знаю как продукт, но мне понравилась твоя история»). Думаю, им было бы сложно понять, что на самом деле это «много букв», а результат примерно на уровне «история о том как я написал свою первую лабораторную работу в первом триместре, первого курса».


  1. Mirkom63
    18.02.2017 16:43

    У гита есть приложения для создания коммитов. Мне нравится приложение от BitBucket — SourceTree. Там коммит создается в два клика, очень удобно и не сильно отнимает время, зато деплой без фтп упрощаяется в разы)


  1. malente
    19.02.2017 09:09

    В Караганде пишет, хорошие условия для сёрфинга :) Логику надо бы подправить)