Данил Низамов

Пользователь

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Данил Низамов

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

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)

Hit Girl

Пользователь

Регистрация: 10.12.2014

Сообщения: 4849

Рейтинг: 2290

Hit Girl

Регистрация: 10.12.2014

Сообщения: 4849

Рейтинг: 2290

Данил Низамов сказал(а):

Расскажите, на каких задачах вас валили на собеседованиях? Есть какие-то задачи-гробы, которые похоронили вашу попытку попасть в компанию? Я один раз на алгоритмической секции яндекса завалился на вот такой задаче. Она супер ультра простая, сейчас я ее даже студентам не даю, но я тогда был совсем новичком в проге и не справился FeelsBadMan.png?1592047203

Написать функцию 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)

Данил Низамов

Пользователь

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Данил Низамов

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

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)




Wuqing

Пользователь

Регистрация: 07.05.2014

Сообщения: 7216

Рейтинг: 4422

Wuqing

Регистрация: 07.05.2014

Сообщения: 7216

Рейтинг: 4422

img
Данил Низамов сказал(а):

Расскажите, на каких задачах вас валили на собеседованиях? Есть какие-то задачи-гробы, которые похоронили вашу попытку попасть в компанию? Я один раз на алгоритмической секции яндекса завалился на вот такой задаче. Она супер ультра простая, сейчас я ее даже студентам не даю, но я тогда был совсем новичком в проге и не справился FeelsBadMan.png?1592047203

Написать функцию 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 как результат

Сетка

Вот код

код


За алгоритмы не шарю, просто по фану за два цикла решил.

UPD: ошибка с условием цикла в коде, исправил

Данил Низамов

Пользователь

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Данил Низамов

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Wuqing сказал(а):

Мне вышло 6 как результат

Сетка

Вот код

код


За алгоритмы не шарю, просто по фану за два цикла решил.

UPD: ошибка с условием цикла в коде, исправил

Нажмите, чтобы раскрыть...

У тебя получилось 6, потому что ты каждую пару чисел дважды посчитал. Нас в данном случае интересует только сама пара, без порядка проверки.

Так что тебе надо в конце результат на два поделить

haHAA

Пользователь

Регистрация: 25.03.2017

Сообщения: 1205

Рейтинг: 777

haHAA

Регистрация: 25.03.2017

Сообщения: 1205

Рейтинг: 777

img

Даже дефолтная тема про задачку с кодварс/литкод интереснее в 100 раз тем вкатывальщиков

antxndemxn

Пользователь

Регистрация: 08.04.2013

Сообщения: 4113

Рейтинг: 3094

antxndemxn

Регистрация: 08.04.2013

Сообщения: 4113

Рейтинг: 3094

накидал сходу на жс, про оптимальность умолчим)


const fn = (arr, k) => {
return (

arr


.map((n) => arr.filter((n2) => Math.abs(n - n2) === k).length)


.reduce((sum, n) => sum + n) / 2

);
};


YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 16240

Рейтинг: 6393

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 16240

Рейтинг: 6393

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, например, там обычно прям на ходу алгоритма строится плохой набор данных.


И иногда можно убить чьё-то решение на контесте, если он выбирает плохой источник рандома.


На практике, конечно, хештаблица в руки и не паримся.

Данил Низамов

Пользователь

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Данил Низамов

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Вообще я тему создавал чтобы вы своих задачек накидали, а не решали всем форумом мою PeepoAnd.png?1577443023

Удалено 624055

Пользователь

Регистрация: 24.03.2016

Сообщения: 36

Рейтинг: 15

Удалено 624055

Регистрация: 24.03.2016

Сообщения: 36

Рейтинг: 15

img
Zacateca сказал(а):

text.count( element of dict)

Нажмите, чтобы раскрыть...

это n^2

graffitcrab

Пользователь

Регистрация: 03.07.2014

Сообщения: 8492

Рейтинг: 5002

graffitcrab

Регистрация: 03.07.2014

Сообщения: 8492

Рейтинг: 5002

Алгоритмические задачи на собесах - это такой же мусор, как задачи про "есть два ведра". Может им ещё в 2023 году методы сортировки в чатике расписывать? Pepega.png?1599561436

Мне, благо, до сих пор таких не попадалось каким-то чудом, на лид вакансию все спрашивают по языку за стандартный набор ооп\паттерны\солид\грасп и прочую лабуду, а дальше уже по специфическим особенностям движка юнити пробегаются, оптимизации, батчинг, urp, шейдеры, свет, навмеши, бандлы. Могут чето по графам спросить порой, но в основном за матан и алгоритмы никто не спрашивал. Им важнее примеры когда применил правильное архитектурное или оптимизационное решение чем сэкономил игре кучу фэпосов, или ускорил разработку гибкой архитектурой, чем сэкономил компании кучу бабла, а не вот это вот эти ваши O(N) / O(NlogN). Литкод никому не нужен, а те, кто думают что он им нужен, и спрашивают это у кандидатов на собесах - тупо не понимают кого ищут и зачем.

Данил Низамов

Пользователь

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Данил Низамов

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

graffitcrab сказал(а):

Алгоритмические задачи на собесах - это такой же мусор, как задачи про "есть два ведра". Может им ещё в 2023 году методы сортировки в чатике расписывать? Pepega.png?1599561436

Мне, благо, до сих пор таких не попадалось каким-то чудом, на лид вакансию все спрашивают по языку за стандартный набор ооп\паттерны\солид\грасп и прочую лабуду, а дальше уже по специфическим особенностям движка юнити пробегаются, оптимизации, батчинг, urp, шейдеры, свет, навмеши, бандлы. Могут чето по графам спросить порой, но в основном за матан и алгоритмы никто не спрашивал. Им важнее примеры когда применил правильное архитектурное или оптимизационное решение чем сэкономил игре кучу фэпосов, или ускорил разработку гибкой архитектурой, чем сэкономил компании кучу бабла, а не вот это вот эти ваши O(N) / O(NlogN). Литкод никому не нужен, а те, кто думают что он им нужен, и спрашивают это у кандидатов на собесах - тупо не понимают кого ищут и зачем.

Нажмите, чтобы раскрыть...

Спасибо за важное мнение, но как специалист по HR-tech вынужден признать его мусорным. Алгоритмические задачи это лучший способ отсеять лохов от нормальных ребят при наборе в крупную компанию. Ты че реально собираешься сидеть общаться с каждым из 2 тысяч людей, которые прислали тебе свое CV, спрашивать у них за солид, когда не факт, что чел в принципе может код написать?

А так отослал алгоритмический тест, отсеял всех дебилов, взял 20 лучших и с ними уже ведешь общение. Разумеется речь идет о джунах/миддлах, реже о сеньорах.


Для сеньоров есть смысл давать отсевочный тест на архитектуру/рефакторинг

Zacateca

Пользователь

Регистрация: 22.12.2017

Сообщения: 34318

Рейтинг: 13370

Zacateca

Регистрация: 22.12.2017

Сообщения: 34318

Рейтинг: 13370

VovkaKalibrovka сказал(а):

это n^2

Нажмите, чтобы раскрыть...

да я там вообще неправильно написал. Надо алгоритмы почитать, уже 10 лет не глядел в них. Bonk.gif?1660474263

graffitcrab

Пользователь

Регистрация: 03.07.2014

Сообщения: 8492

Рейтинг: 5002

graffitcrab

Регистрация: 03.07.2014

Сообщения: 8492

Рейтинг: 5002

Данил Низамов сказал(а):

Спасибо за важное мнение, но как специалист по HR-tech вынужден признать его мусорным. Алгоритмические задачи это лучший способ отсеять лохов от нормальных ребят при наборе в крупную компанию. Ты че реально собираешься сидеть общаться с каждым из 2 тысяч людей, которые прислали тебе свое CV, спрашивать у них за солид, когда не факт, что чел в принципе может код написать?

Нажмите, чтобы раскрыть...

Если чел не понимает архитектурные штуки - он посыпется через пару вопросов так же, как посыпался бы и от вопросов про алгоритмы. С разницей в том, что алгоритмы нужны только чтобы докопаться на собесе, и в 1% реальных задач, где образовалось узкое горлышко и надо извернуться чтобы работало быстро, а вот понимание паттернов и архитектуры нужно 99% времени. Просто надо спрашивать не прямо "што такое принцип подстановки барбары лисков?", а предлагать ситуации, как бы он решил архитектурно вот такую вот задачу. Кто не понимает паттернов - он их либо пытается натыкать где не попадя, либо наоборот, даже не додумается что они тут нужны и начнет городить помойку. Тем более что так что так ты будешь общаться с каждым из 2 тысяч людей, не очень понял как вопрос об алгоритмах на собеседованиификсит необходимость собеседоваться с даунами.

Данил Низамов сказал(а):

А так отослал алгоритмический тест, отсеял всех дебилов, взял 20 лучших и с ними уже ведешь общение. Разумеется речь идет о джунах/миддлах, реже о сеньорах.

Нажмите, чтобы раскрыть...

Ах вот оно что, теперь понял. Ну поздравляю, ты отсеял кучу хороших кандидатов, которые увидев этот тест поняли, что вашей компании нужно сторониться как спида. Ну а чо, зато у тебя люди, которые 1% задач решат классно, а 99% времени будут синглтоны городить по всему проекту. А потом говорить "ну тут надо пол проекта переписывать, иначе текст на 10 пикселей вправо не сдвинется, мы слишком сильно наговнокодили".

Данил Низамов сказал(а):

Для сеньоров есть смысл давать отсевочный тест на архитектуру/рефакторинг

Нажмите, чтобы раскрыть...

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

SweetSweetLoots

Пользователь

Регистрация: 18.02.2022

Сообщения: 98

Рейтинг: 35

SweetSweetLoots

Регистрация: 18.02.2022

Сообщения: 98

Рейтинг: 35

Zacateca сказал(а):
создай двумерный массив и записывай туда в x[0] - уникальное число, а в x[1] - количество повторений.

Вернуть макс значение x[n][1].

Можно сделать через DICT, где ключ - число, а значение - кол-во повторений.


Либо можно спихнуть массив в словарь (сбросить дубликаты), сам массив конвертнуть в строку (с разделителем) и искать через text.count( element of dict)


Нажмите, чтобы раскрыть...

и потом оказывается что ты проходишь собес на сеньор жава разработчика и тебя уже на этом этапе отсеивают)


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

Данил Низамов

Пользователь

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Данил Низамов

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

graffitcrab сказал(а):

Поздравляю, ты отсеял кучу хороших кандидатов, которые увидев этот тест поняли, что вашей компании нужно сторониться как спида. Ну а чо, зато у тебя люди, которые 1% задач решат классно, а 99% времени будут синглтоны городить по всему проекту. А потом говорить "ну тут надо пол проекта переписывать, иначе текст на 10 пикселей вправо не сдвинется, мы слишком сильно наговнокодили.

Нажмите, чтобы раскрыть...



Если у тебя какие-то проблемы с решением 45-минутного тестового в топ компанию, то это твоя личная проблема. Нашими методами отсева кандидатов довольны топ компании. И чет никто не сторонится этих компаний только из-за того, что на входе есть алгоритмическое тестовое. Короче как-нибудь без тебя разберемся, как нам людей нанимать)

И вообще тема не про это. Я попросил людей поделиться задачами, которыми их валили на собеседованиях. Чем вонять, лучше предложи какую-нибудь интересную задачу на рефакторинг/архитектуру

haHAA

Пользователь

Регистрация: 25.03.2017

Сообщения: 1205

Рейтинг: 777

haHAA

Регистрация: 25.03.2017

Сообщения: 1205

Рейтинг: 777

img
SweetSweetLoots сказал(а):

и потом оказывается что ты проходишь собес на сеньор жава разработчика и тебя уже на этом этапе отсеивают)


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

Нажмите, чтобы раскрыть...

А где хранятся листы и списки в джаве? В кэше проца или что? Что быстрее оперативки?

graffitcrab

Пользователь

Регистрация: 03.07.2014

Сообщения: 8492

Рейтинг: 5002

graffitcrab

Регистрация: 03.07.2014

Сообщения: 8492

Рейтинг: 5002

Данил Низамов сказал(а):

Если у тебя какие-то проблемы с решением 45-минутного тестового в топ компанию, то это твоя личная проблема. Нашими методами отсева кандидатов довольны топ компании. И чет никто не сторонится этих компаний только из-за того, что на входе есть алгоритмическое тестовое. Короче как-нибудь без тебя разберемся, как нам людей нанимать)

Нажмите, чтобы раскрыть...

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

Данил Низамов сказал(а):

И вообще тема не про это. Я попросил людей поделиться задачами, которыми их валили на собеседованиях. Чем вонять, лучше предложи какую-нибудь интересную задачу на рефакторинг/архитектуру

Нажмите, чтобы раскрыть...

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

Zacateca

Пользователь

Регистрация: 22.12.2017

Сообщения: 34318

Рейтинг: 13370

Zacateca

Регистрация: 22.12.2017

Сообщения: 34318

Рейтинг: 13370

SweetSweetLoots сказал(а):

и потом оказывается что ты проходишь собес на сеньор жава разработчика и тебя уже на этом этапе отсеивают)


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

Нажмите, чтобы раскрыть...

Я не знаю джаву и странно что я вообще окажусь на собесе к нему. В питоне лист - по сути массив, насколько помню.

haHAA

Пользователь

Регистрация: 25.03.2017

Сообщения: 1205

Рейтинг: 777

haHAA

Регистрация: 25.03.2017

Сообщения: 1205

Рейтинг: 777

img
Данил Низамов сказал(а):

Спасибо за важное мнение, но как специалист по HR-tech вынужден признать его мусорным. Алгоритмические задачи это лучший способ отсеять лохов от нормальных ребят при наборе в крупную компанию. Ты че реально собираешься сидеть общаться с каждым из 2 тысяч людей, которые прислали тебе свое CV, спрашивать у них за солид, когда не факт, что чел в принципе может код написать?

А так отослал алгоритмический тест, отсеял всех дебилов, взял 20 лучших и с ними уже ведешь общение. Разумеется речь идет о джунах/миддлах, реже о сеньорах.


Для сеньоров есть смысл давать отсевочный тест на архитектуру/рефакторинг

Нажмите, чтобы раскрыть...

Расскажи в двух словах кого набираешь (должность и обязанности). Интересно для чего вы в компании требуете знание алгоритмов с оптимизацией.

Данил Низамов

Пользователь

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Данил Низамов

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

graffitcrab сказал(а):

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

Нажмите, чтобы раскрыть...

Ну и шо ты мне третий раз пишешь свое необоснованное личное мнение другими словами? Можешь еще хоть 5 раз перефразировать, это никого не убедит и ценности в этом немного. Твое мнение – это мнение со стороны кандидата, я работаю плотно с HR-технологиями и базирую свое мнение на взгляде со стороны хайринга.

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


haHAA сказал(а):

Расскажи в двух словах кого набираешь (должность и обязанности). Интересно для чего вы в компании требуете знание алгоритмов с оптимизацией.

Нажмите, чтобы раскрыть...


В двух словах не получится, потому что мы набираем специалистов в топ компании США. Речь идет о десятках тысяч кандидатов ежемесячно)

Вот тут можешь почитать про наш тест на базовые навыки кодинга. Именно он нужен для предварительного отсева джунов/миддлов. https://codesignal.com/resource/general-coding-data-sheet/

Вообще мы публикуем все наши исследования, там все есть в открытом доступе

UPD: на самом деле не совсем в открытом, можно скачать только указав корпоративную почту. Если честно, сам не знал об этом

graffitcrab

Пользователь

Регистрация: 03.07.2014

Сообщения: 8492

Рейтинг: 5002

graffitcrab

Регистрация: 03.07.2014

Сообщения: 8492

Рейтинг: 5002

Данил Низамов сказал(а):

Ну и шо ты мне третий раз пишешь свое необоснованное личное мнение другими словами? Можешь еще хоть 5 раз перефразировать, это никого не убедит и ценности в этом немного. Твое мнение – это мнение со стороны кандидата, я работаю плотно с HR-технологиями и базирую свое мнение на взгляде со стороны хайринга.

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

Нажмите, чтобы раскрыть...

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

А вообще я тебя понимаю, как я понял у вас шр компания, которая не себе сотрудников ищет, а "продает" шр услуги другим компаниям, и вам в принципе не интересно чё там дальше будет с компанией, и как там девелоперы которых вы отобрали в код говном насрут. Главное чтобы приняли и в течении испыталки не вытурили. Поэтому у нас и разный взгляд на ситуацию, я смотрю на это всё с точки зрения амбиций компании, ты смотришь с точки зрения захайрить как можно больше мяса, которое примут.

Данил Низамов

Пользователь

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Данил Низамов

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

graffitcrab сказал(а):

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

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

Нажмите, чтобы раскрыть...

Я не говорю о том, что мы кого-то собираемся нанимать по тестовому. Это _отсевочный_ механизм. Мы берем N человек и оставляем из них M, где M много меньше N.

Наша цель в том, чтобы их оставшихся M человек на работу по результатам более глубоких интервью (которые проводят чаще всего уже сами компании) устроилось 0.3M человек. Это очень-очень оптимистичный показатель, такого ни у кого на рынке нет, но мы к нему стремимся.

Офк никто не собирается по одному тестовому выставлять оффер рандомному челу

graffitcrab

Пользователь

Регистрация: 03.07.2014

Сообщения: 8492

Рейтинг: 5002

graffitcrab

Регистрация: 03.07.2014

Сообщения: 8492

Рейтинг: 5002

Данил Низамов сказал(а):

Я не говорю о том, что мы кого-то собираемся нанимать по тестовому. Это _отсевочный_ механизм. Мы берем N человек и оставляем из них M, где M много меньше N.

Наша цель в том, чтобы их оставшихся M человек на работу по результатам более глубоких интервью (которые проводят чаще всего уже сами компании) устроилось 0.3M человек. Это очень-очень оптимистичный показатель, такого ни у кого на рынке нет, но мы к нему стремимся.

Офк никто не собирается по одному тестовому выставлять оффер рандомному челу

Нажмите, чтобы раскрыть...

Проблема в том, что вы отсеиваете в том числе и годноту. Для вас, как для компании предоставляющей услуги шр - это не проблема, но для меня, как человека рассуждающего с точки зрения того, что нужны лучшие, те, кто сделают моей компании качественный расширяемый продукт - это суперважно. И поэтому мы не поймем друг друга.

Данил Низамов

Пользователь

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

Данил Низамов

Регистрация: 17.08.2021

Сообщения: 469

Рейтинг: 320

graffitcrab сказал(а):

Проблема в том, что вы отсеиваете в том числе и годноту. Для вас, как для компании предоставляющей услуги шр - это не проблема, но для меня, как человека рассуждающего с точки зрения того, что нужны лучшие, те, кто сделают моей компании качественный расширяемый продукт - это суперважно. И поэтому мы не поймем друг друга.

Нажмите, чтобы раскрыть...

Ну я тебе изначально и говорил, что приходится отсеивать, потому что кандидатов слишком много. Можно ли сделать более качественный отбор? Наверное, да, но это необоснованно дорого. Тем более если отбором будут заниматься инженеры компании, у которых очень дорого стоит время

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