Первый платный скрипт я написал для владельца небольшого интернет-магазина запчастей. Он сказал: «Мне нужно, чтобы заказ из формы сразу попадал в мою таблицу, а я перестану ночами копировать из почты». Звучало просто. Я оценил в два вечера, взял предоплату и почувствовал себя настоящим разработчиком — хотя до этого только ломал свои учебные проекты.
Я не спросил, в какой именно таблице он ведёт учёт, какие столбцы обязательны и что делать, если покупатель ошибся в телефоне. Я услышал «таблица» и представил одну общую картинку. На деле у него было три листа: новые, в работе, отправленные. Скрипт писал всё на первый лист. В понедельник он позвонил не злой — растерянный: «У меня каша, половина заказов потерялась визуально». Потерялись не данные, а порядок, но для него это одно и то же. Я исправил бесплатно и записал в блокнот: сначала смотреть их файл, потом писать код.
В пятницу вечером скрипт перестал работать. Я узнал об этом из сообщения в мессенджере с тремя восклицательными знаками. Оказалось, хостинг поменял версию языка, а я не читал письмо на общую почту — там было предупреждение за две недели. Я паниковал, включил показ ошибок на сервере, увидел белый экран и пустоту в журнале. Потом нашёл, что модуль для работы с таблицами отключили. До понедельника я поднял запасную копию старой версии, переписал отправку на другой способ, оставил себе напоминание проверять рассылку хостинга раз в месяц. Клиент в итоге сказал: «Ну бывает, главное — вы не пропали». Эта фраза для меня дороже любой похвалы в чате.
Деньги я потратил почти сразу — на мышь и на оплату домена, чтобы «выглядеть серьёзнее». Серьёзнее не стал, зато появился страх подвести человека, который доверил мне продажи. После этого я всегда делаю резервную копию перед правкой, даже если «там одна строчка». И всегда оставляю заказчику короткую инструкцию: что нажать, если снова пусто, и куда написать мне.
Что я вынес из того заказа
Первый скрипт научил не синтаксису — он у меня и так кое-как работал. Он научил договорённостям. Теперь я в начале спрашиваю: где смотреть результат, кто будет пользоваться, что считается ошибкой, нужен ли тестовый прогон на копии данных. Я показываю черновик на трёх фиктивных заказах, прежде чем включать на живом сайте. И я больше не обещаю «к вечеру», пока не открыл доступ и не увидел, как устроен их сервер.
Ещё я понял, что заказчик не обязан знать слова вроде «скрипт» или «модуль». Он знает «заказ», «остаток», «накладная». Если я говорю только техническим языком, он кивает, а потом ждёт другого. Я стал рисовать на бумаге стрелки: сайт → письмо → таблица. Рисунок снимает половину недопонимания.
Иногда меня спрашивают, жалею ли, что первый проект был таким стрессовым. Нет. Если бы он прошёл идеально, я бы полез в второй с тем же самоуверением и накосячил крупнее. Пятница с поломкой стала для меня ритуалом осторожности: не выкладывать изменения в конце недели без крайней нужды, иметь план отката, предупреждать клиента, что трогаем рабочую схему. Первый скрипт за деньги — это не про код. Это про то, что чужие продажи теперь зависят от твоей внимательности. Я этому учился на ошибках, а не на курсе. И каждому, кто просит «написать маленький скрипт», я мысленно благодарен тому владельцу запчастей: он мог бы орать, а он дал мне второй шанс и целую карьеру в автоматизации.
Я до сих пор храню тот первый договор — одна страница в мессенджере без печати. Там нет слов про резервные копии и тестовый прогон. Сейчас я отправляю короткое дополнение: что входит, что не входит, как быстро отвечаю в рабочее время. Это занимает пятнадцать минут и отсекает половину недопонимания. Первый скрипт научил меня не стесняться этих пятнадцати минут — они дешевле бесплатной переделки в воскресенье.
Ещё я понял разницу между «работает у меня на компьютере» и «работает на их хостинге». Дома у меня была свежая версия языка, у них — на год старше. Теперь перед сдачей я прошу доступ к копии сайта или хотя бы к тем же настройкам. Первый клиент не обязан был знать эту разницу — обязан был знать я. Теперь знаю. И когда новички спрашивают «с чего начать зарабатывать», я говорю: начните с ответственности за чужой понедельник утром, а не с поиска идеального языка.