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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Прототип, который в итоге лег в основу итогового варианта.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
305 комментариев
Написать комментарий...
Кемаль

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

P/S
Не хочу показаться злодеем, просто писать статьи о том как ты вошёл в профессию нужно хотя бы когда ты middle, я работаю два года и в довольно сложном проекте и у меня вообще нет чувства что я вошёл, такое ощущение что я все ещё на входе, потому что есть ещё куча технологий, у меня верстки это максимум 15% от всех задач, в остальном это монолиты кода, оптимизация, рефакторинг огромных модулей, и как популярно мнение что на Front-end не нужно знание алгоритмов, это как раз от людей которые пишут статьи после или до года опыта работы. Войти в профессию, это когда ты понимаешь фундаментально и готов перейти в любой момент с одной технологии на другую без долгого погружения в нее, а все те кто за пол года залетел на рутинные задачи типа сделать форму и вывести табличку, ещё не вошли в профессию.

Ответить
Развернуть ветку
Victor Pomortseff

Ну вы не совсем правы. Человек описал свои первые, наиболее яркие и свежие впечатления. И это хорошо - потом все это замыливается и кажется мелким, смешным и неважным.
Я вот так уже не смогу описать как "входил" в IT в 88-90-м. Хотя ярких на тот момент вещей было очень много.
Или как в 93-95-м выстраивали с нуля архитектуру принципиально новой системы, аналогов которой не было в стране... То время вообще было одним из лучших в моей, как разработчика, жизни. И хотя сейчас и работа комфортнее и задачи не менее интересны, но все равно то время иногда с ностальгией вспоминаю.
Но описать все это так эмоционально уже не получится...

Ответить
Развернуть ветку
Alex

Да боже это просто рекламная статья, что вы начинаете в суть вникать

Ответить
Развернуть ветку
Кемаль

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

Ответить
Развернуть ветку
Юрий Б.

Зря так. Многих статьи мотивируют двигаться дальше. А если это новая статья на ту же тему, то для неофитов это подтверждение, что надо продолжать двигаться, ничего не поменялось за год.

Ответить
Развернуть ветку
Кемаль

Мотивируют такие каналы как it борода, it Kamasutra, JavaScript ninja, Ларичев, Петриченко и т д, а такого рода посты это мусор. Была классная статья "Как я стал синьором в 17 лет" про парня из Beeline, и это посты которые мотивируют сильных и демотивируют слабых.

Ответить
Развернуть ветку
Kelerius

Борода не мотивирует,он куда то свалил и вещает оттуда. Уж лучше тогда канал Мы обречены

Ответить
Развернуть ветку
302 комментария
Раскрывать всегда