Какой опыт с языками программирования?
Что проверяют
Насколько глубоко вы знаете основной язык и трезво ли оцениваете уровень в остальных. Для PHP-разработчика следом почти всегда спрашивают, на какой версии был последний проект и что изменилось в PHP 8.
Как отвечать
Идите от главного к второстепенному: основной язык подробно, соседние коротко и с честной оценкой уровня.
- PHP: с какой версии начинали и на какой работаете сейчас. Ветки ниже 8.2 уже не получают даже исправлений безопасности. Покажите, что пользуетесь современным языком:
declare(strict_types=1), union-типы,enum,readonly-свойства,match, атрибуты, именованные аргументы, property hooks из 8.4; - экосистема: Composer и автозагрузка по PSR-4, стиль PSR-12 или PER Coding Style, фреймворк (Laravel или Symfony), тесты на PHPUnit или Pest, статический анализ PHPStan или Psalm;
- SQL: для бэкендера это второй рабочий язык. Сложные
JOIN, индексы, чтениеEXPLAIN, транзакции и уровни изоляции; - JavaScript и TypeScript: если писали фронт, называйте уровень прямо. «Правлю компоненты на Vue» и «строю SPA с нуля» это разные вещи;
- Bash, Go, Python: коротко и по назначению: скрипты деплоя, фоновый воркер, утилита.
Опирайтесь на свой опыт: сколько лет и на каких проектах, какой объём кода ваш, что сделали сами. Цифры нужны реальные, придуманные проценты интервьюер разберёт одним уточнением. Если почти всё время писали на одном PHP, это нормально: скажите, что знаете его глубоко, и покажите, как осваиваете новое, на примере последнего инструмента, в котором разобрались сами.
Где спотыкаются
Перечисляют десять языков. Интервьюер выбирает самый неожиданный и задаёт по нему базовый вопрос.
Застревают на уровне PHP 7: не знают про enum, readonly и match, передают данные ассоциативными массивами вместо типизированных DTO.
Путают язык и фреймворк. «Знаю PHP» на деле означает «знаю Laravel», и вопрос про разницу == и === или про копирование массивов при записи ставит в тупик.