4 года назад я решила уйти из маркетинга и начать работать фронтенд-разработчиком. Расскажу о том, как искала первую работу, как жила на 30 тысяч в Москве, как обучалась, как устроилась фронтом в Prequel и что сделала бы иначе, окажись в той же ситуации. Также всем желающим могу рассказать, как выровнять блок по вертикали))Если подумываешь о переходе в разработку или хочешь поностальгировать по своим славным джуниорским временам, то велкам) В далеком 2007 году я заканчивала экономический факультет Тверского университета, у нас был курс информатики на семестр, где 3-4 занятия были посвящены html и css. Преподаватель объяснила основы табличной верстки, без адаптива, на уровне “Цвет текста можно поменять вот так, а картинку вставить вот так”. Далее в голодные студенческие годы я начала заниматься фотографией и для поиска клиентов сделала свой первый сайт на Joomla. Отсутствие способностей к дизайну, несколько лекций по табличной верстке и случайно купленная книжка с маркетинговым названием “Как сделать сайт, продвинуть его и начать зарабатывать” дали свой ужасающий по стилю, но вполне работающий результат. Вычитанные в этой книге советы по SEO сработали, удалось продвинуться по некоторым средне- и низкочастотным запросам, например, “деловая фотосессия”, помогло еще и то, что я жила в городе на 400 тысяч человек с умеренной конкуренцией в фотографии. Однако после универа и переезда в Москву заниматься фотографией стало сложнее – отработать полную неделю в Москве, а на выходных встать в 5 утра на съемку свадьбы было тяжеловато физически. В одну из суббот, отсняв армянскую свадьбу на 200 человек, я осознала, что с фото пора завязывать.Дальше была попытка работать по специальности, однако я снова пришла к SEO и 2,5 года отработала в агентстве SEO-шником, но со временем меня перестало устраивать, что в оптимизации сложно отследить точное влияние своих действий на результат. Одновременно вокруг росло количество курсов, обещающих, что ты станешь Senior Java Developer за 2 недели (нет) и друзей-программистов, обещающих 150к уже через полгода (нет, нет, нет). Я самоуверенно решила, что верстку и так знаю, купила книгу по JavaScript и начала читать и делать упражнения. Дополнительно посмотрела пару уроков на Youtube “Как сделать сайт за 2 часа”, повторила за авторами, получила несколько лендингов. Через пару месяцев отправилась на поиски работы, сайтики с видео-уроков представила как свое портфолио, но не скрывала, что сделаны по обучающим видосам. На тот момент я уже жила в Москве, 2018 год, вакансий на джуниор фронтов на хедхантере было достаточно, и я вышла на охоту. На собеседования меня звали охотно, благо я указала в резюме и верстку, и Бутстрап, и начальное знание JS. Трех собеседований с отказами мне хватило для того, чтобы понять, что верстку все-таки придется освоить нормально. Мне задавали вопросы по флексам, по адаптиву, просили написать обработчик на кнопку, открывающий модалку, и я откровенно плавала. Для самооценки приятного было мало, однако мои интервьюеры были очень деликатными ребятами, и подробно объясняли мне ответы на свои вопросы. Я снизила планку, и начала ходить на собеседования на верстальщика, на одном из них меня посадили за комп, сказали сверстать форму, сделать ее отправку на почту и нарисовать баннер. Компании нужен был и верстальщик, и php-разработчик, и дизайнер. Я предупредила, что ни к дизайну, ни к php отношения не имею, но мне сказали “Нарисуй и напиши хоть что-нибудь”. Как ни странно, туда меня и взяли на 30 тысяч.Там был жесткий график, выговоры за опоздание с обеда на 3-4 минуты, не было гита, верстать было почему-то принято не в редакторе кода, а сразу админке, но мне было не с чем сравнить, я приходила в восторг, когда видела свой код на проде (это было несложно, потому что работали мы сразу на проде, тестовых стендов не было). Но мне категорически не хватало 30 тысяч. После короткого испытательного я попросила прибавку, руководство ответило, что повышение возможно, если я смогу повысить продажи, и я снова отправилась на хедхантер спустя три месяца работы. На удивление работу я нашла с первого или второго собеседования. Скорее всего, сказалось то, что для начинающего даже три месяца опыта – это срок, за который происходит значительный для уровня новичка скачок, много успеваешь попробовать и узнать. Также сказались мои невысокие хотелки по зп – 40 на испытательном и 50 после него вполне вписывались в мои желания, а гибкий график с началом дня с 9 до 11 и бесплатные обеды от компании вообще были сказкой) так я устроилась верстальщиком в агентство. Из приколов на одном собеседовании в ходе нетехнических вопросов про мое дальнейшее видение карьеры меня резко спросили, сколько будет три разделить на восемь. В такие моменты чувствуешь, как у тебя в голове образуется звенящая пустота на полминуты)) Так же были задачки типа написать метод, вычисляющий квадратный корень, без использования встроенных методов и прочие синтетические вещи. Огромный плюс в том, что 95% собеседований можно было проходить удаленно, не теряя времени на дорогу. Если дело шло к офферу, я спрашивала, можно ли приехать посмотреть офис. Один раз это оказалось очень не зря, я уже была готова принять оффер, но офис компании оказался двумя комнатами в коворкинге без окон и без возможности иметь постоянное рабочее место. В агентстве, куда я устроилась, велась разработка на Битриксе, нам приходили макеты, мы верстали и отдавали программистам натягивать верстку на Битрикс и писать логику. Первые полгода каждый день был открытием, особенно когда требовалось править баги в чужой верстке. Подключить и настроить слайдер, вставить Яндекс карту не фреймом – все было в новинку.  Из плюсов агентства – успеваешь набраться опыта даже за короткий срок. Я отработала там полтора года, и чего только не было – и клиент, желающий сайт под IE9, и дизайнер клиента, обожающий PixelPerfect, и баги от тестировщика в формате “Если истерично кликать мышкой более 10 раз по этой кнопке, то модалка закроется на 11-м клике, плавающий баг, но надо исправить” (реальный баг). Такого разнообразия, как агентстве, не было нигде – с утра надо оценить, как долго будешь делать анимацию svg на 6 тысяч элементов на скролл, далее срочно идешь разбираться с задачей “Клиент хотел изменить шрифт, у него пропала корзина в мобилке, продажи стоят”, а после обеда наконец приступаешь к основной задаче на день. Однако работа на 85-90% состояла из верстки, а JS оставался на уровне кастомизации готовых библиотек и простого кода на JQuery. Мне нравилась верстка, но хотелось попробовать и что-то более сложное.Я выбрала курсы, классический курс по JS на 2 месяца с еженедельными лекциями и работой с наставником. Результатом курса должен был стать сайт-приложение с планером путешествий на чистом JS. Первые 3 лекции зашли на ура, но дальше объем кода вырос, я стала наталкиваться на свою же плохую архитектуру, костылить, путаться и тд. Наставник отвечал на вопросы подробно, но в основном общими фразами, скорее всего, ему не очень хотелось каждую неделю заново погружаться в тот хаос, который пытался написать каждый из его студентов и вспоминать, у кого что лежит в переменной list, и в переменной block)) Дальше стали появляться продуктовые вопросы к приложению – а как мы должны обработать ситуацию, если пользователь изменил даты в середине поездки и прочие вопросы, на которые ни у преподавателей, ни у наставников ответов не было. Оказалось, что это приложение взято в курс впервые, еще на прошлом курсе был другой проект, и пока острые углы еще не сглажены ни технически, ни продуктово.В общем, я окончательно закопалась в коде и продуктовых вопросах, и бросила этот курс где-то на 60%, тем более, что к тому времени у меня стало появляться все больше проектов на фрилансе, которым я занималась по вечерам после основной работы. Мой первый заказ на фрилансе случился, когда я едва знала верстку, требовалось сверстать 5 форм на 5-6 полей каждая. Заказчик сам работал фронтом, искал кого-нибудь в помощь. По деньгам он попросил меня оценить задачу самостоятельно. В ответ на мое скромное "2 тысячи" сказал "Ну и цены у вас, давайте за косарь". Для меня это было "Ооооо, мой первый фриланс!", конечно, я согласилась.  Далее я 5 дней шарашила эти формочки. Оказалось, что "валидация форм" – это не только прописать атрибут required в верстке, а уж когда я столкнулась с тем, что плейсхолдер должен не исчезать при вводе, а уменьшаться и плавно отъезжать вверх, оставаясь подсказкой – это была задачка века. Потом выяснилось, что нужно запретить пользователям вводить буквы в поле телефона. Неожиданно, правда?))  Сейчас все это кажется смешным, но в те 5 дней я чувствовала себя разработчиком последнего суперджета – мне казалось, учесть все невозможно. Заказчик – спасибо ему человеческое – где-то помогал и подсказывал, потом прислал подробный список правок с комментариями в том числе и по организации кода. Оплатил. Помню, я тогда даже несколько раз переходила на их сайт и проверяла, есть ли там мои формочки. Первый косарь потратила на бешбармак, ездила в отпуск в Киргизию.  Дальше я набрала опыта, посидела на сайтах фрилансеров. Получать заказы без опыта и рейтинга помогало первое сообщение формата “Добрый день, могу сделать заказ в такие-то сроки, также обратила внимание, что слайдер на главной странице у вас не работает в Internet Explorer, могу пофиксить это и заодно убрать проблему в адаптиве у карточки товаров”. Конверсия в заказы была небольшая, но была. После 2-3 выполненных работ для одного заказчика иногда уходила с биржи на личное общение, заказчик не хотел тратить деньги на комиссию бирже. Мне повезло, ни разу не кидали с деньгами. Обычно договаривалась примерно на 1200-1400 за верстку страницы на 4-5 блоков без хедера и футера. Далее меня стали активно рекомендовать знакомые и у меня появились постоянные заказы сначала на верстку, а потом и на разработку на фрилансе. Оплачивались не очень значительно, но их было много, а мне было в кайф – после работы я приходила домой и могла до полуночи или до часу ночи заниматься фрилансом. Если это была простая верстка, я занималась ей под сериальчик, если компоненты и логика на Vue – то под сериальчик уже не получалось, зато это были дополнительные стимулы для развития.  Основную работу и фриланс я совмещала, наверное, года 2-2,5. На данный момент я не беру заказов на фриланс, фокусируюсь на работе в Prequel и небольшом самостоятельном обучении. Мои способы в порядке уменьшения полезности: Коммерческая разработка. Для меня нет ничего более эффективного, чем боевой опыт в реальной команде и желательно оффлайн. Никакие курсы и пет-проекты не дадут понимания, как все работает на самом деле, как взаимодействовать с несколькими фронтами на одном проекте, как синхронизироваться с бекендом и т.д. Единственный недостаток – сложность с поиском работы без опыта. Ну и нервно бывает, особенно первое время) Однажды я сменила работу в первый день большого карантина 2020 года, и несколько первых месяцев работала только онлайн. Так мне было гораздо сложнее вливаться в проекты. Сейчас стараюсь выбирать гибридный график. Видео на ютубе. Неожиданно, но для меня смотреть видео формата “Как сделать лендинг за 2,5 часа” или “Пишем за 4 часа приложение на Vue3” оказались довольно эффективными при условии, что я не просто смотрела, но и повторяла за автором. Когда на 15-ой минуте трехчасового видео у автора все отлично работает, а у меня падает сборка, это неприятно и очень полезно – ищешь ошибки, сравниваешь свой код с кодом автора, гуглишь. Основная польза – узнаешь про технологии, про которые сам бы не догадался погуглить. Курсы. Несмотря на мой не самый удачный опыт обучения на курсах, я очень рекомендую этот способ, как один из самых системных. Если человек на начальных этапах обучения, то адекватные курсы – топ. Там дадут ту самую систематизацию, которую очень сложно наработать отрывочными знаниями из статей и отдельных видосов. По продолжительности, 2-3 месяца с занятиями в пару раз в неделю, мне кажется, оптимально. 6-9 месяцев многовато для новичка, можно 10 раз перегореть. Также я пробовала преподавать на курсах, была наставником на 9-недельном курсе по основам верстки, провела несколько курсов, у меня было 9 студентов. Этот опыт оказался очень ценным, позволил столкнуться с проблемами, с которыми я никогда сама бы не столкнулась. Однажды мне нужно было помочь своей студентке решить конфликты в гите, она умудрилась создать эти конфликты в svg-картинках, работая одна в своем репозитории. Сложность была не в решении конфликтов, а в том, что это нужно было объяснить человеку, который познакомился с гитом 2 дня назад. Ушла из наставников после третьего курса из-за очень низкой оплаты – 600 рублей в час, при этом оплачивалось только 5 часов. Все остальное взаимодействие со студентом велось бесплатно, либо можно было отказать студенту в помощи. А 5 часов на 9 недель это очень мало, первое время я помогала бесплатно, но потом решила завязать с курсами, а жаль, преподавать мне очень нравилось. Онлайн-тренажеры. В целом, могут посоперничать с курсами по эффективности, но бьют в разные цели. Если курсы работают на системность, то тренажеры наоборот позволяют получить и потренировать точечные знания. Для меня оптимальны тренажеры, где дается страничка теории и далее упражнение на нее. Сталкивалась как с максимальным разжевыванием и упражнениями формата “напишите метод, возвращающий палиндром строки”, так и с упражнениями на 2 часа на одну задачу, причем и то, и то на одном и том же ресурсе. Но и то, и то полезно. Книги. Если делать упражнения из книг, то эффект будет, однако язык развивается очень быстро, и информация может быть слегка устаревшей. Конференции. Для такого интроверта как я понятия “нетворкинг” не существует, ну и для обучения конференции не слишком эффективны – часть докладов состоит на 95% из воды и фраз “Мы повысили конверсию в 500 раз, но как мы этого добились рассказать не можем – NDA”. Однако ходить на оффлайн конференции интересно, иногда попадаются классные доклады, вкусный кофе, ну и нельзя недооценивать возможность небрежно упомянуть о прошедшей конфе на очередном созвоне с коллегами. Иногда конференции в Москве проводятся в офисах крупных компаний, и присутствующие получают возможность увидеть офис Яндекса, Озона, Газпромбанка и т.д. В общем, конференции очень рекомендую, несмотря на низкий обучающий эффект. Жаль, что сейчас они в большинстве переехали в онлайн. С конференциями у меня был опыт  с другой стороны – однажды руководитель предложил мне самой выступить от лица компании на конференции. Ездила в другой город, выступала перед студентами, и для меня это был очень приятный, волнующий и интересный опыт. Такое я бы повторила и в будущем. За пределами списка напишу про обучающие игры типа CodeCombat, потому что это отдельная история) игрок движется по карте, решая небольшие задачки, в которых персонажу нужно сортировать массив орков, убивая в первую очередь самого сильного, фильтровать песчаных яков и т.д. Для обучения может быть эффективно только для новичков, но поиграться забавно, если у вас есть лишнее время. Будьте готовы к соответствующим вопросам от начальства, если кто-то увидит открытый  CodeCombat на вашем рабочем компьютере) В целом, чего я только не пробовала для обучения, иногда оно начинало буксовать без видимых причин. Для текущих работ и фрилансов знаний хватало, новое вроде бы было интересно, я пыталась вникать, но развитие шло медленно. С каким-то притеснением по половому признаку я не сталкивалась практически никогда, максимум шутки и вопросы на собеседованиях “А как вы относитесь к мату и шуткам 18+?”, на который сложно сдержаться и не ответить в тон).Насчет отношения именно к фронту как к сфере деятельности видела где-то в комментах: Да фронты только и делают, что формочки верстают Ну так и про бек можно сказать, что вы только и делаете, что туда-сюда json-ы на лопате носите Такие шуточки не редкость, но наверняка с подобными сталкиваются и php разработчики, и 1с-ники, мне такое не кажется обидным. В начале 2021 года на Хедхантере мне написали ребята из Яндекса, пригласили на первое собеседование, предупредили, что мне предстоит 1,5 часа лайфкодинга и решения задач. На подготовку у меня было 7 дней, и меня неожиданно пробило на изучение. Я гуглила “Вопросы на собеседованиях Middle frontend разработчик” и разбиралась с теми, на которые не могла ответить – нормально читала теорию и дальше отправлялась на CodeWars решать задачки на эту тему. Я учила дома, учила на работе, учила в электричке по дороге в гости к родителям. У меня наконец-то резко выросла мотивация разобраться с контекстом, лексическим окружением и макротасками, в Яндекс очень хотелось.В итоге с Яндексом не сложилось – и я не дотянула по техническим знаниям, и в процессе общения с сотрудниками компании открылась пара моментов, которые меня не совсем устраивали.Однако процесс пошел, новые знания закрыли белые пятна и легли на имеющиеся знания и опыт, и эффект сразу же появился на следующих собеседованиях. Оказалось, что не только вопросы повторяются, но и задачки для лайфкодинга весьма похожи, а даже если не похожи, то 50 решенных задач на алгоритмы, методы работы с массивами, промисы и ООП все равно дают переход от “Этого я не знаю, никогда с этим не работала” до “О, точный ответ я не знаю, но работала с аналогичным, можно сделать вот так, а еще работала с похожим функционалом, и там подобные задачи решались тем-то”. Каждый 3-4 собес начал заканчиваться оффером, что было весьма приятно. Вакансию Prequel я нашла на HH, почитала про компанию, про сферу деятельности – обработка фото и видео, вспомнила свои студенческие подработки в сфере фотографии и установила себе приложение Prequel. Ребята искали фронта на Vue, я подходила по требованиям, откликнулась, со мной связались и назначили техническое собеседование в тот же день. Собес с моим будущим руководителем Сергеем начался с фразы “Привет, давай поговорим как фронт с фронтом”, и мы погнали по вопросам. Техническое собеседование длилось минут 40, прошли по теории, я порешала задачи по чистому JS, также была задача на исправление компонента Vue. Уже через час после окончания собеседования вернулся HR с положительным ответом, и мы договорились о собеседовании с CTO через день.На втором собеседовании ребята рассказывали про процессы, про график, про предоставляемое оборудование, про оформление в белую. Там же я узнала о прикольной возможности поехать на пару недель в Калининград, где у Prequel тоже есть офис, и поработать оттуда. На следующий день после созвона с CTO я получила оффер, взяла время на подумать и договорилась о визите в офис. Посещение пришлось как раз на переезд, ребята только-только переехали и осваивали новый офис в Москве на Библиотеке Ленина. Меня встретила офис-менеджер София, показала рабочее пространство, диванчики, переговорки, кухню, рассказала про йогурты от компании в холодильнике (на этом месте я поняла, что надо соглашаться на оффер))). Так я устроилась в Prequel. Мой классический грейд джун-миддл-сеньор назвать сложно, потому что понимание этих грейдов в разных компаниях различается кардинально. Была компания, где я прошла собеседование и устроилась миддлом фронтом, но в обязанности входила в основном верстка, просто не было задач по фронту. После этого я пришла джуном в другую фирму, но на большие деньги и задачи были уже именно на js и vue.js. Расскажу по деньгам – мой максимальный оффер за все время поисков был на 185 к грязными, но с той компанией не сложилось по другим условиям работы, требовалось посещение офиса 5 дней в неделю. И этот оффер был не в первый и не во второй год работы – курсы врут про 150 к через три месяца)Сейчас я работаю в Prequel, и очень рада тому, что я здесь. У меня гибридный график с возможность работать как из дома, так и из нового офиса в центре Москвы, и действительно классные задачи. Я нашла свой баланс в плане сложности – 65-70% задач мне знакомы, и я занималась аналогичными раньше, а с остальными сохраняется эффект – с утра не представляла, что такое, например, протобафы, а к вечеру уже научилась ими пользоваться. Аналогично – есть проекты на знакомом и привычном Vue 2, но есть и на Vue 3, с которым раньше я сталкивалась только в учебных целях. В целом оставила бы все как есть) Может, скорректировала только следующие моменты: Если бы была возможность найти хорошего ментора и общаться с ним пару раз в неделю, так бы и сделала. Это бы избавило меня от попыток изучать бутстрап, не понимая, как работают медиа-запросы в стилях, и от скомканного изучения JS на начальных этапах, когда и основы, и прототипы, и контекст – все в кучу. Выучила бы теорию не перед собеседованием в Яндекс, а еще 2 года назад. Мне всегда казалось, что нормально глубоко разобраться с теорией – это годы. Скорее всего, это и правда так, но при этом закрыть свои основные белые пятна – хватило недели усиленных занятий. Больше бы ходила по собеседованиям – вопросы на них очень сильно повторяются. Например, в 2021 году редкий собес обходился без вопросов про отличия var и let и про известные мне способы работы с массивами. Если после собеседований тратить 10-15 минут на изучение каждого момента, на который не смогла ответить, то на следующем собеседовании на него будет готов хороший ответ. Сразу скажу, что этот способ – это скорее читерство, чем изучение JS. Но я считаю коммерческую разработку в реальной компании лучшим способом прокачки своих навыков, плюс этот способ – это скорее шлифовка и закрывание белых пятен, чем возможность получить хороший оффер с нулем знаний – если просто заучить ответы на большинство вопросов, то спалят на любом дополнительном или перефразированном вопросе. А еще я бы меньше переживала и раздумывала о том, что рынок сейчас полон, джунов огромное количество, а стоит ли пробовать, а получится ли. Ну и меньше сомневалась бы в своих силах, чего и вам советую. Жизнь одна, работа занимает значительную ее часть, а каждое утро просыпаться и идти к рабочему компу с приятным предвкушением чего-то интересного определенно стоит того, чтобы пройти через все сложности смены специальности. Удачи!