Прыжок в пустоту: как я бросила работу, чтобы стать фронтенд-разработчиком, не зная чем это обернется

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

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

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

Как у многих, все началось с выгорания

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

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

У программирования было важное отличие от других специальностей — я понимала в чем состоит конечный продукт этой деятельности.

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

Прыжок в пустоту: как я бросила работу, чтобы стать фронтенд-разработчиком, не зная чем это обернется

Просто берешь и делаешь

Я вспомнила про Хекслет. Сначала решила пройти курс «Введения в программирование», чтобы хоть немного размять мозги. Я не могу сказать, что даже он дался мне легко:) Но отступать было некуда — с работой я уже попрощалась. И решила начать учиться на фронтенд-разработчика.

Хочу сразу отметить — я не пример таланта или невероятной силы воли. Самый большой ресурс, который у меня был в отличие от многих других учеников — это время. Время и дисциплинированность.

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

Где-то на третьем проекте был фронтенд, и паника все еще осталась.

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

«Просто берешь и делаешь» — кажется, этот призыв стал моим главным принципом.

Можно ли выгореть от учебы?

Но не все было так радужно. Можно ли выгореть от учебы, даже если не совмещаешь ее ни с чем? Можно. Это то что я в полной мере почувствовала под конец курса.

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

После верстки — курсы по написанию сервера на JS и по управлению базами данных.

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

Возможность видеть картину в целом, пусть и на самом поверхностном уровне, — была для меня особым удовольствием.

Поиск работы оказался более изматывающим, чем учеба

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

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

Накопленные средства, на которые я скромно жила месяцы учебы неумолимо стремились к концу, что также не способствовало бодрости духа.

После двух месяцев безуспешных поисков, я была готова сдаться и выйти на любую работу, какую предложат. И, скрепя сердце, выложила на HH.ru резюме бухгалтера. С программированием я не настроена была завязывать, но решила попробовать как-нибудь позже, еще подготовившись. Как тут один за другим поступили два предложения на собеседования. Одно из них было на позицию стажера в Kaiten.

Как я попала на свою первую стажировку — в Kaiten

Kaiten создает систему для управления процессами в компании. Виртуальные доски, карточки-задачи, возможность отслеживания всей разноплановой деятельности на одном пространстве. Профессиональный опыт подсказывал, что это мечта руководителей.

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

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

К слову, оффер в другую компанию я тоже получила, но решила остаться здесь:)

Что от меня требовалось на стажировке

В Kaiten была подготовлена подборка проектов для стажеров. Каждый из проектов — это небольшая фича, которая требовала плотного знакомства с продуктом и весомый итоговый результат.

В итоге вместе с наставником я выбрала в качестве проекта разработку нового импортера CSV/XLS файлов. Это был компромисс между чем-то интересным и не слишком сложным для новичка.

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

Моим наставником стал Ярослав Кошкарев, который проводил собеседование. Он обладал довольно большим запасом терпения.

Наша коммуникация велась по нескольким каналам:

  • Отслеживание моей задачи через Kaiten — все также как у разработчиков в штате.

  • Видео-созвоны — очень длительные первую неделю (на меня не жалели времени), после — по необходимости и для обсуждения рабочих моментов.

  • Код-ревью с подробным объяснением замечаний, если их причина была для меня не очевидна.
  • И постоянная поддержка в Слаке.

Мне понравилось, что кроме конкретных советов, мне объяснили, что из себя в целом представляет проект, как работают его части, как происходят процессы. Чтобы у меня в голове было понимание всей картины.

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

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

Оказалось, до программирование еще было далеко

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

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

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

Самый первый вариант прототипа.
Самый первый вариант прототипа.

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

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

Сценариев становится все больше.
Сценариев становится все больше.

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

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

Теперь нужно было понять, как все это должно работать

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

Однозначно заявляю — без помощи наставника я бы сдалась на этом этапе.

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

И вот я добралась до своих первых строчек кода для коммерческого приложения. Ура!

Первая страничка для фронтенда была достаточно простая.

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

Наконец, этот этап работы был завершен — пришла пора первого деплоя!

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

Мама, я в телевизоре!

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

И вот, я увидела написанную мной страницу на проде — это один в один ощущение «мама, я в телевизоре»:) И так вышло, что первый деплой пришелся на мой день рождения. Теперь эта дата всегда со мной!

Привет, фронтенд — привет, косяки.

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

Этот фреймворк по-прежнему оставался моим слабым местом. Я честно призналась в этом наставнику и получила ответ, что это не критично, понимание придет с опытом.

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

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

Было грустно, но проект я в любом случае была намерена довести до конца — мы с ним уже породнились.

Наконец, полноценная версия нового импортера была готова к первому релизу

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

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

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

И я благодарна Вячеславу, нашему руководителю, за то что он отслеживает и приносит фидбэк нам — удобна ли новая функция для пользователей, нужно ли что-то изменить. Это воодушевляет.

Готовый мастер импорта файлов в Kaiten. Теперь с помощью него можно удобно загружать данные из других таск-трекеров с помощью CSV и XLS таблиц.
Готовый мастер импорта файлов в Kaiten. Теперь с помощью него можно удобно загружать данные из других таск-трекеров с помощью CSV и XLS таблиц.

Срок моей стажировки подходил к концу — готова была прощаться

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

Сожалений не было. Я поработала над реальным проектом и многое от этого получила — быстро усваивала новые понятия, запоминала приемы в чужом интересном коде. В общем, я была удовлетворена полученной пользой.

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

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

Оффер был принят.

Это не история про мечту. Это история про рациональность

Решиться попробовать новую профессию можно даже после очередной лекции Аси Казанцевой, где говорится: «Самое главное что нужно понять — обучение физически меняет мозг».

Даже если очень стыдно выглядеть незнающим и задавать глупые вопросы — надо как-то взять себя в руки и задать их. Иначе можно так и остаться стоять на месте. Я пока и сама продолжаю с этим бороться.

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

258258
305 комментариев

Привет 100500 статья на тему как я вошла в айти. Ждем через 3 года статью про выгорание

169
Ответить

Статья "Как меня задолбало сидеть по 12 часов на жепе пиля очередной лендос и я с стал водопроводчиком "

107
Ответить

думаю даже быстрее чем через 3 года)

15
Ответить

с выгарания началось вообще то))

10
Ответить

Комментарий недоступен

1
Ответить

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

Ответить

Ну что сказать...
В приличной компании есть такие люди - аналитики называются. Они занимаются проработкой FSD. Иначе - ТЗ по которому разработчик уже пишет код.
Навешивать на разработчика, да еще стажера еще и аналитику - ну такое себе...
А еще есть такие люди как архитекторы. Которые занимаются тем, что следят чтобы очередная реализация "супер-пупер-фичи" органично вписалась во всю систему и не стала палкой в колесе, которая затормозит все и вся.
А начинается все с BRD - это фактически хотелки заказчика. Его бизнес-требования. Потом составляется ОТАР (Организационно-Техническое Архитектурное Решение) который согласуется архитекторами. Потом проводится оценка - сколько ресурсов потребуется и сколько времени займет аналитика и разработка. На основе этого заводится задача, которая начинает жить, меняя статусы и текущего исполнителя (сначала аналитик, потом разработчик, потом тестировщик...).
Хороший аналитик понимает возможности разработчика по задаче и детализирует FSD в соответствии с ними. Для начинающих будет писать более подробно, для опытного можно ограничится общей канвой, а детали разработчик уже сам додумает.
Нов целом, конечно, респект за смелость и целеустремленность. Все получится, дальше будет попроще :-)
В целом - все "вайтишники" идут в мобильную и вебразработку. Что-то не слышал чтобы кто-то пошел микроконтроллеры программировать, в промавтоматизацию, присать софт для взаимодействия со всякой аппаратурой и т.п.

57
Ответить