Обложка статьи «Какие софт и хард скиллы нужны джуниор-разработчику — советы тимлидов и технических директоров»

Какие софт и хард скиллы нужны джуниор-разработчику — советы тимлидов и технических директоров

Из-за пандемии и перевода всех бизнес-процессов в онлайн, спрос на ИТ-специалистов, в том числе и на новичков, сильно вырос. Вместе с тем возросла и конкуренция. Теперь для успешной карьеры джуниор-разработчику недостаточно обладать hard skills, всё чаще работодатели обращают внимание на soft skills — «мягкие» навыки, напрямую не связанные с технической профессией.

Ирина Новикова, руководитель Algoritmika Coding Bootcamp, спросила тимлидов и технических директоров российских компаний о том, какие, по их мнению, hard и soft-skills необходимы начинающему разработчику и на что они обращают внимание на собеседованиях в первую очередь

Илья Щербак

Илья Щербак

руководитель команды Core Infrastructure ВКонтакте

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

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

Сергей Ярцев

Сергей Ярцев

СТО компании HintEd

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

Несколько лет назад на мою вакансию Junior node.js разработчика откликнулся Андрей из Челябинска. Мы с ним созвонились, пообщались, я позадавал стандартные вопросы, ответил на его вопросы и в конце дал ему неплохое тестовое задание, как я думал, часа на 4. Он за час собрал результат из кусков своих проектов. Мы до сих пор с ним работаем вместе.

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

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

Ну и последнее – искренний интерес к программированию. Я бы сказал, что надо их любить, но это не обязательно. Возможно, вы уйдёте в Q&A, DevOps или какую-то другую роль, поэтому достаточно, чтобы вас это направление просто привлекало.

Феликс Игнатьев

Феликс Игнатьев

старший разработчик DonationAlerts

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

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

Например, в случае с backend разработкой в вебе необходимы:

  • Знание синтаксиса по выбранному языку программирования.
  • Основы реляционных баз данных (MySQL, PostgreSQL, и т.д).
  • Представление о NoSQL.
  • Понимание принципов работы современных веб приложений (например, что происходит при нажатии ссылки или кнопки в веб-интерфейсе).
  • Представление о работе систем управления версиями (Git).
  • Базовые знания по архитектуре, плюсы и минусы подходов, где лучше применяются.
  • Неплохо, но и не обязательно — знания по основным алгоритмам и структурам данных.

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

Андрей Симачев

Андрей Симачев

CTO devtodev

Требования к Junior-разработчику будут меняться в зависимости от платформы и направления.

Общие требования примерно такие:

  •  Знание синтаксиса выбранного языка и понимание принципов работы с ним.
  •  Чтение документации в том числе и на английском.
  •  Умение внедрять различные библиотеки и базовое понимание принципов их работы.
  •  Понимание принципов работы одной из систем контроля версий.
  •  Умение читать чужой код и разобраться в поставленной задаче.

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

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

Виктор Финк

Виктор Финк

ресурсный директор «Техносерв Консалтинг»

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

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