Курсов и историй про то, как развиваться на старте карьеры в IT, в интернете полно. Но как быть, если ты уже хороший специалист и хочешь большего? С чего вообще начать и с какой стороны подступиться к росту и обучению? Мы поговорили с Алёной Батицкой, фронтенд-разработчиком, фрилансером и эдьюкейтером. Она учитель по образованию, сотрудничает с несколькими онлайн-школами и расскажет про то, как оценить свои навыки, кто поможет составить план развития и почему важно соблюдать гигиену обучения. Передаем ей слово. Важно понимать, что все это принятое разделение на джунов, мидлов и сеньоров на самом деле очень условное. В каждой компании критерии разные, и нет никакой возможности всех причесать под одну гребенку. Ты можешь год работать сеньором, а потом в другую компанию едва пробиться на мидла. Иногда внутри компаний есть какие-то четкие критерии: по таким-то навыкам ты считаешься джуном, по таким-то — мидлом. Это дает хоть какие-то примерные ориентиры. Но иногда нет и их, и ты просто пытаешься как-то понять это для себя. В некоторых других профессиях проще. Электрик может пройти аттестацию и повысить разряд. Пилоты получают корочки по очереди, сдавая экзамены. В IT такого нет (хотя я думаю, что когда-нибудь появится), и пока мы можем только примерно прикидывать эти уровни и говорить о них на самом деле довольно абстрактно. Так что и в статье речь пойдет о тех самых «условных мидлах» — и только вы сами сможете решить, подойдут вам советы отсюда или нет. Даже в условиях неопределенности нужны какие-то ориентиры. В целом оценивать свой уровень можно по нескольким критерием. Трек развития. В крупных компаниях, как я писала выше, обычно есть четкие критерии соответствия тому или иному уровню. Часто они открытые, или их можно попросить у своего тимлида. Просто открываешь, смотришь и оцениваешь, на каком ты уровне. По крайней мере, по меркам этой компании. Ответственность. В комьюнити очень широко распространена простая классификация: Джун делает задачи под присмотром. Мидл — самостоятельно. Сеньор — делает их самостоятельно и может задачи ставить (по крайней мере понимает, как это делать). В целом она понятная, но абстрактная. С простыми задачами со временем и джун начинает справляться сам, а ставит таски далеко не каждый сеньор. Но примерно на это тоже можно ориентироваться. Границы компетенции. Этот критерий удобнее разобрать на примере. Представим шуточную классическую задачу «поменять цвет кнопки»: Джуниор просто возьмет и поменяет. Мидл тоже поменяет — возможно, во всем проекте, сразу везде, где надо. Сеньор должен задать вопрос: «Как это повлияет на продукт?». Подумать, что еще можно сделать. И понять, а нужно ли это делать вообще. То есть сеньор мыслит за пределами своей фактической зоны ответственности — на уровне продукта, а порой и бизнеса, в зависимости от компании. Первое, что тут хочется сказать — расти до сеньора совершенно не обязательно. У нас сложилась очень достигаторская культура, но если нормально просто писать код и не рваться наверх — это ОК. Я не раз видела людей, которые шли до сеньора или даже тимлида — а потом возвращались на мидла, чтобы просто кодить. Так что расти просто ради роста не надо — только если очень хочется. Но что делать, если все-таки хочется и ты себя уже оцениваешь как мидла? О технических навыках поговорим позже, а сейчас попробуем задать общее направление развития. Вот что, на мой взгляд, стоит развивать: Насмотренность и «натроганность» кода. Чтобы стать сеньором, недостаточно очень долго проработать в одной компании и досконально изучить ее код. Важно посмотреть, а желательно и потрогать как можно больше разных кодовых баз — представлять их развитие и, может быть, даже немного с ними поработать. Это важно потому, что идеальное знание одного продукта или кода не сделает тебя ценным на рынке. Чтобы тебя реально оценивали выше мидла, нужно всеми способами выходить за рамки одной кодовой базы: Ходить к коллегам и смотреть, что у них там как работает. Вписываться в OpenSource-проекты — хотя бы смотреть, а лучше прямо контрибьютить. Создавать свои пет-проекты, в которых можно попробовать новые и незнакомые штуки. В основной работе пытаться пробовать новые фреймворки и технологии, если есть такая возможность. Такая «натроганность» точно сделает тебя ценнее на рынке плюс научит легче вникать в любые новые технологии. А еще даст понимание того, какие вещи разработчики используют на самом деле, а не в идеальных мечтах об оптимальных решениях. Общие знания. На уровне сеньора просто писать код часто недостаточно. Нужно понимать парадигмы, общие принципы и подходы. Ведь любую задачу можно решить огромным количеством способов — и на этом уровне вам уже важно выбирать решение, которое будет изящным и оптимальным. Простой пример из верстки. Текст на картинку можно наложить абсолютным позиционированием, но это будет плохо для адаптива и поддержки. А можно с помощью гридов — все будет перестраиваться само. И так может быть в любой сфере — важно знать разные вещи и общие инструменты. Софт-скилы. Без них сейчас почти никуда: все ищут участников команды, комфортных для работы. Умение презентовать себя. У нас в русскоязычной культуре с этим очень плохо, а для сеньоров этот навык становится критичным. Нужно отбрасывать установки вроде «не хвастайся», не стесняться и уметь показывать свои достижения. Причем именно демонстрировать, что ты умеешь мыслить на уровень выше простого написания кода. Специализация. Это не навык, а скорее выбор. Нужно решить, хочешь ты качаться глубже в технические детали, например в оптимизацию кода. Или в управление — в сторону тимлида, СТО и т. п. Это сильно повлияет на то, какие навыки нужно будет поставить в карту развития, о которой мы говорим дальше. И если ты примешь решение не углубляться, то здесь, возможно, наоборот потребуется расширять свои знания. Я встречала многих людей, которые не имели высшего образования, но, дойдя до мидла, пошли в вуз, чтобы закрыть всю область знаний и понять, как все работает в комплексе. Обучение других. Неважно, пишешь ли ты статью о том, что только что узнал, менторишь ли кого-то, курируешь ли стажеров или джунов — все это помогает сильно расти над собой. Объяснение — путь к лучшему пониманию, ты сам структурируешь информацию и начинаешь видеть новые связи. Плюс часто новички задают вопросы, которые вы бы сами никогда не задали — и которые приведут к более глубоким знаниям в области. Если не знаете, с чего начать — можете приходить к нам в Доку. Это проект, где я тимлид — там мы пишем документацию для фронтендеров понятным языком. Проект опенсорсный, можно приходить и приносить свои материалы, что как раз и будет обучением других. Когда ты джун или вообще еще не в IT, все довольно просто — понятно, каких навыков тебе не хватает, а курсов по ним вокруг полно. А вот когда ты уже мидл, все становится сложнее. Единственный способ самостоятельно как-то развиваться — это составить себе четкий план, дорожную карту развития. Для этого можно сесть и изучить вакансии в вашей области, на которые ты хотел бы претендовать. Выписать оттуда незнакомые технологии и концепции. Посмотреть, как это связано друг с другом, что и в каком порядке изучить. Но тут есть риск: у тебя может не получиться. Составление дорожной карты — это компетенция, особый скил, и он есть далеко не у всех. И это нормально. В таком случае лучший выход — найти себе наставника. Это может быть: Тимлид в вашей компании. Особенно здорово, если у компании уже есть карта компетенций, и он может вас по ней провести. Просто коллега, уже сеньор, который может рассказать, что и как нужно сделать. Иногда для этого достаточно одного вечера в баре или кафе. Человек из комьюнити — программистских чатов, конференций, каких-то других мероприятий. Можно по несколько минут пообщаться с разными людьми и составить общую картину. Платный ментор — с ним может быть удобнее и комфортнее, особенно если у него есть опыт, отзывы и кейсы успеха. А еще помогает мотивация в виде оплаты. Неважно, сделаете вы это сами или с наставником — в итоге у вас на руках должна оказаться четкая пошаговая карта развития с техническими навыками.  Остается только взять их и осваивать: изучать документации и статьи, смотреть лекции, посещать конференции. А может быть, и находить курсы — по конкретным техническим навыкам они бывают достаточно продвинутыми. Что изучать — понятно, теперь надо разобраться, как. Тут дам просто несколько кратких советов, а чуть подробнее можно прочитать в моих статьях про онлайн-обучение — там я рассказывала про организацию процесса. Выделите время. Четко обозначьте для себя, что будете учиться в конкретное время: например, в понедельник, среду и пятницу по два часа вечером. Можете чаще и больше, можете реже и меньше — в этом деле важна регулярность. Так вы приучите мозг и выработаете что-то вроде рефлекса «пришло время учиться». Отлынивать от этого будет сложнее. Соблюдайте гигиену образования. В школах и университетах не просто так вводят расписание и просят отключать телефоны. Это делается не ради издевательства, а чтобы создать условия, подходящие для учебы. Дома лучше тоже воссоздать что-то такое: установить себе график, задать таймер «до звонка», отключить телефон и закрыть лишние вкладки в браузере. Это позволит гораздо глубже погрузиться в предмет и потратить меньше времени на освоение новых навыков. Сделайте обучение удобным и приятным. Комфортный стол и стул, достаточно яркое освещение — все это тоже важно. А еще вкусный чай, красивая тетрадь для записей и приятная музыка на фоне тоже будут не лишними. Или что-то другое, что создает комфорт лично для вас. Тут, к сожалению, конкретных цифр назвать нельзя: все сильно зависит от индивидуальных особенностей человека, сферы и в целом от того, кого считать мидлом, а кого — уже сеньором. Главное, что нужно понимать — времени потребуется точно больше, чем на рост от джуна до мидла. Закладывать следует минимум в два, а то и в четыре раза больше времени. То есть если до мидла вы подросли за два года, то на рост до сеньора может уйти и четыре, и восемь лет — дорогу осилит идущий. Бот getmatch, в котором можно найти вакансии — и для мидлов, и для сеньоров. Твиттер автора статьи. Проект Дока.  User