Прыжок в пустоту: как я бросила работу, чтобы стать фронтенд-разработчиком, не зная чем это обернется
Меня зовут Екатерина, мне 32 года. А за спиной было девять лет работы на одном предприятии, преимущественно бухгалтером, образование экономиста-менеджера и полное непонимание что делать со своей профессиональной жизнью.
Спойлер: это не история про мечту, превозмогание и достижения. Она во многом про рациональность и правильный выбор.
Честно про обучение фронтенд-разработке, стажировку с реально сложными задачами и искреннюю радость от первого реализованного проекта.
Как у многих, все началось с выгорания
После 9 лет однотипной работы я устала от изменений ради изменений, огромного количества регламентных бумаг, и постоянного ощущения, что в эту профессию я попала случайно.
В один из очередных кризисных периодов я задумалась о смене профессии и наткнулась на Хекслет, прошла небольшой тест. Надо сказать, я не отношусь к тем, кого с детства тянуло к компьютерным наукам, кто программировал на калькуляторе и в старших классов подрабатывал написанием сайтов. Но с логикой в целом, и с математикой у меня всегда были хорошие отношения. А программирование всегда восхищало, хотя и оставалось в сознании «чем-то для сверх-людей».
Я ушла с работы. Это был не самый легкий период. Попробовала себя на другом месте, но быстро поняла, что мне не хочется абсолютно ничего — полный психологический крах. Работа всегда была важной частью моей жизни, и ощутить, что такая огромная ее часть внезапно опустела, было жутко.
Просто берешь и делаешь
Я вспомнила про Хекслет. Сначала решила пройти курс «Введения в программирование», чтобы хоть немного размять мозги. Я не могу сказать, что даже он дался мне легко:) Но отступать было некуда — с работой я уже попрощалась. И решила начать учиться на фронтенд-разработчика.
Хочу сразу отметить — я не пример таланта или невероятной силы воли. Самый большой ресурс, который у меня был в отличие от многих других учеников — это время. Время и дисциплинированность.
На первом проекте была паника, когда сталкивалась с большим количеством совершенно незнакомых понятий и необходимостью осваивать документацию.
Где-то на третьем проекте был фронтенд, и паника все еще осталась.
Наконец, к четвертому проекту, когда нужно было самостоятельно освоить хуки реакта и несколько важных библиотек, пришло ощущение дзена.
Можно ли выгореть от учебы?
Но не все было так радужно. Можно ли выгореть от учебы, даже если не совмещаешь ее ни с чем? Можно. Это то что я в полной мере почувствовала под конец курса.
Пока последний проект проходил проверку, периодически возвращаясь на доработку, я начала проходить курсы по верстке, потому что понимала что в верстке я ужасающе слаба. А начинающий фронтендер без верстки — это смешно.
После верстки — курсы по написанию сервера на JS и по управлению базами данных.
Могу сказать, что из этого не самого простого периода в моей жизни больше всего мне запомнилась радость, когда в голове начинают складываться все составляющие приложения.
Поиск работы оказался более изматывающим, чем учеба
Самое важное, что параллельно я начала поиски работы. Оказалось, что это тоже требует специфических навыков и подготовки. Я стала регулярно посвящать время составлению резюме, поиску вакансий и написанию сопроводительных писем — и оказалось, что это занятие еще более сложное и изматывающее чем учеба. И, увы, довольно бесплодное.
Дело осложнялось тем, что я живу в небольшом сибирском городе с разницей во времени 4 часа с Москвой и к переезду была не готова — не все работодатели хотят иметь дело с таким сотрудником.
После двух месяцев безуспешных поисков, я была готова сдаться и выйти на любую работу, какую предложат. И, скрепя сердце, выложила на HH.ru резюме бухгалтера. С программированием я не настроена была завязывать, но решила попробовать как-нибудь позже, еще подготовившись. Как тут один за другим поступили два предложения на собеседования. Одно из них было на позицию стажера в Kaiten.
Как я попала на свою первую стажировку — в Kaiten
Kaiten создает систему для управления процессами в компании. Виртуальные доски, карточки-задачи, возможность отслеживания всей разноплановой деятельности на одном пространстве. Профессиональный опыт подсказывал, что это мечта руководителей.
На собеседовании со мной общались двое представителей Kaiten, крайне дружелюбно и терпеливо, пока я косячила в элементарной логике и паниковала. А под конец они покорили меня, просто рассказав о своей работе, выстроенных процессах и об отношении к продукту, которым они сами пользуются каждый день.
Я решила, что я хочу с ними поработать, даже с учетом того что речь шла о стажировке, ограниченной по времени.
К слову, оффер в другую компанию я тоже получила, но решила остаться здесь:)
Что от меня требовалось на стажировке
В Kaiten была подготовлена подборка проектов для стажеров. Каждый из проектов — это небольшая фича, которая требовала плотного знакомства с продуктом и весомый итоговый результат.
В итоге вместе с наставником я выбрала в качестве проекта разработку нового импортера CSV/XLS файлов. Это был компромисс между чем-то интересным и не слишком сложным для новичка.
В Кайтене уже существовал импортер файлов, который позволял загрузить таблицу и получить доску с каким угодно количеством карточек. Но увы, он принимал только файлы, соответствующие определенному шаблону, что не очень-то удобно для пользователей. Моя задача была в том, чтобы сделать более гибкий вариант импорта данных.
Моим наставником стал Ярослав Кошкарев, который проводил собеседование. Он обладал довольно большим запасом терпения.
Наша коммуникация велась по нескольким каналам:
Отслеживание моей задачи через Kaiten — все также как у разработчиков в штате.
Видео-созвоны — очень длительные первую неделю (на меня не жалели времени), после — по необходимости и для обсуждения рабочих моментов.
- Код-ревью с подробным объяснением замечаний, если их причина была для меня не очевидна.
- И постоянная поддержка в Слаке.
Мне понравилось, что кроме конкретных советов, мне объяснили, что из себя в целом представляет проект, как работают его части, как происходят процессы. Чтобы у меня в голове было понимание всей картины.
К слову, другие разработчики также очень быстро откликались в Слаке, отвечали на вопросы и оказывали помощь.
Оказалось, до программирование еще было далеко
Прежде чем начать писать код, нужно было понять, что писать — что мы хотим увидеть, чем пользователи захотят воспользоваться.
Если с аналитикой предложений было более менее понятно, то с прототипами интерфейса было все непросто, потому что я совсем не визуальщик. Понимаю, для фронтендера звучит как приговор. Но где нет таланта — есть старание.
Прототипов было немало. Нужно было учесть все — от пользовательской психологии и поведения до разнообразных сценариев, с которыми могут прийти пользователи. А это означает работу с неконтролируемыми и непредсказуемыми данными.
Сценарии стали настоящим камнем преткновения. Как-только мой прототип отвечал одному требованию, Вячеслав, наш руководитель, описывал второе, третье, четвертое. Нужно было их сгруппировать, найти единое решение, а потом объединить в рамках одного прототипа.
Тогда то я и начала знакомиться с основными понятиями нашего приложения — доской, дорожками, колонками и отношениями между ними. В итоге один из вариантов оказался достаточно удовлетворительным чтобы на его основе можно было начать работу.
Теперь нужно было понять, как все это должно работать
Я поняла, как должен выглядеть импортер. А теперь нужно было определиться с тем, как он будет работать — составить сиквенс диаграмму процессов, происходящих внутри приложения. Это требовало понимания как в целом работает приложение, какие в нем есть части, как они разделяют ответственность.
Однозначно заявляю — без помощи наставника я бы сдалась на этом этапе.
И вот я добралась до своих первых строчек кода для коммерческого приложения. Ура!
Первая страничка для фронтенда была достаточно простая.
Сложности возникли с непосредственным парсингом файлов: отличие csv и xls, попытка найти единое решение для этих расширений, изучение документации, бесконечные пробы и отлавливание ошибок. Как только стало казаться, что очередная проблема решена — загружался новый файл, например, с неопробованной ранее кириллицей, — и все начиналось заново.
Наконец, этот этап работы был завершен — пришла пора первого деплоя!
Мама, я в телевизоре!
Гит, конечно, был обязательной частью учебы, но вносить изменения в работающее приложение — это совсем другой уровень ответственности, нервозности и нюансов. И снова спасибо наставнику, который спокойно отвечал на мои наивные вопросы и не гнобил за косяки.
И вот, я увидела написанную мной страницу на проде — это один в один ощущение «мама, я в телевизоре»:) И так вышло, что первый деплой пришелся на мой день рождения. Теперь эта дата всегда со мной!
Привет, фронтенд — привет, косяки.
Следующий этап проходил полностью на фронтенде — нужно было вывести данные в виде таблицы, добавить меню для настройки будущего импорта, учесть много нюансов и логики. Для меня это был самый сложный этап.
Этот фреймворк по-прежнему оставался моим слабым местом. Я честно призналась в этом наставнику и получила ответ, что это не критично, понимание придет с опытом.
Но опыт давался тяжело. Мое невежество в верстке и горы визуальных косяков (отступы, границы, размеры, странное расположение элементов) — максимум замечаний и правок.
Было грустно, но проект я в любом случае была намерена довести до конца — мы с ним уже породнились.
Наконец, полноценная версия нового импортера была готова к первому релизу
Чувство, когда ты загружаешь файл, нажимаешь кнопку «Импортировать» и видишь как в один миг создаются десятки карточек — бесценно. Ведь это все сделала я!
Именно на этом этапе, когда твой код находится на проде и ничего не ломает, захотелось, чтобы им пользовались, чтобы люди его оценили и принесли фидбек. Стало бы понятно, что твоя работа кому-то принесла пользу.
И я благодарна Вячеславу, нашему руководителю, за то что он отслеживает и приносит фидбэк нам — удобна ли новая функция для пользователей, нужно ли что-то изменить. Это воодушевляет.
Срок моей стажировки подходил к концу — готова была прощаться
Я продолжала работу над дополнительными функциями для импортера и решением багов, но морально была готова попрощаться с компанией. Все-таки пропасть в уровне с разработчиками была очевидна (хоть и естественна). Ну и еще я не лучшим образом показала себя при работе над главным компонентом таблицы.
Сожалений не было. Я поработала над реальным проектом и многое от этого получила — быстро усваивала новые понятия, запоминала приемы в чужом интересном коде. В общем, я была удовлетворена полученной пользой.
Поэтому, получив оффер, я была очень удивлена. И от неожиданности засомневалась еще больше — смогу ли я справиться? Ведь это уже не стажировка.
Но потом я взяла себя в руки — прошло достаточно времени, чтобы команда смогла объективно оценить мой уровень и вынести решение. А я успела проникнуться Кайтеном и понять, что тогда на собеседовании я не зря выбрала эту компанию.
Оффер был принят.
Это не история про мечту. Это история про рациональность
Решиться попробовать новую профессию можно даже после очередной лекции Аси Казанцевой, где говорится: «Самое главное что нужно понять — обучение физически меняет мозг».
Даже если очень стыдно выглядеть незнающим и задавать глупые вопросы — надо как-то взять себя в руки и задать их. Иначе можно так и остаться стоять на месте. Я пока и сама продолжаю с этим бороться.
Ну и конечно есть элемент удачи — невозможно на все повлиять. Мне повезло — в моем случае все совпало, и я теперь имею возможность заниматься комфортной и интересной деятельностью, работать с классными людьми в отличной компании.
Кажется натыкался на эту же статью на Хабре и она вызвала много хейта. Ну в целом изи, очередная айтишница, вопрос получится ли прыгнуть выше простых задач с табличками, удалением и дерганием get запросов, или же при первом рекурсивном обходе дерева и модификации его элементов придет понимание что элементы двигать на странице это ещё не весь Frontend.
P/S
Не хочу показаться злодеем, просто писать статьи о том как ты вошёл в профессию нужно хотя бы когда ты middle, я работаю два года и в довольно сложном проекте и у меня вообще нет чувства что я вошёл, такое ощущение что я все ещё на входе, потому что есть ещё куча технологий, у меня верстки это максимум 15% от всех задач, в остальном это монолиты кода, оптимизация, рефакторинг огромных модулей, и как популярно мнение что на Front-end не нужно знание алгоритмов, это как раз от людей которые пишут статьи после или до года опыта работы. Войти в профессию, это когда ты понимаешь фундаментально и готов перейти в любой момент с одной технологии на другую без долгого погружения в нее, а все те кто за пол года залетел на рутинные задачи типа сделать форму и вывести табличку, ещё не вошли в профессию.
омг, да это просто профессия. вы там еж.сь совсем ? ) у одного бабочки, у другого такое впечатление что звездолеты на фронте делают. Всегда интересно у хирургов или юристов такой же пафос? Ну там отрубил руку первую - "лошара, пока 10 рук не нарубишь это не вошел в профессию, погружение надо в печень фундаментальное."
просто тупо в постсоветском больше платят, чем в других обычных профессиях (в среднем) + удаленка. Этого достаточно и для работы и для мотивации и при этом не надо упарываться на литкоде или тип того, чтобы получать деньгу. И зачем куда-то прыгать?
Насчет "сложности" - есть конкретные примеры? а так из разряда я знаю кунгфу, карате и много др страшных слов.
Недавно в Антона Ларичева вышло псевдо интервью на Front-end разраба, где он девке сказал что она уже почти middle, но глядя на нее понимаешь что она как и все те кто пишут такого рода статьи деревянная и будущее ее туманно как дойдет дело до сложных задач, поэтому я и говорю что если ты написал пару гет запросов, привязал колл бэки и наверстал несколько страниц, не значит что надо бежать и всем рассказывать как легко в айти, потому что чем дальше в лес тем меньше дров, я сам когда учился гуглил как быстрее стать программистом, читал статьи, но даже тогда я понимал что такие статьи не мотивируют, они только надевают розовые очки. Потом такие люди приходят на собес и просят миллионы. Так например парк месяцев назад коллега собеседовал девочку с одного из местных банков и она попросила 1.5 млн тенге, по старому курсу это почти 300к рублей, но тянула она максимум на 70к, я все это к тому что такие статьи создают пузырь и перенревают рынок говно кадрами, люди начинают идти не по тому что хотят кодить, а ради денег, а деньги плохая мотивация и на длинной дистанции работают плохо, по крайней мере так показывают большинство исследований.
Разработчики любят деньги. И по вашим комментам видно, что это главная мотивация. Минус за то, что называете это чем-то странным.
Ну не знаю... Когда я ушел в IT, там не было таких денег. Шли те, кому нравится все это. И интернета не было и гугля и курсов.
И до сих пор нравится.
А деньги... Ну да, хорошо когда платят столько, что можно не думать о том на что жить и просто заниматься тем, что нравится. Но не более того. Сейчас часто предложения приходят от рекрутеров. И иногда предлагают больше чем есть сейчас. Но практически всегда если "больше", то или условия не нравятся, или область не интересная.
На текущем месте все удачно стеклось - хорошая команда, интересная работа, рост стабильный, деньги нормальные... И уходить куда-то ну совсем неохота.
Может быть потому что деньги как таковые не сильно уже нужны - все есть. Квартира в городе, дом за городом, машина... И можно позволить себе заниматься тем, что нравится, не одумляясь ценниками в магазинах.
Я всегда на ценник смотрю, студенческая привычка.
И люблю деньги. Считаю это нормальным. Так же как и то, что у кого-то другая мотивация.
Но даже дядя Боб не скрывал, что работает за деньги, а не идею.
Просто чувак выше с явно задранным чсв, не мог пройти мимо статьи "недо-мидла", сагрился.
Деньги мотивируют только на коротких дистанциях, работая над дерьмовым продуктом и в плохом коллективе, деньги со временем отойдут на второй план. На заводе Интел проводили исследование, которое как раз показало что одних денег мало.
На заводе Интел много что неправильно делают.
так что там сложного во фронте? примеры будут?
у всех разная мотивация. Деньги одна из. ЗП вообще может никак не коррелировать с уровнем знаний, а смотреть другому в рот - ну такое.
Я в статье не увидел, что кто то бежал с лозунгом - легко.
Давай сначала разберемся что в твоём понимании Frontend? Для меня однозначно не верстка, а динамичнское программирование, так как я работаю с картографическим big data продуктом. Или ты сравниваешь какой нибудь бэк на java с фронтом? Я кажется ясно описал что писать в начале профессии статьи о том что фронт или какая нибудь другая профессия это легко, это неправильно (речь о всех статьях войти в айти). Если так посудить, то и хирургом быть легко, заштопал рану и все, ты в профессии... В целом жалею что оставил комментарий под постом по той причине что пиздеж в комментариях такой же пустой как и суть статьи.
Это общие слова.
Да хоть нейросети, вопрос простой будут примеры? - опять куча слов. Вы же тут напихали ярлыков, но своей экспертизы предоставить не получается.
Я не сравниваю ничего, автор экспертом не стал, но а) - может ему и не надо, и б) - свое баблишко можно заработать без боли и страдания. Это реально рациональное решение в текущих условиях.
> жалею что ...Пишите слово "по-моему, субъективно и тп". И будет вам радость.
У меня есть кейсы и где задроты инженеры в итоге никакого профита не приносили ни компании ни проекту, хотя также кидались умными словами и наоборот люди далекие от айти ради денег неплохо поднимались в профессии, статистику тем не менее не делаю и не обобщаю.
Зайдите на их проф форумы/чаты/сайты - наверняка найдете