Meepka сказал(а):↑Как у тебя проход по массиву дважды вдруг уложился в O(n)?
Нажмите, чтобы раскрыть...
YoshkinKot сказал(а):↑O(n) + O(n) = O(n)
там не вложенный цикл
ну и это «условный» O(n), потому что я потребовал max({a_i}) = O(1)
Нажмите, чтобы раскрыть...
Вообще, на практике программисты иногда используют O(2N) и подобное. С точки зрения строгой математики это имеет мало смысла, но бывает удобно. Например, знаю задачу, где функция зависимости времени выполнения от количества элементов во входном массиве имеет вид t(N) = dt * 26N. Здесь очень удобно сказать, что задача решается за O(26N) :)
В решении с простым перебором пар тоже на самом деле зависимость не t(N) = dt * N^2, а t(N) = dt * (N(N - 1) / 2). Но в нотации О большое мы все равно оцениваем асимптотику как O(N^2)
Данил Низамов сказал(а):↑Расскажите, на каких задачах вас валили на собеседованиях? Есть какие-то задачи-гробы, которые похоронили вашу попытку попасть в компанию? Я один раз на алгоритмической секции яндекса завалился на вот такой задаче. Она супер ультра простая, сейчас я ее даже студентам не даю, но я тогда был совсем новичком в проге и не справился
Написать функцию kDiffPairs(arr, k), которая принимает на вход массив целых чисел arr и целое число k и возвращает количество таких пар чисел в массиве, разность которых по модулю равна k.
Например, если arr = [3, 5, 8, 3, 2, 8] и k = 3, то функция должна вернуть 3, так как в массиве ровно три подходящие пары чисел:
- arr[1] = 5 и arr[2] = 8 (8 - 5 = 3)
- arr[1] = 5 и arr[5] = 8 (8 - 5 = 3)
- arr[1] = 5 и arr[4] = 2 (5 - 2 = 3)
Если не встречались с такой задачей, попробуйте за 10 минут придумать решение за O(N) или хотя бы за O(NlogN) и написать в комментариях
Нажмите, чтобы раскрыть...Эта задача в самом начале на литкоде.
вообще в любой непонятной ситуации юзай хеш таблицу
Meepka сказал(а):↑Ну так покажи решение за O(N)
Как у тебя проход по массиву дважды вдруг уложился в O(n)?
Нажмите, чтобы раскрыть...Хоть миллион раз, это все-равно О(n)
Meepka сказал(а):↑Ну так покажи решение за O(N)
Нажмите, чтобы раскрыть...from collections import defaultdict
def kDiffPairs(arr, k):
counter = defaultdict(int)
for el in arr:
counter[el] += 1
answer = 0
for el in arr:
answer += counter[k + el]
answer += counter[k - el]
return answer
Быстро накидал, мог ошибиться, но идея такая. Так как defaultdict это хеш-таблица, решение за O(N)
Данил Низамов сказал(а):↑Расскажите, на каких задачах вас валили на собеседованиях? Есть какие-то задачи-гробы, которые похоронили вашу попытку попасть в компанию? Я один раз на алгоритмической секции яндекса завалился на вот такой задаче. Она супер ультра простая, сейчас я ее даже студентам не даю, но я тогда был совсем новичком в проге и не справился
Написать функцию kDiffPairs(arr, k), которая принимает на вход массив целых чисел arr и целое число k и возвращает количество таких пар чисел в массиве, разность которых по модулю равна k.
Например, если arr = [3, 5, 8, 3, 2, 8] и k = 3, то функция должна вернуть 3, так как в массиве ровно три подходящие пары чисел:
- arr[1] = 5 и arr[2] = 8 (8 - 5 = 3)
- arr[1] = 5 и arr[5] = 8 (8 - 5 = 3)
- arr[1] = 5 и arr[4] = 2 (5 - 2 = 3)
Если не встречались с такой задачей, попробуйте за 10 минут придумать решение за O(N) или хотя бы за O(NlogN) и написать в комментариях
Нажмите, чтобы раскрыть...Мне вышло 6 как результат
СеткаA: 3, B: 3, A-B: 0
A: 3, B: 2, A-B: 1
A: 3, B: 8, A-B: -5
A: 5, B: 3, A-B: 2
A: 5, B: 8, A-B: -3 BINGO
A: 5, B: 3, A-B: 2
A: 5, B: 2, A-B: 3 BINGO
A: 5, B: 8, A-B: -3 BINGO
A: 8, B: 3, A-B: 5
A: 8, B: 5, A-B: 3 BINGO
A: 8, B: 3, A-B: 5
A: 8, B: 2, A-B: 6
A: 8, B: 8, A-B: 0
A: 3, B: 3, A-B: 0
A: 3, B: 5, A-B: -2
A: 3, B: 8, A-B: -5
A: 3, B: 2, A-B: 1
A: 3, B: 8, A-B: -5
A: 2, B: 3, A-B: -1
A: 2, B: 5, A-B: -3 BINGO
A: 2, B: 8, A-B: -6
A: 2, B: 3, A-B: -1
A: 2, B: 8, A-B: -6
A: 8, B: 3, A-B: 5
A: 8, B: 5, A-B: 3 BINGO
A: 8, B: 8, A-B: 0
A: 8, B: 3, A-B: 5
A: 8, B: 2, A-B: 6
Result: 6
Вот код
кодstatic int MathMod(int number)
{
if (number < 0)
number = number * -1;
return number;
}
List list = new List() { 3, 5, 8, 3, 2, 8 };
int desired = 3;
int result = 0;
for (int i = 0; i <= list.Count - 1; i++)
{
for (int j = 0; j <= list.Count - 1; j++)
{
if (i == j)
continue;
Console.Write(Environment.NewLine + "A: "+list+", B: "+ list[j] + ", A-B: " + (list - list[j]));
if (MathMod(list - list[j]) == desired)
{
result++;
Console.Write(" BINGO");
}
}
}
Console.WriteLine(Environment.NewLine + "Result: " + result);
За алгоритмы не шарю, просто по фану за два цикла решил.UPD: ошибка с условием цикла в коде, исправил
Wuqing сказал(а):↑Мне вышло 6 как результат
СеткаA: 3, B: 3, A-B: 0
A: 3, B: 2, A-B: 1
A: 3, B: 8, A-B: -5
A: 5, B: 3, A-B: 2
A: 5, B: 8, A-B: -3 BINGO
A: 5, B: 3, A-B: 2
A: 5, B: 2, A-B: 3 BINGO
A: 5, B: 8, A-B: -3 BINGO
A: 8, B: 3, A-B: 5
A: 8, B: 5, A-B: 3 BINGO
A: 8, B: 3, A-B: 5
A: 8, B: 2, A-B: 6
A: 8, B: 8, A-B: 0
A: 3, B: 3, A-B: 0
A: 3, B: 5, A-B: -2
A: 3, B: 8, A-B: -5
A: 3, B: 2, A-B: 1
A: 3, B: 8, A-B: -5
A: 2, B: 3, A-B: -1
A: 2, B: 5, A-B: -3 BINGO
A: 2, B: 8, A-B: -6
A: 2, B: 3, A-B: -1
A: 2, B: 8, A-B: -6
A: 8, B: 3, A-B: 5
A: 8, B: 5, A-B: 3 BINGO
A: 8, B: 8, A-B: 0
A: 8, B: 3, A-B: 5
A: 8, B: 2, A-B: 6
Result: 6
Вот код
кодstatic int MathMod(int number)
{
if (number < 0)
number = number * -1;
return number;
}
List list = new List() { 3, 5, 8, 3, 2, 8 };
int desired = 3;
int result = 0;
for (int i = 0; i <= list.Count - 1; i++)
{
for (int j = 0; j <= list.Count - 1; j++)
{
if (i == j)
continue;
Console.Write(Environment.NewLine + "A: "+list+", B: "+ list[j] + ", A-B: " + (list - list[j]));
if (MathMod(list - list[j]) == desired)
{
result++;
Console.Write(" BINGO");
}
}
}
Console.WriteLine(Environment.NewLine + "Result: " + result);
За алгоритмы не шарю, просто по фану за два цикла решил.UPD: ошибка с условием цикла в коде, исправил
Нажмите, чтобы раскрыть...
У тебя получилось 6, потому что ты каждую пару чисел дважды посчитал. Нас в данном случае интересует только сама пара, без порядка проверки.
Так что тебе надо в конце результат на два поделить
iChrome[BY] сказал(а):↑Да, понятно, что при плохой хеш функции поиск в сете станет работать за O(N) и тогда весь алгоритм превращается в O(N^2).
Спасибо за большой ответ и найденную ошибку)Нажмите, чтобы раскрыть...Ну беда следующая:
Пусть хеш-таблица использует хеш-функцию h, при этом h ограничена сверху
Почему требую h ограниченой сверху? потому что у нас в любом случае не бесконечно памяти: при наличии бесконечной RAM, существует решение попроще: просто возьми тождественную хеш-функцию h(i) = i и построй алгоритм, надобность в хеш-таблице отпадает в принципе
Лемма: Тогда существует набор данных из условия при котором коллизий будет O(N)
Ну, действительно, по принципу Дирихле давай подбирать из натурального ряда числа.
Рассмотрим последовательность a_1, a_2, …, a_k, a_k+1, где k — максимальное допустимое значение хеш-функции, по принципу Дирихле среди них есть два числа h(a_i) == h(a_j). Их и возьмём в ответ.
Повторим этот шаг k+1 раз и получим, что существует хотя бы один блок с 4-мя значениями. Ну и так далее.
Возьмем теперь множество натуральных чисел 1 .. (k+1)^(log(N) + 1), в нём исходя из соображений выше найдётся подмножество |S| = N, причем |h(S)| = 1, ну то есть это множество коллизий
возьмем N = 2T чисел, T из множества S, а сверху к ним добавим x - k для любого x из T, ну действительно, количество коллизий как минимум T = N / 2 = O(N)
Ну и тут, такие дела, что в целом вне зависимости от устройства таблицы, O(n) коллизий в худшем случае либо поиск либо вставку нам убьют до O(n), а так как мы пользуемся и тем и тем по O(n) раз, то однажды нам прилетит квадрат на голову.
Ну вот такие пироги математические: набираем подмножество из натуральных где-то до порядка N^log(N) для специфичной хеш-функции, строим контрпример, получаем O(N^2).
Можно даже поупражняться в дури и сделать через дебаггер hashmap killer.
Нечто подобное, только более красивое, делают люди иногда: quicksort killer, например, там обычно прям на ходу алгоритма строится плохой набор данных.
И иногда можно убить чьё-то решение на контесте, если он выбирает плохой источник рандома.
На практике, конечно, хештаблица в руки и не паримся.
Алгоритмические задачи на собесах - это такой же мусор, как задачи про "есть два ведра". Может им ещё в 2023 году методы сортировки в чатике расписывать?
Мне, благо, до сих пор таких не попадалось каким-то чудом, на лид вакансию все спрашивают по языку за стандартный набор ооп\паттерны\солид\грасп и прочую лабуду, а дальше уже по специфическим особенностям движка юнити пробегаются, оптимизации, батчинг, urp, шейдеры, свет, навмеши, бандлы. Могут чето по графам спросить порой, но в основном за матан и алгоритмы никто не спрашивал. Им важнее примеры когда применил правильное архитектурное или оптимизационное решение чем сэкономил игре кучу фэпосов, или ускорил разработку гибкой архитектурой, чем сэкономил компании кучу бабла, а не вот это вот эти ваши O(N) / O(NlogN). Литкод никому не нужен, а те, кто думают что он им нужен, и спрашивают это у кандидатов на собесах - тупо не понимают кого ищут и зачем.
graffitcrab сказал(а):↑Алгоритмические задачи на собесах - это такой же мусор, как задачи про "есть два ведра". Может им ещё в 2023 году методы сортировки в чатике расписывать?
Мне, благо, до сих пор таких не попадалось каким-то чудом, на лид вакансию все спрашивают по языку за стандартный набор ооп\паттерны\солид\грасп и прочую лабуду, а дальше уже по специфическим особенностям движка юнити пробегаются, оптимизации, батчинг, urp, шейдеры, свет, навмеши, бандлы. Могут чето по графам спросить порой, но в основном за матан и алгоритмы никто не спрашивал. Им важнее примеры когда применил правильное архитектурное или оптимизационное решение чем сэкономил игре кучу фэпосов, или ускорил разработку гибкой архитектурой, чем сэкономил компании кучу бабла, а не вот это вот эти ваши O(N) / O(NlogN). Литкод никому не нужен, а те, кто думают что он им нужен, и спрашивают это у кандидатов на собесах - тупо не понимают кого ищут и зачем.
Нажмите, чтобы раскрыть...
Спасибо за важное мнение, но как специалист по HR-tech вынужден признать его мусорным. Алгоритмические задачи это лучший способ отсеять лохов от нормальных ребят при наборе в крупную компанию. Ты че реально собираешься сидеть общаться с каждым из 2 тысяч людей, которые прислали тебе свое CV, спрашивать у них за солид, когда не факт, что чел в принципе может код написать?
А так отослал алгоритмический тест, отсеял всех дебилов, взял 20 лучших и с ними уже ведешь общение. Разумеется речь идет о джунах/миддлах, реже о сеньорах.
Для сеньоров есть смысл давать отсевочный тест на архитектуру/рефакторинг
Данил Низамов сказал(а):↑Спасибо за важное мнение, но как специалист по HR-tech вынужден признать его мусорным. Алгоритмические задачи это лучший способ отсеять лохов от нормальных ребят при наборе в крупную компанию. Ты че реально собираешься сидеть общаться с каждым из 2 тысяч людей, которые прислали тебе свое CV, спрашивать у них за солид, когда не факт, что чел в принципе может код написать?
Нажмите, чтобы раскрыть...Если чел не понимает архитектурные штуки - он посыпется через пару вопросов так же, как посыпался бы и от вопросов про алгоритмы. С разницей в том, что алгоритмы нужны только чтобы докопаться на собесе, и в 1% реальных задач, где образовалось узкое горлышко и надо извернуться чтобы работало быстро, а вот понимание паттернов и архитектуры нужно 99% времени. Просто надо спрашивать не прямо "што такое принцип подстановки барбары лисков?", а предлагать ситуации, как бы он решил архитектурно вот такую вот задачу. Кто не понимает паттернов - он их либо пытается натыкать где не попадя, либо наоборот, даже не додумается что они тут нужны и начнет городить помойку. Тем более что так что так ты будешь общаться с каждым из 2 тысяч людей, не очень понял как вопрос об алгоритмах на собеседованиификсит необходимость собеседоваться с даунами.
Данил Низамов сказал(а):↑А так отослал алгоритмический тест, отсеял всех дебилов, взял 20 лучших и с ними уже ведешь общение. Разумеется речь идет о джунах/миддлах, реже о сеньорах.
Нажмите, чтобы раскрыть...Ах вот оно что, теперь понял. Ну поздравляю, ты отсеял кучу хороших кандидатов, которые увидев этот тест поняли, что вашей компании нужно сторониться как спида. Ну а чо, зато у тебя люди, которые 1% задач решат классно, а 99% времени будут синглтоны городить по всему проекту. А потом говорить "ну тут надо пол проекта переписывать, иначе текст на 10 пикселей вправо не сдвинется, мы слишком сильно наговнокодили".
Данил Низамов сказал(а):↑Для сеньоров есть смысл давать отсевочный тест на архитектуру/рефакторинг
Нажмите, чтобы раскрыть...ну я в принципе про это и говорил, когда привел пример вопроса про решение реальных задач, которые привели приложение до ума и заработали компании пачку бабла.
Zacateca сказал(а):↑создай двумерный массив и записывай туда в x[0] - уникальное число, а в x[1] - количество повторений.Вернуть макс значение x[n][1].
Можно сделать через DICT, где ключ - число, а значение - кол-во повторений.
Либо можно спихнуть массив в словарь (сбросить дубликаты), сам массив конвертнуть в строку (с разделителем) и искать через text.count( element of dict)
Нажмите, чтобы раскрыть...и потом оказывается что ты проходишь собес на сеньор жава разработчика и тебя уже на этом этапе отсеивают)
массивы не очень сильно хорошо дружат с памятью в жава, все масивы хранятся в оперативке и в итоге у тебя при большом масиве все будет ужастно тормозить, так что списки и листы наше все
graffitcrab сказал(а):↑Поздравляю, ты отсеял кучу хороших кандидатов, которые увидев этот тест поняли, что вашей компании нужно сторониться как спида. Ну а чо, зато у тебя люди, которые 1% задач решат классно, а 99% времени будут синглтоны городить по всему проекту. А потом говорить "ну тут надо пол проекта переписывать, иначе текст на 10 пикселей вправо не сдвинется, мы слишком сильно наговнокодили.
Нажмите, чтобы раскрыть...
Если у тебя какие-то проблемы с решением 45-минутного тестового в топ компанию, то это твоя личная проблема. Нашими методами отсева кандидатов довольны топ компании. И чет никто не сторонится этих компаний только из-за того, что на входе есть алгоритмическое тестовое. Короче как-нибудь без тебя разберемся, как нам людей нанимать)
И вообще тема не про это. Я попросил людей поделиться задачами, которыми их валили на собеседованиях. Чем вонять, лучше предложи какую-нибудь интересную задачу на рефакторинг/архитектуру
SweetSweetLoots сказал(а):↑и потом оказывается что ты проходишь собес на сеньор жава разработчика и тебя уже на этом этапе отсеивают)
массивы не очень сильно хорошо дружат с памятью в жава, все масивы хранятся в оперативке и в итоге у тебя при большом масиве все будет ужастно тормозить, так что списки и листы наше все
Нажмите, чтобы раскрыть...А где хранятся листы и списки в джаве? В кэше проца или что? Что быстрее оперативки?
Данил Низамов сказал(а):↑Если у тебя какие-то проблемы с решением 45-минутного тестового в топ компанию, то это твоя личная проблема. Нашими методами отсева кандидатов довольны топ компании. И чет никто не сторонится этих компаний только из-за того, что на входе есть алгоритмическое тестовое. Короче как-нибудь без тебя разберемся, как нам людей нанимать)
Нажмите, чтобы раскрыть...Никакой уважающий себя айтишник не будет тратить даже 45 минут на какой-то говнотест в компанию, которая не понимает что ей нужно. Во первых потому что банально время синьёра стоит дороже амбиций попасть к вам, если вы не рокстар конечно, а вот вторых, потому что как я уже написал: дело не в проблемах с решением, а в том, что хорошие кандидаты ищут тех, кто понимает, зачем им нужен человек, иначе если такой треш на поверхности айсберга - то на глубине там вообще абсолютная жопа творится. Алгоритмы нужны скорее чтобы отсеять вас. Такие дела.
Данил Низамов сказал(а):↑И вообще тема не про это. Я попросил людей поделиться задачами, которыми их валили на собеседованиях. Чем вонять, лучше предложи какую-нибудь интересную задачу на рефакторинг/архитектуру
Нажмите, чтобы раскрыть...Я бы предложил, но увы меня из последних собесов по архитектуре пока не смогли завалить. Были либо банальные вопросы на которые и мидл ответит, а может даже и джун, зазубрив либо из последних что было - у нас сложилась очень интересная беседа, с понимающим человеком, от которой я получил удовольствие, не часто встретишь людей с горящими глазами, с которыми есть о чем поговорить. Офер не принял чисто по организационным причинам, но в плане девелоперов в таком окружении поработал бы с удовольствием.
SweetSweetLoots сказал(а):↑и потом оказывается что ты проходишь собес на сеньор жава разработчика и тебя уже на этом этапе отсеивают)
массивы не очень сильно хорошо дружат с памятью в жава, все масивы хранятся в оперативке и в итоге у тебя при большом масиве все будет ужастно тормозить, так что списки и листы наше все
Нажмите, чтобы раскрыть...Я не знаю джаву и странно что я вообще окажусь на собесе к нему. В питоне лист - по сути массив, насколько помню.
Данил Низамов сказал(а):↑
Спасибо за важное мнение, но как специалист по HR-tech вынужден признать его мусорным. Алгоритмические задачи это лучший способ отсеять лохов от нормальных ребят при наборе в крупную компанию. Ты че реально собираешься сидеть общаться с каждым из 2 тысяч людей, которые прислали тебе свое CV, спрашивать у них за солид, когда не факт, что чел в принципе может код написать?
А так отослал алгоритмический тест, отсеял всех дебилов, взял 20 лучших и с ними уже ведешь общение. Разумеется речь идет о джунах/миддлах, реже о сеньорах.
Для сеньоров есть смысл давать отсевочный тест на архитектуру/рефакторинг
Нажмите, чтобы раскрыть...Расскажи в двух словах кого набираешь (должность и обязанности). Интересно для чего вы в компании требуете знание алгоритмов с оптимизацией.
graffitcrab сказал(а):↑Никакой уважающий себя айтишник не будет тратить даже 45 минут на какой-то говнотест в компанию, которая не понимает что ей нужно. Во первых потому что банально время синьёра стоит дороже амбиций попасть к вам, если вы не рокстар конечно, а вот вторых, потому что как я уже написал: дело не в проблемах с решением, а в том, что хорошие кандидаты ищут тех, кто понимает, зачем им нужен человек, иначе если такой треш на поверхности айсберга - то на глубине там вообще абсолютная жопа творится. Алгоритмы нужны скорее чтобы отсеять вас. Такие дела.
Нажмите, чтобы раскрыть...
Ну и шо ты мне третий раз пишешь свое необоснованное личное мнение другими словами? Можешь еще хоть 5 раз перефразировать, это никого не убедит и ценности в этом немного. Твое мнение – это мнение со стороны кандидата, я работаю плотно с HR-технологиями и базирую свое мнение на взгляде со стороны хайринга.
Пока сам не попробуешь нанять джуна в убер, не прочувствуешь, насколько сложно сделать качественный предварительный отсев нескольких тысяч CV в месяц. И уж тем более не увидишь, как сильно помогают в этом алгоритмические задачи
haHAA сказал(а):↑Расскажи в двух словах кого набираешь (должность и обязанности). Интересно для чего вы в компании требуете знание алгоритмов с оптимизацией.
Нажмите, чтобы раскрыть...
В двух словах не получится, потому что мы набираем специалистов в топ компании США. Речь идет о десятках тысяч кандидатов ежемесячно)
Вот тут можешь почитать про наш тест на базовые навыки кодинга. Именно он нужен для предварительного отсева джунов/миддлов. https://codesignal.com/resource/general-coding-data-sheet/
Вообще мы публикуем все наши исследования, там все есть в открытом доступе
UPD: на самом деле не совсем в открытом, можно скачать только указав корпоративную почту. Если честно, сам не знал об этом
Данил Низамов сказал(а):↑Ну и шо ты мне третий раз пишешь свое необоснованное личное мнение другими словами? Можешь еще хоть 5 раз перефразировать, это никого не убедит и ценности в этом немного. Твое мнение – это мнение со стороны кандидата, я работаю плотно с HR-технологиями и базирую свое мнение на взгляде со стороны хайринга.
Пока сам не попробуешь нанять джуна в убер, не прочувствуешь, насколько сложно сделать качественный предварительный отсев нескольких тысяч CV в месяц. И уж тем более не увидишь, как сильно помогают в этом алгоритмические задачиНажмите, чтобы раскрыть...Ну джуны это чуток другой тир, я бы их наверное по тестовым заданиям конкретным отбирал бы, а не по алгоритмическим задачам, опять же. Просто у меня есть пример, у меня одногрупник в универе офигенно шарил матан и алгоритмы. Вот прям гений математики был. Но от его кода я даже тогда хотел себе лоб фейспалмом разбить, мы всей нашей пати говорили ему что так не должно быть. Потому что понимаешь, он шарит за алгоритмы, но не шарит как писать читаемый код, не понял ооп, пишет полотно огромное в один метод и считает что этого достаточно. Он очень долго не мог устроиться никуда, потом где-то спустя год или два его взяли в геймлофт, на разработку май литтл пони браузерного
Просидел там лет пять, насколько я знаю, давно с ним не общаюсь. А ещё он постоянно рассуждал что оптимизация не нужна, когда можно докупить ещё планок оперативки, от чего у нас тоже жопа горела. И он не тролил, он реально так считал. Вот и нанял бы ты такого джуна в свой убер, потому что он бы хорошо алгоритмическую задачу тебе решил бы.
А вообще я тебя понимаю, как я понял у вас шр компания, которая не себе сотрудников ищет, а "продает" шр услуги другим компаниям, и вам в принципе не интересно чё там дальше будет с компанией, и как там девелоперы которых вы отобрали в код говном насрут. Главное чтобы приняли и в течении испыталки не вытурили. Поэтому у нас и разный взгляд на ситуацию, я смотрю на это всё с точки зрения амбиций компании, ты смотришь с точки зрения захайрить как можно больше мяса, которое примут.
graffitcrab сказал(а):↑Ну джуны это чуток другой тир, я бы их наверное по тестовым заданиям конкретным отбирал бы, а не по алгоритмическим задачам, опять же. Просто у меня есть пример, у меня одногрупник в универе офигенно шарил матан и алгоритмы. Вот прям гений математики был. Но от его кода я даже тогда хотел себе лоб фейспалмом разбить, мы всей нашей пати говорили ему что так не должно быть. Потому что понимаешь, он шарит за алгоритмы, но не шарит как писать читаемый код, не понял ооп, пишет полотно огромное в один метод и считает что этого достаточно. Он очень долго не мог устроиться никуда, потом где-то спустя год или два его взяли в геймлофт, на разработку май литтл пони браузерного
Просидел там лет пять, насколько я знаю, давно с ним не общаюсь. А ещё он постоянно рассуждал что оптимизация не нужна, когда можно докупить ещё планок оперативки, от чего у нас тоже жопа горела. И он не тролил, он реально так считал. Вот и нанял бы ты такого джуна в свой убер, потому что он бы хорошо алгоритмическую задачу тебе решил бы.
А вообще я тебя понимаю, как я понял у вас шр компания, которая не себе сотрудников ищет, а "продает" шр услуги другим компаниям, и вам в принципе не интересно чё там дальше будет с компанией, и как там девелоперы которых вы отобрали в код говном насрут. Поэтому у нас и разный взгляд на ситуацию, я смотрю на это всё с точки зрения амбиций компании, ты смотришь с точки зрения захайрить как можно больше мяса, которое примут.
Нажмите, чтобы раскрыть...
Я не говорю о том, что мы кого-то собираемся нанимать по тестовому. Это _отсевочный_ механизм. Мы берем N человек и оставляем из них M, где M много меньше N.
Наша цель в том, чтобы их оставшихся M человек на работу по результатам более глубоких интервью (которые проводят чаще всего уже сами компании) устроилось 0.3M человек. Это очень-очень оптимистичный показатель, такого ни у кого на рынке нет, но мы к нему стремимся.
Офк никто не собирается по одному тестовому выставлять оффер рандомному челу
Данил Низамов сказал(а):↑
Я не говорю о том, что мы кого-то собираемся нанимать по тестовому. Это _отсевочный_ механизм. Мы берем N человек и оставляем из них M, где M много меньше N.
Наша цель в том, чтобы их оставшихся M человек на работу по результатам более глубоких интервью (которые проводят чаще всего уже сами компании) устроилось 0.3M человек. Это очень-очень оптимистичный показатель, такого ни у кого на рынке нет, но мы к нему стремимся.
Офк никто не собирается по одному тестовому выставлять оффер рандомному челуНажмите, чтобы раскрыть...Проблема в том, что вы отсеиваете в том числе и годноту. Для вас, как для компании предоставляющей услуги шр - это не проблема, но для меня, как человека рассуждающего с точки зрения того, что нужны лучшие, те, кто сделают моей компании качественный расширяемый продукт - это суперважно. И поэтому мы не поймем друг друга.
graffitcrab сказал(а):↑Проблема в том, что вы отсеиваете в том числе и годноту. Для вас, как для компании предоставляющей услуги шр - это не проблема, но для меня, как человека рассуждающего с точки зрения того, что нужны лучшие, те, кто сделают моей компании качественный расширяемый продукт - это суперважно. И поэтому мы не поймем друг друга.
Нажмите, чтобы раскрыть...Ну я тебе изначально и говорил, что приходится отсеивать, потому что кандидатов слишком много. Можно ли сделать более качественный отбор? Наверное, да, но это необоснованно дорого. Тем более если отбором будут заниматься инженеры компании, у которых очень дорого стоит время
Я на сто процентов согласен, что очень обидно терять талантливых кандидатов, которые были отсеяны бездушной алгоритмической задачей. Еще обиднее быть таким кандидатом. Но реалии рынка таковы, что это вынужденная мера
Тема закрыта
-
ЗаголовокРазделОтветов ПросмотровПоследнее сообщение
-
MrInfinity666 18 Apr 2025 в 05:16Сообщений: 5 18 Apr 2025 в 05:16
Сообщений:5
Просмотров:13
-
Сообщений:4
Просмотров:16
-
deathxsnow 18 Apr 2025 в 03:12Сообщений: 8 18 Apr 2025 в 03:12
Сообщений:8
Просмотров:32
-
Dragon_s Fury 18 Apr 2025 в 02:33Сообщений: 2 18 Apr 2025 в 02:33
Сообщений:2
Просмотров:11
-
HeTeS666 18 Apr 2025 в 01:41Сообщений: 8 18 Apr 2025 в 01:41
Сообщений:8
Просмотров:41