К книге
Вместо способностиГлава 1
4%
Глава 1
1

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

— Ну конечно…

Он сохранил файл и нажал запуск.

Несколько секунд ничего не происходило. Затем внизу редактора одна за другой появились привычные зелёные строки.

Build successful.

Сергей ещё раз проверил место, которое только что исправил. Ошибка исчезла. Всё работало именно так, как и должно было работать с самого начала.

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

Поднявшись из-за стола, он медленно потянулся. Однокомнатная квартира была небольшой, но за несколько лет Сергей превратил её в нечто среднее между кабинетом и мастерской. Почти всю стену занимал компьютерный стол с двумя мониторами. На полках соседствовали книги по программированию, коробки с микроконтроллерами, катушки пластика для 3D-принтера и несколько недособранных устройств, до которых всё никак не доходили руки. Возле шкафа стоял пластиковый ящик с инструментами, оставшийся после ремонта. Из него выглядывала деревянная рукоять строительного молотка. В углу стоял турник, которым он честно пользовался… первую неделю после покупки.

Он ещё раз окинул взглядом комнату. Почти каждая вещь здесь когда-то покупалась с мыслью: «Пригодится для нового проекта». Что-то действительно пригодилось, а что-то так и осталось пылиться на полках, ожидая своего часа. Сергей усмехнулся, снова опустился в кресло и перевёл взгляд на монитор.

В правом нижнем углу монитора горело время.

22:47.

— Пора заканчивать…

За окном давно стемнело. С двенадцатого этажа весь район выглядел удивительно спокойным. В окнах соседних домов горел тёплый свет. Где-то мелькал телевизор. На одной из кухонь женщина что-то готовила, время от времени подходя к плите. В доме напротив маленький ребёнок носился по комнате, а родители безуспешно пытались отправить его спать.

Обычный вечер. Сергей вернулся взглядом к монитору и быстро пробежался по изменениям — их оказалось до смешного мало. Пара исправленных ошибок, несколько комментариев, небольшой рефакторинг. Работы от силы на час. Он открыл Git, и список изменений появился почти мгновенно. Последний коммит был сделан шесть дней назад. Сергей на секунду замер и молча уставился на дату.

— Опять…

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

Не потому, что код сложный. А потому что ещё неделю назад каждая строчка была продолжением его собственных мыслей.

Он открыл историю репозитория. Сергей медленно провёл курсором по календарю активности. Каждый зелёный квадратик был отдельным вечером, который он вырвал у работы и усталости.

Когда-то он специально следил, чтобы ни один день не оставался пустым. Даже если удавалось написать всего пару строк, вечером всё равно появлялся маленький коммит. Было приятно смотреть, как календарь постепенно окрашивается в зелёный.

Поначалу это были редкие пропуски — один день без коммита, потом два. Постепенно такие паузы становились всё длиннее и уже не казались чем-то необычным. Теперь последняя запись в репозитории была сделана шесть дней назад. Сергей лишь невесело усмехнулся.

— Хорошая дисциплина…

Он свернул окно Git и открыл проводник. Папка Projects встретила его длинным списком знакомых названий.

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

Он молча закрыл окно.

Следующей оказалась Finance Helper. Этот проект зашёл дальше остальных. Сергей зарегистрировал домен, оплатил хостинг, настроил сервер и даже нарисовал логотип. Тогда ему казалось, что ещё немного — и приложение можно будет показать первым пользователям. Но работа постепенно вытеснила вечерние занятия, а через несколько месяцев оплаченный сервер превратился просто в ещё одну ежемесячную подписку.

Курсор остановился на Recipe AI.

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

Впрочем, одно исключение всё же существовало.

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

Со временем ссылкой на бота начали делиться знакомые, потом кто-то выложил её в тематическом чате. Теперь им пользовались несколько десятков человек. Бот по-прежнему исправно работал, изредка требуя лишь обновить библиотеку или перезапустить сервер.

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

Ещё десятки папок уходили вниз. Некоторые проекты успели прожить всего один вечер, другие — несколько месяцев. Почти каждый из них когда-то казался началом новой жизни.

Он закрыл проводник.

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

Но долго так продолжаться не могло.

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

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

Получался замкнутый круг.

Мысль об этом никак не отпускала. Сергей ещё несколько секунд неподвижно смотрел в монитор, затем закрыл окно проекта. Работать дальше уже не хотелось. Вместо этого он открыл папку Notes.

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

Идей накопилось столько, что некоторые из них он уже не помнил. Приложение для совместного изучения иностранных языков, конструктор настольных игр, генератор квестов для D&D, сервис поиска попутчиков для походов… Сергей глубоко вздохнул. Одни задумки до сих пор казались интересными, другие теперь выглядели откровенно наивными. Возле некоторых уже стояли короткие пометки: «не взлетит», «слишком дорого», «позже», «нужно подумать».

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

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

git add.

git commit — m "Fix validation bug"

Несколько секунд — и на экране появилось знакомое сообщение.

1 file changed.

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

— Готово.

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

«Подготовка завершена.»

Сергей нахмурился.

— Подготовка чего?..

Он разблокировал телефон, ожидая увидеть очередную рекламу или уведомление от какого-нибудь приложения, но сообщение бесследно исчезло. Сергей открыл шторку уведомлений — пусто. Затем на всякий случай просмотрел список недавно запущенных приложений, после чего заглянул в историю уведомлений. Ничего. Будто этих слов никогда и не существовало. Он ещё несколько секунд смотрел на экран, пытаясь понять, что именно сейчас произошло, затем пожал плечами и уже решил списать всё на очередной сбой Android.

Телефон снова завибрировал.

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

«Начало цикла подтверждено.»

Сергей почувствовал, как по спине пробежал неприятный холодок.

— Да что за…

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

Сергей невольно поднял голову. Что-то происходило. Он бросил телефон на стол и быстрым шагом подошёл к окну.

Во дворе царило настоящее замешательство. Несколько машин остановились прямо посреди проезда, перекрыв движение. Один водитель выскочил наружу, так и оставив дверь распахнутой. Молодая девушка, державшая в руках пакет с продуктами, застыла как вкопанная. Пакет медленно выскользнул из её пальцев, но она даже не заметила этого. Чуть дальше мужчина в деловом костюме стоял с поднятой рукой и осторожно водил пальцем по воздуху, словно пытался нажать на невидимую кнопку. Рядом женщина испуганно озиралась по сторонам, что-то быстро говоря мужу, а тот, не отрывая взгляда от пустоты перед собой, лишь молча качал головой.

Сергей невольно проследил за их взглядами.

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

— Что за…

В этот момент яркая белая вспышка ослепила его.

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

Но исчез не совсем.

Прямо перед ним, словно висевшие в воздухе, медленно проступали полупрозрачные строки незнакомого интерфейса.

[Ожидание окончено.]

Надпись растворилась так же быстро, как появилась. На её месте возникла следующая.

[Начало нового цикла подтверждено.]

Сердце Сергея пропустило удар. Он резко вскинул голову, посмотрел по сторонам, но надпись никуда не исчезла. Она не была отражением в стекле, не проецировалась на стену и не зависела от положения головы. Куда бы он ни переводил взгляд, строки оставались прямо перед глазами.

Будто кто-то вывел их не на экран телефона, а прямо ему в сознание.

Когда предыдущая надпись исчезла, новая возникла почти сразу.

[Добро пожаловать в новый цикл.]

Предыдущая главаГлава 1 из 28Следующая глава