за сколько можно стать middle программистом

Кто такой мидл и как им стать

Если вы это читаете, у вас больше шансов, чем у остальных.

Послушать аудиоверсию этой статьи (6 минут):

Чем мидл отличается от джуниора

Джуниор — новичок или стажёр, который пришёл в компанию и только учится работать в команде. У него мало опыта, он не в курсе всех тонкостей проекта, поэтому ему поручают только мелкие или несложные задачи: поправить размер кнопки, проверить, приходят ли на сервер нужные данные, или написать проверку для формы на сайте. Если что-то не так, джуниор идёт к старшим товарищам за советом.

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

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

В чём сила мидла

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

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

Почти весь основной код в каждом проекте написан мидлами.

Как им стать

Иногда говорят, что есть формальные критерии для мидла и что через 2–3 года работы джуниором человек автоматически становится мидлом, но это не так. Чтобы перейти на следующую ступень, программист должен освоить все рабочие инструменты и понимать, когда применить каждый из них.

Например, если это фронтенд, то мидл должен отлично знать HTML, CSS, JavaScript, PHP, уметь работать с препроцессорами, базами данных и знать отличия в отображении страниц в разных браузерах. А если мы говорим про бэкенд-разработчика, то к этому добавится Python, API нужных сервисов, фреймворки для решения разных задач и знание серверных приложений.

Вот что ещё может делать мидл в компании:

Самое главное — мидл понимает, почему он делает именно так и почему это будет оптимальное решение для проекта.

Сколько зарабатывает мидл

Мы посмотрели зарплаты мидлов разных направлений на Хабр Карьере за второе полугодие 2019 года:

Это в полтора-два раза выше, чем у джуниоров.

Что дальше

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

О том, кто такие сеньоры — в следующей статье.

Источник

Как джуниор Python-разработчику стать мидлом за год

Привет! Я Рома, менеджер продукта в Яндекс.Практикуме, где развиваю курс «Мидл Python-разработчик». Мы делаем из начинающих разработчиков крепких мидлов с инженерным мышлением. Сегодня хочу поделиться небольшими заметками о том, над чем стоит работать, если вы джуниор, который хочет стать мидлом.
за сколько можно стать middle программистом. image loader. за сколько можно стать middle программистом фото. за сколько можно стать middle программистом-image loader. картинка за сколько можно стать middle программистом. картинка image loader. Если вы это читаете, у вас больше шансов, чем у остальных.
Я не разработчик, поэтому эта статья во многом отражает взгляд со стороны. Ответить на вопрос «Как джуниор Python-разработчику стать мидлом за год?» — не такая простая задача, как может показаться на первый взгляд. Здесь спряталось сразу несколько челленджей:

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

Какой ты джун

Итак, начнём закрывать наши челленджи. Первый — определиться, кто такой джуниор-разработчик и что он умеет. Давайте посмотрим, какие вообще бывают джуны.

Юнлинг

Первый этап развития начинающего разработчика — стажёр. Это ещё не полноценный джун — скорее его MVP. На этом уровне человек знает основы языка, но практики программирования у него нет. Его не нужно учить синтаксису — его нужно учить пользоваться языком, применять его в решении реальных задач. Чтобы дать стажёру задачу, нужно детально её расписать: сделай A, B и С, возьми такую технологию и используй вот этот приём.

Стажёры обычно не занимаются задачами, которые важны для проекта. Их бросают, например, на техдолг. Если накосячат, компания не потеряет деньги. Зато если исправят мелочи, на которые не хватает времени у более старших разработчиков, то принесут проекту много пользы. Попутно набравшись опыта.

Падаван

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

Давайте посмотрим на развитие этой стадии чуть подробнее.

Новичок

Разработчик, который буквально вчера принял своей первый оффер и уже жаждет влиться в команду и закрывать таски. Джун-новичок обладает достаточным набором академических знаний, чтобы выполнять простые задачи. Он умеет работать с документацией и может вытащить оттуда что-то полезное. Но знания процессов разработки больше теоретические, что приводит к ошибкам на разных стадиях написания кода. На этом этапе развития человек всё ещё учится тому, как применять язык для решения коммерческих и прикладных задач. Нормально, что он приходит к старшим коллегам и говорит: «У меня что-то ломается. Не могу это сделать. Помоги!» Ведь лучше задать вопрос, чем уйти в себя, не показать никакого результата и подвести команду.

Обыкновенный

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

Но как только готов план, вы можете жить в нём как минимум в рамках одного рабочего дня — с вами не нужно заниматься микроменеджментом. Вы начинаете понимать, какие проблемы сможете затащить своими силами. Всегда стараетесь достигнуть результата самостоятельно, изучая документацию, и идёте к тимлиду уже с более глубокими вопросами, чем просто: «Не работает — не знаю, что делать». Здесь должно появиться: «Я попробовал то и вот это, но не получилось. Нужна помощь, чтобы понять, почему так происходит и где ещё поискать решение».

Крепкий

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

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

Рыцарь-джедай

И вот он — заветный уровень мидла. Здесь человек превращается в самоходную боевую единицу в команде. Тимлид уверен, что, если даст задачу мидлу, она точно будет сделана.

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

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

Резюме роста

за сколько можно стать middle программистом. image loader. за сколько можно стать middle программистом фото. за сколько можно стать middle программистом-image loader. картинка за сколько можно стать middle программистом. картинка image loader. Если вы это читаете, у вас больше шансов, чем у остальных.

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

Представьте, что вы попали в исследовательский центр Британской Секретной службы в качестве инженера. Вашей команде нужно разработать машину для одного известного любителя коктейлей. Грейды инженеров в британской разведке такие же, как у нас в разработке: джуниор, мидл, сениор, тимлид, CTO.

за сколько можно стать middle программистом. image loader. за сколько можно стать middle программистом фото. за сколько можно стать middle программистом-image loader. картинка за сколько можно стать middle программистом. картинка image loader. Если вы это читаете, у вас больше шансов, чем у остальных.

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

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

Мидл не будет продумывать архитектурные проблемы — как его система катапультирования будет связана с другими системами машины или какие технологии и материалы ему использовать. Проработку этой части возьмёт на себя сениор.

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

И вот мы добрались до вершины — CTO или, на местный лад, Q. Он определит общие технические требования к машине, включая специфические. Он тесно общается с заказчиками — руководством Ми-6 и самим Бондом. Поэтому знает, что спорткар должен уметь превращаться в подводную лодку, чтобы миссия прошла успешно.

Мой выбор

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

Харды

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

Итак, на что стоит делать упор в своём развитии? Вот шесть главных аспектов.

Как улучшать навык
Возможно, вы когда-то слышали про принцип «Пять почему». Попробуйте применить его в разработке. Используете какую-то новую технологию и задайтесь вопросом, почему она подходит для решения этой задачи. Получив ответ: «Потому что она работает вот таким образом», изучите, почему она работает именно так.

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

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

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

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

Софты

Фуух, с хардовой частью разобрались. А что там про софты? Что это за зверь и зачем он нужен разработчику?

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

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

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

Источник

Как перейти с джуниор позиции на мидл: личный опыт

Сегодня расскажу про свой опыт перехода с джуниор позиции Java-разработчика на миддл — «скачок с джуна до мидла», а также поделюсь чек-листом, который поможет коллегам, оказавшимся в такой же ситуации.

Два года я работал в одной конторе на позиции джуна, но роста там особо не было. Надеялся, что скоро закончу магистратуру, и меня повысят до милда. Но этого не произошло. К слову, бакалавриат я закончил в СПбГУТ им. М.А. Бонч-Бруевича, факультет инфокоммуникационных сетей и систем, но знаний, которые можно непосредственно применять в современной продуктовой разработке, к сожалению, не получил. В программировании на Java я самоучка, и технический бэкграунд мне сильно в этом помог. Java изучал на практике, вникая в документацию и смотря ролики на ютубе.

Почему я ушел с предыдущей работы

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

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

Поиск новой работы

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

Собеседовался в EPAM и Luxoft. Эйчары максимально старались завлечь, рассказывая про крутые офисы, движуху внутри компании, ДМС и всякие “плюшки” в виде оплаты спорта и конференций. Но в итоге, так и не смогли ничего предложить по работе, потому что у меня не было опыта работы со Spring.

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

Новая работа

Сдаваться я не собирался, поэтому продолжал проходить собесы. Благо дистанционка, и можно было проходить хоть по 5 собеседований в день. И удача, после второй сессии тех. собеседования меня позвали сразу 2 компании — МТС и Цифровые Привычки.

Казалось бы, между МТС и неизвестной компанией выбор очевиден, но все оказалось не так просто. Цифровые Привычки к тому моменту успели выиграть несколько тендеров Сбера на 400 миллионов рублей и начали активно расти. Я думаю, все понимают, что вкатиться в айти компанию на стадии активного роста = получать достойную зп, так как из-за дефицита Java-разработчиков на рынке компания готова хорошо платить, когда у нее есть крупные проекты, на которые требуется больше сотрудников. Мое решение в пользу ЦП было также подкреплено бесплатным обучением по Java, которое в дальнейшем помогло в работе на проекте.

Чек-лист Middle Java Developer

Данный чек-лист основан на моем личном опыте в разработке, опыте прохождения технических собеседований и тех знаниях, которые я получил на обучении. В нем будут те ключевые навыки, которые помогли мне получить должность мидл разработчика. Условно разделю их на hard и soft skills.

Hard skills

Понимание технологического стека проекта, на который ты собеседуешься.
Нужно действительно разбираться в наборе инструментов, которые применяют в работе на проектах, а также важно четко ответить на теоретические вопросы о конкретном применении того или иного инструмента на тех. собеседовании. Например, в моем случае было важно знать JavaSE, JavaEE (JAX-RS, JAX-WS, JMS), Spring framework (Core), SQL, Maven, GIT, XML/XSD.

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

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

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

Знание различных методологий разработки.
Как минимум, нужно понимать, чем отличаются Agile, Scrum и Cascade, чтобы при выходе на проект было проще включиться в работу.

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

Soft skills

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

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

Способность оценить трудозатраты.
Этот навык поможет избежать невыполнимых обещаний, после которых тебе придется работать по 20 часов в день, чтобы сдать проект в срок, который ты сам озвучивал.

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

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

Также ниже прикрепляю ресурсы, которые помогли мне при подготовке к собеседованиям на Middle Java Developer.

Ресурсы для подготовки к собеседованию

Сайты, где можно найти самые часто задаваемые вопросы на собеседованиях:

Источник

Разница между «джуном», «мидлом» и «сеньором». И что делать, чтобы перейти на уровень выше

за сколько можно стать middle программистом. . за сколько можно стать middle программистом фото. за сколько можно стать middle программистом-. картинка за сколько можно стать middle программистом. картинка . Если вы это читаете, у вас больше шансов, чем у остальных.

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

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

Знания

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

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

за сколько можно стать middle программистом. 7c870d2d12204e2e3369b5f1a6856411. за сколько можно стать middle программистом фото. за сколько можно стать middle программистом-7c870d2d12204e2e3369b5f1a6856411. картинка за сколько можно стать middle программистом. картинка 7c870d2d12204e2e3369b5f1a6856411. Если вы это читаете, у вас больше шансов, чем у остальных.
Фото — Clem Onojeghuo, площадка Unsplash

Программирование

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

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

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

Как вычислить «джуна»

Младшие разработчики неопытны: иногда это выпускники, которые только начинают работать на полную ставку. В их голове основная задача — заставить код работать. Если приложение работает — значит, оно хорошее.

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

Младшие разработчики сосредотачиваются на «компьютерной» части кода, упуская из виду «человеческую».

Как пишут код «сеньоры»

Глядя на код старшего разработчика, можно подумать: и это всё? А где остальное? Достаточно опытный разработчик пишет простой, понятный и, возможно, местами даже чересчур прямолинейный код — и это одно из самых важных качеств, если говорить о программировании. «Сеньор» следует принципу KISS, гласящему, что код должен быть простым и понятным: «Keep it simple, stupid»

Поэтому у старшего разработчика совершенно другой подход к написанию кода: он учитывает удобство дальнейшей поддержки и масштабируемость. Это совершенно не похоже на мышление младшего разработчика: «сеньор» думает о тех, кто будет работать с кодом, а «джуну» важно в первую очередь заставить код работать.

Не программированием единым

Помимо навыков программирования, есть и другие факторы, которые могут подсказать, что за разработчик перед вами.

Младшие разработчики, как правило, выполняют самые простые и не самые важные задачи; они не занимаются разработкой архитектуры. Разработчики среднего уровня тоже не разрабатывают решения, а просто выполняют задачи, однако их меньше контролируют — если задание довольно типовое. А вот «сеньоры» могут разработать приложение совершенно самостоятельно.

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

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

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

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

А вот в случае «джунов» не следует ожидать, что они смогут задавать нужные вопросы: у них недостаточно практики, поэтому ими должны руководить более опытные коллеги. Младшего разработчика следует обеспечить необходимыми ресурсами или хорошенько подтолкнуть в правильном направлении.

Переход на следующий уровень

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

От «джуна» — к «мидлу»

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

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

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

От «мидла» — к «сеньору»

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

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

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

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

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

Заключение

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

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

«Джуну», чтобы расти дальше, нужно постараться научиться писать простой код и пройти через несколько полных циклов разработки. Чтобы подняться выше среднего уровня, нужно сосредоточиться на изучении чего-то большего, чем просто рутинные задачи по исправлению ошибок. Вы должны быть готовы брать на себя самые сложные задачи и полностью овладеть своим техническим стеком. Еще одна обязанность старшего разработчика — выручать менее опытных.

Напоследок процитирую Мартина Фаулера:

«Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку»

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией игр, приложений и сайтов на 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *