21 февраля 2024

🪨💧 Hard skills и soft skills: что это и как они проверяются на техническом собеседовании

Исследую все, что шуршит и шевелится в IT.
Проанализируем, что именно представляют из себя эти два типа навыков, а также как их проверяют на технических собеседованиях.
🪨💧 Hard skills и soft skills: что это и как они проверяются на техническом собеседовании

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

Что такое Hard skills?

Что такое Hard skills?
Что такое Hard skills?

Hard skills (жесткие навыки) — это конкретные умения и знания, которые можно проверить. Например, с помощью тестов.

Что к ним относится:

Знание языка/языков программирования

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

Что могут спросить на техническом собеседовании:

  • «В чем разница между статической и динамической типизацией?»;
  • «Расскажите о принципах работы с потоками [в выбранном вами языке программирования]»;
  • «Какие нововведения были внесены в последнюю версию [выбранного вами языка программирования]?».

Принципы разработки

Здесь оценивается уровень понимания архитектурных принципов разработки программного обеспечения, таких как объектно-ориентированное программирование (ООП), шаблоны проектирования и принципы SOLID. Для этого вам могут задать несколько вопросов на знание теории.

Что могут спросить на техническом собеседовании:

  • «Расскажите о принципах SOLID. Чем они отличаются друг от друга, и какие у них преимущества?»;
  • «Что такое принцип DRY? Почему он важен в разработке и как его можно применить на практике?»;
  • «Что такое принцип YAGNI? Как он связан с agile-подходом и какие риски помогает избежать?».

Базы данных

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

Что могут спросить на техническом собеседовании:

  • «Опишите различия между реляционными и нереляционными базами данных»;
  • «Какие агрегирующие функции в SQL вы использовали для анализа данных?»;
  • «Какие виды индексации данных вы знаете и в каких ситуациях их применение наиболее эффективно?».

Алгоритмические навыки

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

Что могут спросить на техническом собеседовании:

  • «Можете ли объяснить алгоритм сортировки пузырьком и его сложность?»;
  • «В чем сложность алгоритма поиска в глубину и когда его лучше использовать?;
  • «Как реализовать алгоритм поиска кратчайшего пути в графе и какие структуры данных для этого следует использовать?».
🪨💧 Hard skills и soft skills: что это и как они проверяются на техническом собеседовании

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

На курсе вас ждет:

  • бессрочный доступ
  • 47 видеолекций
  • 150 практических заданий
  • бессрочная поддержка в чате студентов
  • развернутая обратная связь по всем домашним заданиям


Тестирование и отладка

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

Что могут спросить на техническом собеседовании:

  • «Расскажите о вашем опыте в тестировании масштабируемых приложений»;
  • «Какие инструменты вы используете для выявления и исправления ошибок?»;
  • «Как вы идентифицируете и исправляете утечки памяти в приложениях?».

Будет отлично, если вы:

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

Что такое Soft skills?

Что такое Soft skills?
Что такое Soft skills?

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

Что к ним относится:

  • умение коммуницировать;
  • умение договариваться;
  • умение вести переговоры.

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

Рекомендации по прохождению технического собеседования

  • Не начинайте кодить сразу. Обычно задачи из технических собеседований достаточно расплывчаты и недостаточно конкретизированы, — это сделано специально, чтобы интервьюер мог оценить внимание кандидата к деталям и аккуратность. Задайте как минимум 2-3 уточняющих вопроса, чтобы быть уверенным, что вы точно все правильно поняли.
  • Если вы считаете, что ваше решение не является оптимальным, объясните, почему вы выбрали именно такой подход и предложите альтернативные варианты.
  • Практикуйтесь в решении задач на время, чтобы быть готовым к работе в ограниченных временных рамках.
  • При решении задачи обратите внимание на детали и уточнения. Спрашивайте у интервьюера все необходимые детали, чтобы полностью понять задачу и предложить наиболее эффективное решение.
  • Прорешайте задачи, которые часто встречаются на технических собеседованиях, чтобы быть готовым к типичным вопросам.
  • Используйте онлайн-платформы для подготовки к техническим собеседованиям. Например, LeetCode, Pramp, Coderbyte, AlgoExpert, CodeSignal.
  • Особое внимание уделите обработке граничных случаев и проверке входных данных на корректность.
  • Не перебивайте интервьюера, когда он говорит. Обычно, если он говорит, он пытается дать вам подсказки или помочь — указать вам правильное направление.
  • Не заканчивайте собеседование, не задав ни одного вопроса.
  • Если у вас есть возможность, попробуйте попрактиковать технические интервью с другими программистами или даже с ментором, который даст вам обратную связь.
***

Телеграм-каналы с вакансиями для IT-специалистов

  • Вакансии по data science, анализу данных, аналитике, искусственному интеллекту @datajob
  • Вакансии для java-разработчиков @javadevjob
  • Вакансии по питону, Django, Flask @pydevjob
  • Вакансии по фронтенду, джаваскрипт, React, Angular, Vue @jsdevjob
  • Вакансии по C#, .NET, Unity @csharpdevjob
  • Вакансии по C++ — си-плюс-плюс, cpp, Си, C, STL, Boost @cppdevjob
  • Вакансии по Go @godevjob
  • Вакансии по PHP, Symfony, Laravel @phpdevjob
  • Вакансии для мобильных разработчиков @mobiledevjob
  • Вакансии по DevOps & SRE @devopssjob
  • Вакансии по QA тестированию @testerrjob
  • Вакансии по информационной безопасности @hackdevjob

МЕРОПРИЯТИЯ

Комментарии

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ