Прыжок в пустоту: как я бросила работу, чтобы стать фронтенд-разработчиком, не зная чем это обернется
Меня зовут Екатерина, мне 32 года. А за спиной было девять лет работы на одном предприятии, преимущественно бухгалтером, образование экономиста-менеджера и полное непонимание что делать со своей профессиональной жизнью.
Спойлер: это не история про мечту, превозмогание и достижения. Она во многом про рациональность и правильный выбор.
Честно про обучение фронтенд-разработке, стажировку с реально сложными задачами и искреннюю радость от первого реализованного проекта.
Как у многих, все началось с выгорания
После 9 лет однотипной работы я устала от изменений ради изменений, огромного количества регламентных бумаг, и постоянного ощущения, что в эту профессию я попала случайно.
В один из очередных кризисных периодов я задумалась о смене профессии и наткнулась на Хекслет, прошла небольшой тест. Надо сказать, я не отношусь к тем, кого с детства тянуло к компьютерным наукам, кто программировал на калькуляторе и в старших классов подрабатывал написанием сайтов. Но с логикой в целом, и с математикой у меня всегда были хорошие отношения. А программирование всегда восхищало, хотя и оставалось в сознании «чем-то для сверх-людей».
У программирования было важное отличие от других специальностей — я понимала в чем состоит конечный продукт этой деятельности.
Я ушла с работы. Это был не самый легкий период. Попробовала себя на другом месте, но быстро поняла, что мне не хочется абсолютно ничего — полный психологический крах. Работа всегда была важной частью моей жизни, и ощутить, что такая огромная ее часть внезапно опустела, было жутко.
Просто берешь и делаешь
Я вспомнила про Хекслет. Сначала решила пройти курс «Введения в программирование», чтобы хоть немного размять мозги. Я не могу сказать, что даже он дался мне легко:) Но отступать было некуда — с работой я уже попрощалась. И решила начать учиться на фронтенд-разработчика.
Хочу сразу отметить — я не пример таланта или невероятной силы воли. Самый большой ресурс, который у меня был в отличие от многих других учеников — это время. Время и дисциплинированность.
На первом проекте была паника, когда сталкивалась с большим количеством совершенно незнакомых понятий и необходимостью осваивать документацию.
Где-то на третьем проекте был фронтенд, и паника все еще осталась.
Наконец, к четвертому проекту, когда нужно было самостоятельно освоить хуки реакта и несколько важных библиотек, пришло ощущение дзена.
«Просто берешь и делаешь» — кажется, этот призыв стал моим главным принципом.
Можно ли выгореть от учебы?
Но не все было так радужно. Можно ли выгореть от учебы, даже если не совмещаешь ее ни с чем? Можно. Это то что я в полной мере почувствовала под конец курса.
Пока последний проект проходил проверку, периодически возвращаясь на доработку, я начала проходить курсы по верстке, потому что понимала что в верстке я ужасающе слаба. А начинающий фронтендер без верстки — это смешно.
После верстки — курсы по написанию сервера на JS и по управлению базами данных.
Могу сказать, что из этого не самого простого периода в моей жизни больше всего мне запомнилась радость, когда в голове начинают складываться все составляющие приложения.
Возможность видеть картину в целом, пусть и на самом поверхностном уровне, — была для меня особым удовольствием.
Поиск работы оказался более изматывающим, чем учеба
Самое важное, что параллельно я начала поиски работы. Оказалось, что это тоже требует специфических навыков и подготовки. Я стала регулярно посвящать время составлению резюме, поиску вакансий и написанию сопроводительных писем — и оказалось, что это занятие еще более сложное и изматывающее чем учеба. И, увы, довольно бесплодное.
Дело осложнялось тем, что я живу в небольшом сибирском городе с разницей во времени 4 часа с Москвой и к переезду была не готова — не все работодатели хотят иметь дело с таким сотрудником.
Накопленные средства, на которые я скромно жила месяцы учебы неумолимо стремились к концу, что также не способствовало бодрости духа.
После двух месяцев безуспешных поисков, я была готова сдаться и выйти на любую работу, какую предложат. И, скрепя сердце, выложила на HH.ru резюме бухгалтера. С программированием я не настроена была завязывать, но решила попробовать как-нибудь позже, еще подготовившись. Как тут один за другим поступили два предложения на собеседования. Одно из них было на позицию стажера в Kaiten.
Как я попала на свою первую стажировку — в Kaiten
Kaiten создает систему для управления процессами в компании. Виртуальные доски, карточки-задачи, возможность отслеживания всей разноплановой деятельности на одном пространстве. Профессиональный опыт подсказывал, что это мечта руководителей.
На собеседовании со мной общались двое представителей Kaiten, крайне дружелюбно и терпеливо, пока я косячила в элементарной логике и паниковала. А под конец они покорили меня, просто рассказав о своей работе, выстроенных процессах и об отношении к продукту, которым они сами пользуются каждый день.
Я решила, что я хочу с ними поработать, даже с учетом того что речь шла о стажировке, ограниченной по времени.
К слову, оффер в другую компанию я тоже получила, но решила остаться здесь:)
Что от меня требовалось на стажировке
В Kaiten была подготовлена подборка проектов для стажеров. Каждый из проектов — это небольшая фича, которая требовала плотного знакомства с продуктом и весомый итоговый результат.
В итоге вместе с наставником я выбрала в качестве проекта разработку нового импортера CSV/XLS файлов. Это был компромисс между чем-то интересным и не слишком сложным для новичка.
В Кайтене уже существовал импортер файлов, который позволял загрузить таблицу и получить доску с каким угодно количеством карточек. Но увы, он принимал только файлы, соответствующие определенному шаблону, что не очень-то удобно для пользователей. Моя задача была в том, чтобы сделать более гибкий вариант импорта данных.
Моим наставником стал Ярослав Кошкарев, который проводил собеседование. Он обладал довольно большим запасом терпения.
Наша коммуникация велась по нескольким каналам:
Отслеживание моей задачи через Kaiten — все также как у разработчиков в штате.
Видео-созвоны — очень длительные первую неделю (на меня не жалели времени), после — по необходимости и для обсуждения рабочих моментов.
- Код-ревью с подробным объяснением замечаний, если их причина была для меня не очевидна.
- И постоянная поддержка в Слаке.
Мне понравилось, что кроме конкретных советов, мне объяснили, что из себя в целом представляет проект, как работают его части, как происходят процессы. Чтобы у меня в голове было понимание всей картины.
К слову, другие разработчики также очень быстро откликались в Слаке, отвечали на вопросы и оказывали помощь.
Оказалось, до программирование еще было далеко
Прежде чем начать писать код, нужно было понять, что писать — что мы хотим увидеть, чем пользователи захотят воспользоваться.
Честно сказать, я помню что меня охватила легкая паника, когда передо мной были поставлены первые задачи — аналитика и прототипирование.
Если с аналитикой предложений было более менее понятно, то с прототипами интерфейса было все непросто, потому что я совсем не визуальщик. Понимаю, для фронтендера звучит как приговор. Но где нет таланта — есть старание.
Прототипов было немало. Нужно было учесть все — от пользовательской психологии и поведения до разнообразных сценариев, с которыми могут прийти пользователи. А это означает работу с неконтролируемыми и непредсказуемыми данными.
Сценарии стали настоящим камнем преткновения. Как-только мой прототип отвечал одному требованию, Вячеслав, наш руководитель, описывал второе, третье, четвертое. Нужно было их сгруппировать, найти единое решение, а потом объединить в рамках одного прототипа.
Тогда то я и начала знакомиться с основными понятиями нашего приложения — доской, дорожками, колонками и отношениями между ними. В итоге один из вариантов оказался достаточно удовлетворительным чтобы на его основе можно было начать работу.
Теперь нужно было понять, как все это должно работать
Я поняла, как должен выглядеть импортер. А теперь нужно было определиться с тем, как он будет работать — составить сиквенс диаграмму процессов, происходящих внутри приложения. Это требовало понимания как в целом работает приложение, какие в нем есть части, как они разделяют ответственность.
Однозначно заявляю — без помощи наставника я бы сдалась на этом этапе.
Код рабочего приложения несравним с учебной программой (даже хорошей) и поначалу вызывает панику своими масштабами и сложностью.
И вот я добралась до своих первых строчек кода для коммерческого приложения. Ура!
Первая страничка для фронтенда была достаточно простая.
Сложности возникли с непосредственным парсингом файлов: отличие csv и xls, попытка найти единое решение для этих расширений, изучение документации, бесконечные пробы и отлавливание ошибок. Как только стало казаться, что очередная проблема решена — загружался новый файл, например, с неопробованной ранее кириллицей, — и все начиналось заново.
Наконец, этот этап работы был завершен — пришла пора первого деплоя!
Мама, я в телевизоре!
Гит, конечно, был обязательной частью учебы, но вносить изменения в работающее приложение — это совсем другой уровень ответственности, нервозности и нюансов. И снова спасибо наставнику, который спокойно отвечал на мои наивные вопросы и не гнобил за косяки.
И вот, я увидела написанную мной страницу на проде — это один в один ощущение «мама, я в телевизоре»:) И так вышло, что первый деплой пришелся на мой день рождения. Теперь эта дата всегда со мной!
Привет, фронтенд — привет, косяки.
Следующий этап проходил полностью на фронтенде — нужно было вывести данные в виде таблицы, добавить меню для настройки будущего импорта, учесть много нюансов и логики. Для меня это был самый сложный этап.
Этот фреймворк по-прежнему оставался моим слабым местом. Я честно призналась в этом наставнику и получила ответ, что это не критично, понимание придет с опытом.
Но опыт давался тяжело. Мое невежество в верстке и горы визуальных косяков (отступы, границы, размеры, странное расположение элементов) — максимум замечаний и правок.
Подходил к концу второй месяц практики, я стала уверена, что работу мне не предложат.
Было грустно, но проект я в любом случае была намерена довести до конца — мы с ним уже породнились.
Наконец, полноценная версия нового импортера была готова к первому релизу
Чувство, когда ты загружаешь файл, нажимаешь кнопку «Импортировать» и видишь как в один миг создаются десятки карточек — бесценно. Ведь это все сделала я!
В тот момент я четко поняла, почему программирование так часто называют магией — просто из букв, слов, строк кода создается нечто новое.
Именно на этом этапе, когда твой код находится на проде и ничего не ломает, захотелось, чтобы им пользовались, чтобы люди его оценили и принесли фидбек. Стало бы понятно, что твоя работа кому-то принесла пользу.
И я благодарна Вячеславу, нашему руководителю, за то что он отслеживает и приносит фидбэк нам — удобна ли новая функция для пользователей, нужно ли что-то изменить. Это воодушевляет.
Срок моей стажировки подходил к концу — готова была прощаться
Я продолжала работу над дополнительными функциями для импортера и решением багов, но морально была готова попрощаться с компанией. Все-таки пропасть в уровне с разработчиками была очевидна (хоть и естественна). Ну и еще я не лучшим образом показала себя при работе над главным компонентом таблицы.
Сожалений не было. Я поработала над реальным проектом и многое от этого получила — быстро усваивала новые понятия, запоминала приемы в чужом интересном коде. В общем, я была удовлетворена полученной пользой.
Поэтому, получив оффер, я была очень удивлена. И от неожиданности засомневалась еще больше — смогу ли я справиться? Ведь это уже не стажировка.
Но потом я взяла себя в руки — прошло достаточно времени, чтобы команда смогла объективно оценить мой уровень и вынести решение. А я успела проникнуться Кайтеном и понять, что тогда на собеседовании я не зря выбрала эту компанию.
Оффер был принят.
Это не история про мечту. Это история про рациональность
Решиться попробовать новую профессию можно даже после очередной лекции Аси Казанцевой, где говорится: «Самое главное что нужно понять — обучение физически меняет мозг».
Даже если очень стыдно выглядеть незнающим и задавать глупые вопросы — надо как-то взять себя в руки и задать их. Иначе можно так и остаться стоять на месте. Я пока и сама продолжаю с этим бороться.
Ну и конечно есть элемент удачи — невозможно на все повлиять. Мне повезло — в моем случае все совпало, и я теперь имею возможность заниматься комфортной и интересной деятельностью, работать с классными людьми в отличной компании.
Привет 100500 статья на тему как я вошла в айти. Ждем через 3 года статью про выгорание
Статья "Как меня задолбало сидеть по 12 часов на жепе пиля очередной лендос и я с стал водопроводчиком "
думаю даже быстрее чем через 3 года)
с выгарания началось вообще то))
Комментарий недоступен
Чувак иди мастером по обслуживанию абонентов поработай или инсталятором, а еще лучше в школу учителем, вот в ней развитие и айтишные зпшки))
Ну что сказать...
В приличной компании есть такие люди - аналитики называются. Они занимаются проработкой FSD. Иначе - ТЗ по которому разработчик уже пишет код.
Навешивать на разработчика, да еще стажера еще и аналитику - ну такое себе...
А еще есть такие люди как архитекторы. Которые занимаются тем, что следят чтобы очередная реализация "супер-пупер-фичи" органично вписалась во всю систему и не стала палкой в колесе, которая затормозит все и вся.
А начинается все с BRD - это фактически хотелки заказчика. Его бизнес-требования. Потом составляется ОТАР (Организационно-Техническое Архитектурное Решение) который согласуется архитекторами. Потом проводится оценка - сколько ресурсов потребуется и сколько времени займет аналитика и разработка. На основе этого заводится задача, которая начинает жить, меняя статусы и текущего исполнителя (сначала аналитик, потом разработчик, потом тестировщик...).
Хороший аналитик понимает возможности разработчика по задаче и детализирует FSD в соответствии с ними. Для начинающих будет писать более подробно, для опытного можно ограничится общей канвой, а детали разработчик уже сам додумает.
Нов целом, конечно, респект за смелость и целеустремленность. Все получится, дальше будет попроще :-)
В целом - все "вайтишники" идут в мобильную и вебразработку. Что-то не слышал чтобы кто-то пошел микроконтроллеры программировать, в промавтоматизацию, присать софт для взаимодействия со всякой аппаратурой и т.п.