Junior и его первая роль в качестве разработчика


Оглавление (нажмите, чтобы открыть):

Что простят Junior’у в крупнейших IT-компаниях?

Мы задались вопросом: простительно ли Junior’у за счет личных качеств или мотивации не знать некоторые алгоритмы, структуры данных или технический английский? Ниже ответы на этот вопрос представителей российских IT-компаний.

Дмитрий Ейбоженко, Development Team Lead в Яндекс:

“Конечно требования к Junior разработчику будут несколько ниже, особенно это касается всяких узкоспециализированных знаний особенностей языка программирования, фреймворков, деталей реализации. В первую очередь от Junior’а требуется способность к обучению и готовность для этого много работать. А также, конечно, общая позитивность и сообразительность. Но, как раз в случае с Junior’ом, как человеком, скорее всего, недавно закончившим вуз, алгоритмы и структуры данных являются с одной стороны некоторым индикатором того, способен ли человек учиться, потому что если он их не знает совсем, непонятно, чем он занимался в университете, а с другой стороны без их понимания сложно обучать более специфическим вещам. В данном случае речь конечно о каком-то базовом джентльменском наборе, на уровне книги «Дискретный анализ» И. В. Романовского.”

Александр Горный, директор по информационным технологиям Mail.Ru Group:

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

Игорь Селецкий, CEO & Founder в Cloud Linux Inc.:

Junior’у может быть прощено всё, кроме знания только одного языка программирования. Вполне понятно, что человек будет развиваться, улучшаться, и образовываться. Но если человек знает только PHP, но не знает SQL и JS. Или знает Java и больше ничего — будет ясно, что он ещё “не готов”.
Конечно, чем больше Junior знает, тем лучше. А умение читать на английском сегодня критично для дальнейшего развития как программиста, но тут “google translate” в помощь.

Александр Решетков, ИТ-директор компании Softline:

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

Наталья Сывороткина, HR в EPAM Systems:

Для Junior’а личные качества и мотивация — это самое важное, ибо он по определению мало что знает. Таким образом, говоря о Junior’е мы сразу понимаем, что он не знает “некоторые алгоритмы, структуры данных или технический английский”. Что остаётся? Правильно, личные качества и мотивация.”

Иван Луковников, вице-президент по разработке и облачным технологиям в Acronis:

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

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».

Мы задались вопросом: простительно ли Junior’у за счет личных качеств или мотивации не знать некоторые алгоритмы, структуры данных или технический английский? Ниже ответы на этот вопрос представителей российских IT-компаний.

Дмитрий Ейбоженко, Development Team Lead в Яндекс:

“Конечно требования к Junior разработчику будут несколько ниже, особенно это касается всяких узкоспециализированных знаний особенностей языка программирования, фреймворков, деталей реализации. В первую очередь от Junior’а требуется способность к обучению и готовность для этого много работать. А также, конечно, общая позитивность и сообразительность. Но, как раз в случае с Junior’ом, как человеком, скорее всего, недавно закончившим вуз, алгоритмы и структуры данных являются с одной стороны некоторым индикатором того, способен ли человек учиться, потому что если он их не знает совсем, непонятно, чем он занимался в университете, а с другой стороны без их понимания сложно обучать более специфическим вещам. В данном случае речь конечно о каком-то базовом джентльменском наборе, на уровне книги «Дискретный анализ» И. В. Романовского.”

Александр Горный, директор по информационным технологиям Mail.Ru Group:

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

Игорь Селецкий, CEO & Founder в Cloud Linux Inc.:

Junior’у может быть прощено всё, кроме знания только одного языка программирования. Вполне понятно, что человек будет развиваться, улучшаться, и образовываться. Но если человек знает только PHP, но не знает SQL и JS. Или знает Java и больше ничего — будет ясно, что он ещё “не готов”.
Конечно, чем больше Junior знает, тем лучше. А умение читать на английском сегодня критично для дальнейшего развития как программиста, но тут “google translate” в помощь.

Александр Решетков, ИТ-директор компании Softline:

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

Наталья Сывороткина, HR в EPAM Systems:

Для Junior’а личные качества и мотивация — это самое важное, ибо он по определению мало что знает. Таким образом, говоря о Junior’е мы сразу понимаем, что он не знает “некоторые алгоритмы, структуры данных или технический английский”. Что остаётся? Правильно, личные качества и мотивация.”

Иван Луковников, вице-президент по разработке и облачным технологиям в Acronis:

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

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».

Почему не стоит быть джуниор-разработчиком ����

Мнение senior-разработчика о том, почему иногда стоит уделить больше времени обучению перед тем, как искать работу.

Серьезно, не нужно быть джуниор-разработчиком. Обычно об этом сообщается везде: в резюме, письмах и LinkedIn… Так делать не стоит.

Что при этом видят компании: “Здравствуйте, я очень хочу получить должность разработчика. Я пока не очень в этом разбираюсь, но можете ли вы, пожалуйста-пожалуйста-пожалуйста, довериться мне и понадеяться, что я не стану обузой для вашей компании. О, и мне нужно будет много помощи от вашей команды первые шесть месяцев!”

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

Но как я узнаю, когда я уже не джуниор-разработчик? Вы не узнаете. Вам всегда будет казаться, что вы знаете недостаточно. Это синдром самозванца. Но вот простой тест для веб-разработчиков: вы можете объяснить своей семье, как работает интернет? Как работает компьютер? Как работают сайты? Есть ли у вас базовое понимание HTML, CSS и JavaScript, достаточное для создания собственных сайтов? Вы немного знаете React? Вы создали несколько собственных проектов на GitHub и вам уже не стыдно выкладывать в интернет сайты и приложения? Вы уже не джуниор-разработчик.

Но мне нужна работа прямо сейчас! Прекратите мыслить короткими сроками. Только если ваша должность не предполагает работы с очень умными людьми, у которых вы можете учиться каждый день, и с релевантными технологиями, вам будет лучше потратить время на получение навыков, необходимых для отхода от мышления джуниор-разработчика. Вы заработаете больше денег, будете работать с лучшими командами, а также с большей вероятностью устроитесь в компанию, которая позволит вам работать с современными технологиями каждый день. Не стоит работать над обновлением плагина WordPress в юридической фирме. Это не поможет вам в будущем.

Но я не знаю, что делать! Сейчас я работаю над ресурсом, который поможет людям выбраться из джуниор-мышления. Лучший способ это сделать — понять всю экосистему разработки и получить знания, доступные senior-разработчикам. Вот каким темам я хочу учить:

  • SSH
  • Linux-серверы
  • Производительность (от сокращения обновлений DOM до балансировки нагрузки)
  • Безопасность
  • Управление состоянием
  • AWS lambda и другие архитектуры без серверов
  • Typescript
  • Server Side vs Single Page приложения
  • Тестирование
  • Docker
  • Сессии с JWT
  • Redis
  • Progressive Web Apps
  • Постоянная интеграция и постоянная доставка
  • (возможно GraphQL)

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

�� Junior и его первая роль в качестве разработчика. #[email protected] #[email protected]

Хотите стать Junior? Тогда перестаньте быть кодером. Здесь советы тем, кто испытывает трудности на пути к заветной должности.

Junior и его первая роль в качестве разработчика

Хотите стать Junior? Тогда перестаньте быть кодером. Здесь советы тем, кто испытывает трудности на пути к заветной должности.

Комментарии (11)

Влад Подзолов

Че за монитор на заставке?

Paper Devil

Влад, dell какой-то

Darek Missa

Влад, хочешь купить монитор, тебе нужно перестать собирать деньги

Тимур Барбашов

Влад, Dell ultrasharp, с регулируемой высотой

Антон Антонов

»Тогда перестаньте быть кодером. Дааа! Становитесь очередным балаболом, который ничего не делает и много выпендривается. в идеале надо ходить по коворкингу и пить смузи, но если не вышло, то офис и кофе тоже сойдут И помните! Никогда! Никогда и ни за что не начинайте кодить. Делегируйте. Не можете, потому что вы джуниор, некому? Старайтесь, в противном случае вы так и останетесь джуном. Копец как меня бесят такие высеры

Роман Сапетин

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

Дмитрий Золотарев

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

Александр Уляхин

Видимо статья профинансирована «сектой свидетелей softskills»

Путь программиста: от Junior до Senior

Плох тот программист, который не мечтает стать IT-директором. Амбиции и стремление к постоянному развитию крайне важны для того, чтобы стать опытным востребованным специалистом в этой сфере. Как пройти этот путь и из Junior стать Senior?

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

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

Как войти в профессию программиста

Как войти в IT? И с чего начинается путь программиста? Вариантов развития событий существует несколько.

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


Университет. Если вы только оканчиваете школу, то хорошим решением будет получить высшее образование в этой области. Фундаментальные знания, полученные там и вузовская «корочка» явно не навредят при дальнейшем устройстве на работу. Тем более на старших курсах чаще всего выдающихся ребят работодатели примечают еще на производственной практике и потом с радостью принимают к себе на работу.

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

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

Уровни программистов: Junior-Middle-Senior

Какой бы из вариантов входа в профессию программиста вы не выбрали в начале карьеры вы получаете гордое звание джуниор (Junior). Дальше вам предстоит миновать звание мидла (Middle) и прийти к сеньору (Senior). Деление это весьма условное, но давайте разберемся, что примерно понимается под каждым из этих уровней.

Junior – это программист, который только вошёл в профессию. Он обладает небольшим практическим опытом, либо не обладает им вообще. У джуниора есть знания и начальный набор навыков, с помощью которых он справляется с простыми стандартными задачами самостоятельно. Также он может справиться с более сложными задачами, но при помощи и контроле более опытного наставника.

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

Мастер Йода рекомендует:  Акции на продукты WebShake

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

Путь от Junior к Senior

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

Что же обязательно нужно и важно делать программисту, чтобы развиваться и превратиться из джуниора в сеньора?

  • Действуйте. Обучение и наработка опыта происходит только через действие. И поэтому единственно возможный способ совершенствоваться заключается в постоянном программировании.
  • Облегчайте себе задачу. Есть даже такая шутка: джуниор пытается все сложные вопросы решить сам, а сеньор знает, где взять ответы на эти вопросы. Поэтому обязательно гуглите, это совершенно нормально, так делает большинство программистов, особенно опытных. У нас была отдельная статья про то, где можно программисту найти ответы на все свои вопросы.
  • Не копите проблемы. Это относится к работе в целом и конкретно к коду, который вы пишите. Старайтесь все проблемные места в коде исправлять сразу, не накапливая и не откладывая на потом.
  • Не пытайтесь изучать всё сразу. Вам, конечно, могут быть интересны несколько языков программирования и несколько направлений. Но с помощью ментора расставьте приоритеты и начните с чего-то одного.
  • Делайте ошибки. Да, пусть вам не кажется странным этот пункт. Делать ошибки –это и есть развитие.
  • Не стесняйтесь чего-то не знать. Если вы пришли на собеседование на позицию джуниора, адекватный работодатель не будет требовать от вас невозможного. И вы, в свою очередь, не делайте вид, что знаете то, чего знать ещё не должны.
  • Никогда не переставайте учиться. Самообразование всегда должно быть присуще вам, если вы хотите пройти этот путь от Junior к Senior.
  • Будьте любопытными. Изучайте и разбирайтесь в новых технологиях; интересуйтесь новинками в области разработки и пробуйте их применять.
  • Делитесь своими знаниями. Работая в команде даже в статусе Junior, у вас уже могут быть те знания и навыки, которых нет у других. Поэтому обязательно общайтесь с коллегами, перенимайте их опыт и делитесь своим.
  • Принимайте активное участие в жизни различных IT-сообществ, посещайте IT-мероприятия.

Как происходит переход между уровнями

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

Опыт не всегда определяет уровень программиста. Как мы уже отметили, бывают случаи, когда программиста с опытом работы 4 года можно отнести только к новичку. И наоборот. За 1,5-2 года человек может достичь такого уровня, что получит звание, как минимум, мидла.

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

Кстати, постоянное обучение важно также для того, чтобы оставаться на своем уровне и шагать в ногу со временем. Любые знания в сфере IT, полученные сегодня, могут устареть через 3-5 лет. Поэтому нужно держать всегда руку на пульсе, чтобы от сеньора до мидла обратно не скатиться.

Если же процесс работы программиста сопровождается постоянным качественным ростом его знаний и навыков, то путь из Junior в Senior выглядит примерно так. Джуниор становится мидлом в среднем за два года работы. А по прошествии ещё двух-трех лет мидл уже может вырасти до сеньора.

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

Нужно быть достаточно зрелой личностью и иметь немалую силу воли и смелость, чтобы достичь вершин профессионализма в IT-сфере.

Как Вы понимаете junior, m >

А так же:
Какое определение самое общепринятое?
Поддается ли это определение формализации?
Можно ли применять к людям с объективной точки зрения, а не менеджерски-маркетинго-эйчарской с целью занижения ЗП?
Есть ли известные личности (возможно, звезды или гуру), которые готовы признать, что они, например senior?

Возможно, вопрос риторический, философский и подымался очень много раз, но я, много над ним размышляя, пришел к выводу, что ответить на вопрос «Ты junior\middle\senior?» за приемлемое время — это то же, что ответить на вопрос «Сколько стоит машина?» или «Сколько стоит сайт?»

  • Вопрос задан более трёх лет назад
  • 68108 просмотров

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

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

Может ли использоваться с целью занижения зарплаты? Может. Мое мнение, что в данном вопросе важно не «звание», а то как твой опыт и твои навыки покрывают запросы чужого бизнеса. Отсюда и вытекает твоя стоимость на рынке. И где-то будучи джуниором можно получать больше, чем мидл в другом месте, зависит от предъявляемых требований. Хочет ли работодатель купить дешевле тот же скилл? Хочет. Есть компании, где критерии формализованы, в рамках этой компании рост более прозрачен.

Можно ли ответить быстро на этот вопрос? Можно. Все зависит от человека и по какой шкале он себя будет оценивать. Есть те, кто пытаются поднять свой статус, есть те, кто наоборот предпочитает предъявлять к себе повышенные требования. А есть средняя температура по больнице. Все-таки колоссального разброса в представлениях работодателей нет, поэтому есть от чего отталкиваться.

Это все лично мое мнение, не претендующее на истину)

Junior : студент старших курсов и без опыта работы. Если с человеком нужно сидеть и постоянно помогать. Можно доверить баги, но никак не рефаторинг или таски на 1-2 недели, то это 100% джуниор. Опыт фултаим: 0.5-1 год. Либо партайм: 1-2 года. Предметную область знает слабо.

Middle : фиксит баги быстро, может делать таски на 1-2 недели, принимать архитектурные решения, рефакторить. Опыт фултайм: 1-2 года. Предметной областью владеет достаточно, что бы обсуждать с коллегами, спорить, искать решения.

Senior : Тут либо довольно крутой, скилловый Middle, умеющий очень хорошо кодить и знающий предметную область о-о-очень хорошо. Опыт фултайма 5-7 лет.
Либо просто Middle, который решил уйти, но его апнули, что бы не уходил. Обычно молодые Senior этот случай.

есть ли принципиальная разница этих понятий
Есть немного. В вебе растут быстрее (см. молодых синьеров). В геимдеве посложнее, т.к. область специфичная и набить руку в рендере, физике и прочих PS4SDK дома не получится. Но понятие Software Engineer никто не отменял. Software Engineer считаются довольно универсальными и могут быть Senior в любой предметной области, конечно если это не рокетсаенс, которым Senior в жизни не занимался.

В чем разница между junior-, middle- и senior-разработчиками

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

Знания

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

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

Работа с кодом

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

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

Как вычислить джуниора?

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

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

А что насчет сеньора?

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

Сеньор думает о коде не так, как джуниор: созданные опытным специалистом программы удобно обслуживать и масштабировать.

Больше, чем просто программирование

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

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

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

От джуниоров не следует ожидать верной постановки вопроса. Они неопытны, и им необходим толчок в нужном направлении от мидла или сеньора.

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

От джуниора к мидлу

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

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

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

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

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

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

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

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

«Лучше потратить время на учёбу»: почему не стоит начинать карьеру с позиции junior-разработчика


Многие начинают карьеру в ИТ с должности «джуниора». Senior-разработчик Андрей Ниагойе выступает против такого подхода. В своём блоге он рассказал, почему стоит сразу выбирать брать должность «на вырост», а не размениваться по мелочам. dev.by приводит перевод публикации.

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

«Но ведь я и есть junior!»

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

«Но как я узнаю, что уже вырос из «джуниора»?»

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

  • вы можете доступно объяснить, что такое интернет;
  • как работает компьютер;
  • как работает веб-сайт;
  • на базовом уровне знаете HTML, CSS и Javascript и можете построить свой сайт;
  • вы немного знакомы с React;
  • у вас есть свои проекты на GitHub;
  • вы с лёгкостью размещаете сайты и приложения в сети.

«Но мне нужна работа прямо сейчас!»

Избавьтесь от этих рамок: это недальновидно. Если на новой работе у вас не будет возможности взаимодействовать с действительно опытными людьми, у которых каждый день можно поучиться чему-то о востребованных современных технологиях (а начинающим разработчикам такую возможность предоставляют крайне редко), то лучше потратьте время на то, чтобы избавиться от этого ограниченного мышления. В долгосрочной перспективе вы будете зарабатывать больше денег, у вас будет более сильная команда, а работать вы будете в компании, которая будет вкладываться в ваше обучение и позволит каждый день иметь дело с современными технологиями. Разработка обновлений плагинов для WordPress в качестве штатного junior-программиста какой-нибудь заштатной компании не даст больших перспектив.

Если вы подаёте резюме на вакансию уровня junior, то в лучшем случае станете «джуниором» разработчиком. Если вы подаёте на вакансию senior-разработчика, то в лучшем случае станете «мидлом». Не сбивайте себе цену.

Вывод

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

Junior, Middle, Senior — в чем разница и куда дальше?

Привет всем! Меня зовут Александр Демура, в IT я работаю с 2004 года, сейчас руковожу центром разработки DataArt в Одессе (сам я из Питера, но это — отдельная история). В мои непосредственные обязанности входят найм и развитие наших специалистов, поэтому рассуждения на тему «синьёрности» сотрудников и качествах, необходимых для той или иной роли, для меня актуальны и привычны. Позволю себе традиционный дисклеймер — в этой статье изложен мой персональный взгляд (к счастью, в DataArt так можно — необязательно всем ходить строем по линейке). Написанный мной текст не претендует на истину в последней инстанции и вряд ли станет откровением для людей, уже разбирающихся в вопросе. Зато он будет полезен тем, кто только начинает путь в IT или не очень понимает, как и куда развиваться дальше, чувствует себя недооцененным или просто хочет расширить кругозор.

Мастер Йода рекомендует:  Анализ и отображение логов PHP

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

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

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

Интерн

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

  1. Хороший английский.
  2. Понимание выбранного инструмента и умение им пользоваться.

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

Про инструмент мысль тоже, мне кажется, простая. Если вы приходите на роль программиста, инструмент для вас — язык программирования со средствами разработки, которыми нужно уметь пользоваться. Если потенциальный интерн хочет разрабатывать на .NET, но не может объяснить, что делает CLR, чем «Equals» отличается от «==» или реализовать простейший алгоритм — шансов у него нет никаких. Приходить с нулевыми знаниями и надеяться, что всему научат на месте, параллельно выплачивая зарплату, бесполезно — слишком большой конкурс. За плечами многих кандидатов профессиональные курсы, они с легкостью отвечают на все теоретические вопросы и даже имеют опыт программирования «для себя». Конечно, таких людей берут в первую очередь.

Junior

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

Для джуна важны следующие качества:

  1. Желание развиваться и учиться (а на своих ошибках — особенно).
  2. Энергия и целеустремленность.
  3. Способность спокойно относиться к критике.

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

Middle

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

  1. Мидл-разработчик понимает, что именно делает приложение. Это позволяет глубже понять задачу, а, значит, точнее ее оценить и качественнее реализовать. Если требования не полностью покрывают какой-то сценарий, хороший разработчик обратит на это внимание на этапе планирования. А не когда приложение начнет валиться при любом нестандартном действии пользователя.
  2. Мидл-разработчик знаком со стандартными шаблонами и решениями при построении приложения в своей области, понимает, зачем они нужны, и умеет их применять. Стандартизация решений имеет большое значение при коллективной разработке кода, т. к. позволяет новому человеку быстрее разобраться, что к чему, и минимизирует количество ошибок. Понимание структуры типового приложения делает задачу его построения с нуля достаточно тривиальной, позволяет рассуждать о принципах правильной реализации и отличать хороший код от плохого.
  3. Мидл-разработчик понимает, что работает не один. Он умеет взаимодействовать с другими членами команды: может обсудить сложный момент с дизайнером, уточнить у бизнес-аналитика неполные требования или согласовать какое-то важное техническое решение с архитектором проекта (если такой есть) и, конечно, владеет соответствующими инструментами коллективной разработки.

Senior

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

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

Немного поразмыслив, мы сможем сформулировать ряд особенностей синьор-разработчика:

  1. Способность решать несколько более сложные задачи, делать это быстрее или лучше, чем средний разработчик, не имеет практически ничего общего с синьорностью. В нашей классификации человек, который это умеет, называется “Strong Middle”.
  2. Звание синьора невозможно получить быстро. Нужно наработать обширный опыт и понять, что отличает хорошо сделанный продукт от тяп-ляп-разработки, как проявляет себя технический долг, сколько стоит рефакторинг, зачем на самом деле нужны паттерны, и так ли необходимы бесконечные уровни абстракции. Необходимо самостоятельно принять важные решения и дать им пройти испытание временем, иначе оценить их не получится.
  3. Синьору необходимы хорошие коммуникативные навыки, потому что он должен не только предложить правильное решение, но и убедить в своей правоте заказчика и команду. Если вы не смогли отстоять хорошее решение и вместо него было принято плохое, винить в этом придется самого себя. Вариант «я же говорил» на уровне Senior уже не работает. С командой то же самое — мало знать, как надо, нужно еще и уметь это доходчиво объяснить. Тогда команда быстро растет и набирается опыта, избегая болезненных ошибок. Авторитарный подход («делайте, как я сказал») зачастую приводит к внутренним конфликтам, и ситуацию на проекте отнюдь не улучшает —нужно стараться этого избегать.
  4. Синьор не может обойтись без понимания устройства библиотек и фреймворков. Если инструмент разработки для вас — черный ящик, и вы составляете приложение из готовых частей, не зная, что у каждой из них под капотом, продукт всегда будет неустойчивым и непредсказуемым.

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

Что дальше?

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

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

Куда же развиваться синьорам? Многие программисты любят рассуждать о «потолке» — когда внутренний рейт (т. е. деньги, которые вы получаете за работу) приближается к внешнему (счету, выставленному клиенту за вашу работу) с минимальной маржинальностью. Они считают, что в этом случае дальнейший рост специалиста становится нецелесообразным для работодателя. Однако это не так, есть множество способов и дальше увеличивать свою ценность (по крайней мере, в DataArt). Поэтому позицию Senior Developer стоит рассматривать не как карьерное плато, а как плацдарм для дальнейшего развития, например, в одном из следующих направлений:

Технический эксперт

Статус технического эксперта подразумевает глубокое знание отдельной и специфической области. Например, можно быть экспертом в Azure/AWS и знать разнообразные сервисы, которые предоставляют эти платформы. Уметь делать Machine Learning или Computer Vision, знать все про уязвимости в вебе, понимать, как работают криптовалюты или правильно готовить Sharepoint. Такие задачи встречаются не каждый день, но, когда появляются, наступает звездный час технических экспертов. Без них подобные проекты были бы просто невозможны, и компания зачастую готова доплачивать за эти уникальные знания.

Индустриальный эксперт

DataArt старается развиваться в определенных доменных областях (путешествия, финансы, здравоохранение и т. п.). В каждом проекте программисты не только приобретают собственно технические знания, но и получают возможность заглянуть в бизнес заказчика, понять, как устроена индустрия, узнать характерные для нее проблемы и решения. Чего стоит построить свою платежную систему вроде PayPal? Зачем нужна система Sabre? Или что такое HIPAA, и какие ограничения она накладывает на разработку решений в области здравоохранения в США? Люди, которые обладают подобными знаниями, зачастую формируют костяк проекта и приносят компании и клиенту огромную дополнительную пользу. Поэтому его компенсация может превышать внешний рейт — компании сами готовы доплачивать таким людям сверх счета, выставленного заказчику проекта.

Фронтмен

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

Тимлид

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

Архитектор

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

Я перечислил пять возможных ролей только в технической ветке развития, не затрагивая тестировщиков, аналитиков, менеджеров, дизайнеров, маркетологов или продавцов.

Дополнительно: работа без посредников

Я хочу отдельно написать о работе без посредников, которую некоторые воспринимают как Святой Грааль для программиста. Казалось бы, все логично: находим заказчика, предоставляем ему свои услуги напрямую, весь рейт забираем себе — профит! Однако нужно понимать, что, кроме прибылей, на программиста в этом случае падают все сопутствующие риски. Нужно внимательно читать пункт контракта об ответственности сторон, знать законодательную и налоговую базу, придумывать механизм получения денег, действовать, если клиент не заплатил или неожиданно свернул работу. В DataArt эти вопросы решают специально обученные люди (продавцы, юристы, бухгалтеры), и даже если заказчик разорился и вышел из бизнеса с сумасшедшими долгами, разработчики все равно получат деньги в срок и спокойно перейдут в следующий проект. При работе напрямую — каждый оказывается сам за себя. Кроме того, большинство компаний тратят весьма осязаемые бюджеты на привлечение новых клиентов, поэтому прямые отношения с заказчиками, которых нашла компания, запрещены контрактом с той и другой стороны.

На этом мне хочется закончить на сегодня, если есть новые идеи для статей — пишите!

Inventain Games о роли джуниор-сотрудников в компании

Почему фирмам следует обучать специалистов самостоятельно.

Руководитель отдела разработки Inventain Games Евгений Новиков написал для DTF статью, в которой рассказал, как компания привлекает работников с небольшим опытом и «выращивает» из них профессионалов.

Жизнь «джуниора» нелегка. Вроде и хочется сразу податься на работу мечты, но желание разбивается о требуемый опыт. А как его получить «джуниору», которого никуда не берут?

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

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

О компании

Inventain не первый год занимается разработкой мобильных игр и приложений. Вышедшая из отдела разработки Bowmasters уже в первые недели после релиза попадала в мировой топ-10 бесплатных игр. Компания выпустила еще несколько известных проектов и сейчас активно занимается разработкой новых.


Почему не надо бояться джуниора

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

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

«Джуниору» понадобится столько же времени, чтобы привыкнуть к коллективу (возможно даже меньше, ведь ему не надо отвыкать от старых привычек), но на его зарплату придётся тратить куда меньше.

Мастер Йода рекомендует:  Как конвертировать картинку в JPEG или другой графический формат

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

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

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

Ставьте больше новых задач

Текущие «джуниоры» — это представители поколения Y. Хватаются за всё, что видят, хотят участвовать во всём, требуют внимания и достойных оценок. Используйте эти особенности поколенческой психологии, чтобы не только воспитать «джуниора» внутри команды, но и удержать его. Для этого мы ставим им не какие-то абстрактные задачи, а полностью интегрируем новичков в команду, создающую реальный проект для миллионов игроков по всему миру (в паре с ментором). Так «джуниор» понимает, что ему доверяют, и дают участвовать в том, чем на самом деле занимается компания.

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

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

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

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

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

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

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

Не будьте слишком требовательны на начальных этапах

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

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

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

Приставьте ментора

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

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

Сейчас у нас есть несколько человек, которые настолько хорошо понимают, что нужно «джуниорам» (потому что ещё год назад сами были на их месте), что не только помогают наставничеством, но и активно участвуют в собеседованиях. Причем в ряде случаев HR на собеседовании выполняет чисто формальную роль (бумаги и прочее), а вот сам разговор, тесты и прочее ведёт именно бывший «джуниор».

Наблюдайте за рабочим процессом

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

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

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

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

Код успеха: как из Junior стать Senior разработчиком

Стать senior-разработчиком реально. Но есть нюансы

Java, Python, PHP, C#, С, JavaScript, Web разработка и графический дизайн, разработка баз данных, распределенных приложений, программная инженерия, UI разработка, защита информации и, в конце концов, хороший уровень английского — далеко не полный список компетенций современного программиста. При этом количественный и качественный набор специфических навыков и знаний конкретного айтишника упаковывается в определенные ранги. От того, какая у вас квалификация, junior, middle или senior, зависит не только уровень оплаты ваших услуг, но и ценность вашей компании на рынке.

LIGA.net попыталась разобраться в нюансах трудоустройства и карьерного роста в IT-сфере, а также выяснила некоторые секреты уже состоявшихся айтишников.

Junior, middle или senior. Ваш вариант?

Читайте также

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

Middle-специалист обладает опытом работы от 1 до 3 лет. Это практически самостоятельный разработчик с необходимыми базовыми знаниями программирования, за которым практически не нужно исправлять код.

Senior — эксперт программного кода, работающий в сфере от четырех лет.

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

Профессиональные знания и навыки обеспечивают не только переход от ранга к рангу, но и увеличение оплаты. На нынешнем разношерстном и перенасыщенном рынке, увы, нет четкой градации, кто и сколько зарабатывает. Но можно говорить о тенденциях. «Если это аутсорсинговая компания, то джун может получать от $400 до $800, senior — $2500-3000. Иногда гонорары зависят от бюджета проекта. Когда выстреливает, есть хорошие бонусы», — рассказывает соучредитель Pro-Recruiting Studio Екатерина Лобарева.

Middle-специалист стоит на рынке в среднем от $2000 до $2700, а senior — $3000-4000 плюс налоги и договоренности об оплате с клиентом, отмечает HR-специалист одной из украинских IT-компании.

Зачем компаниям-разработчикам джуны, если от квалификации персонала зависит не только их доход, но и ценности на рынке IT-услуг? Для проектов часто нужны люди, которые будут делать простейшие задачи.К тому же большинство компаний заинтересованы в росте своих инженеров и не жалеют денег на их развитие.

Фото — iStock/Global Images Ukraine

«На украинском IT-рынке постоянный дефицит опытных программистов. Крупные компании-игроки концентрируют усилия и ресурсы на профессиональном развитии и обучении своих сотрудников», — отмечает HR-специалист компании SoftServ e Орест Олексовський . В самой компании для таких целей создали подразделение HR Business Partnership, в котором работают карьерные советники и помогают новому сотруднику влиться в рабочую среду.

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

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

Дорога к уровню senior

Бывают случаи, когда программист с опытом работы более четырех лет не дотягивает даже до миддл-уровня. Причина может быть не только в его нежелании развиваться, но и в задачах, которые компания ставит перед разработчиками. Этот момент обязательно стоит учитывать при переходе. Новое место работы может требовать навыков, которых у вас попросту не будет. А на «переучиться» нужно время и не факт, что его дадут.

LIGA.net расспросила действующих айтишников и эйчаров IT-компаний, как не упустить драгоценное время и эволюционировать в Senior-разработчика.

Сергей Ложечников, веб-разработчик (principal или senior) в open source компании Astound Commerce

Если говорить о моей области разработки, я могу выделить несколько ключевых моментов. Понятия junior и senior разработчик достаточно субъективны, но я их определяю следующим образом: junior методом проб и ошибок может написать код, который работает. senior понимает, почему код работает, при этом, умеет писать код, который еще и хорошо выглядит. По моей субъективной оценке, переход от junior к senior в среднем занимает 2-3 года.

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

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

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

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

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

Английский. Даже если вы работаете на внутреннего клиента, в процессе обучения вам придется сталкиваться с англоязчными статьями/докладами.

Можно застрять, например, на миддл позиции. Причин может быть несколько. Первая — компании не нужен разработчик такого уровня, на который вы претендуете. Решение — развиваемся, меняем компанию. Вторая — вам неинтересно обучатся. Это не проблема. Люди разные. Нам не может нравиться одно и то же. А миддл позиция позволяет зарабатывать и иметь свободное время на развитие в той области, в которой пожелаете.

Фото — iStock/Global Images Ukraine

Орест Олексовський, senior organizational excellence manager в SoftServe

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

Для каждого квалификационного Abiliton-уровня (junior, intermediate, senior) существуют свои требования. Например, чтобы получить должность senior, у сотрудника должен быть опыт работы от трех лет, уровень владения английским Intermediate Strong, внешняя сертификация в соответствии с технологией и опыт проведения презентаций. Во время регулярной оценки эффективности работы, каждый сотрудник получает объективные отзывы о своей текущей деятельности: определяются следующие шаги для совершенствования коммуникативных, организаторских и общих технических навыков.

Игорь Трайдакало, software engineering, middle-разработчик в компании EPAM Systems

Для того, чтобы с junior перерасти в senior в среднем нужно около пяти лет. Рост зависит не только от проекта, над которым работает человек, но и от задач, которые он выполняет. При росте от middle к senior важно самообучение, так как человек, в большинстве случаев использует специфический набор технологий в работе над проектом.

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

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

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

Павел Никитюк, фрилансер

Я не могу точно сказать, сколько нужно времени для того, чтобы из Junior стать Senior. Это очень индивидуально. Как в компаниях (у каждой своя градация уровней специалистов), так и у самих девелоперов. Многие часто меняют стек технологий в поисках чего-то нового, поэтому постоянно находятся где-то на уровне middle. А некоторые разработчики просто стесняются просить повышения. В компаниях, где процесс ранжирования более или менее отлажен, среднего уровня айтишник может получить опыт и знания, эквивалентные сеньору за 3-4 года.

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

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

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