Введение
В настоящее время я нахожусь в поисках работы, хожу на разные собеседования.
Хотелось бы поделиться отдельным видом компаний и видом найма в них.
Конкретно это ИТ компании, которые завершили свои проекты успешно.
Инфраструктура настроена, сервисы работают и приносят деньги, появляются бюджеты, которые можно тратить на развитие или работу с техническим долгом, техподдержку.
Поэтому поиск исполнителей для работы не срочный, процесс найма можно тянуть очень долго.
Основная часть
Как же, как правило проходит собеседование?
Собеседование проходят в несколько этапов, в соответствии с политикой компании, насколько я знаю в Яндекс 6 собеседование, на мой взгляд это перебор.
В Озон 3 технических собеседования: Технический скриниг, Live Coding и что-то ещё, не понятно зачем.
Как правило задаются вопросы по технологиям, которые используются в компании, например ОЗОН это C#/.NET.
Если вам удаётся пробиться на техническое интервью, на котором вас собеседует некий руководитель который начинает вас «гонять» по знаниям, которые есть на сайте https://metanit.com/ или https://learn.microsoft.com/ru-ru/dotnet/
За 30 минут пытаются выяснить всё и про элементарные основы языка и про алгоритмы, что в принципе не возможно. У меня был некоторый набор тем, за это спасибо отделу HR.
Когда я готовился я для себя подготовил некоторую презентацию на 45 слайдов, получается меньше минуты на слайд.
Личные ощущения. Чувствуешь себе неким ИИ, потому что на задаваемые вопросы легко вам ответит любой чат с искусственным интеллектом.
Приведу пример одной из задач, мне показали некоторый синтетический код, который содержал несколько задач, содержащие внутри бесконечные циклы.
Примерно такой вариант, который я получил с помощью Google AI только с двумя параллельными задачами:
Task task = Task.Run(() =>
{
try
{
while (true)
{
cts.Token.ThrowIfCancellationRequested();
// Имитация работы
Console.WriteLine("Цикл работает...");
Thread.Sleep(500);
}
}
catch (OperationCanceledException)
{
// Сюда попадем при cts.Cancel()
Console.WriteLine("Задача была отменена. Выполняем очистку...");
}
finally
{
// Выполнится в любом случае
Console.WriteLine("Ресурсы освобождены.");
}
}, cts.Token);
Потом была поставлена задача, что нужно тут написать, чтобы оно работала или остановилось, честно говоря я не до конца понял задачу, всё было вырвано из контекста.
В редакторе который мне показали изначально я видел даже не весь код.
Используя ИИ я решили эту задачу, точнее я понял что от меня хотели!
Видимо, это моя гипотеза, от меня требовалось добавить в какое-то место
сигнал остановки задач с помощью токена:
// Где-то позже останавливаем
cts.Cancel();
Дальше я понял, что собеседующий не проявлял ни какой заинтересованности в интервью и дальнейшем каком-то диалоге, я вежливо распрощался.
Тем не менее мне было обещено, что мне дадут обратную связь в течении 2-х дней, как думаете получил ли я какую-то обратную связь?
Конечно же нет, я обратился в службу HR сам спустя неделю, на что получил общий ответ, о том что я не прошёл тех. скриниг.
Выводы.
Для себя я проходил это интервью больше как социальный эксперимент, понимая небольшие шансы попасть на работу в ОЗОН.
Учитывая как формируются задачи во время интервью, можно сделать вывод, что примерно такой же уровень декомпозиции задач и в компании.
Собственно к интервью я готовился в первую очередь для себя.
Есть ощущение что компании нужны роботы, а не люди, это выглядит очень не красиво.
Нужно не забывать, что многие крупные и выдающиеся изобретения были сделаны из-за ошибок. Лично я признаю и принимают ошибки.
Не ошибается только тот, кто ничего не делает.
P.S. что касается ИИ, нужно уметь писать промпты (запросы к ИИ), если же задача человеку к человеку ставиться непонятно, то это и ИИ не поймёт, мне пришлось приложить интеллектуальные усилия, чтобы понять что от меня хотят и сформулировать корректный и понятный запрос, который будет понятен и человеку, и ИИ.
Продолжение P.S.
Удалось выяснить, что не так с ответами на вопрос, дело оказалось в привычке по работе с индексами в PostgeeSQL.
На последнем проекте я привык работать с индексами через Code First модель в ORM.
Или с помощью стандартного синтаксиса:
CREATE INDEX idx_user ON test.user (id);
Синтаксис который мне показывали на собеседовании я не могу найти ни через ИИ, ни в документации к PostgreeSQL.