Если интересно как я отлетел на микрособесе на C# бэка

avatar ttutiki

615

48

AtagaN

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

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

Сообщения: 1169

Рейтинг: 328

AtagaN

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

Сообщения: 1169

Рейтинг: 328

ttutiki сказал(а):


свалилась бы ошибка


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


Я не знаю как в С# (думаю также), но в java ошибки бы не было. Ты потом бы не нашел в таблице значение по ключу.



UnknownFake

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

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

Сообщения: 3998

Рейтинг: 1546

UnknownFake

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

Сообщения: 3998

Рейтинг: 1546

Lapish72 сказал(а):


А это было джун/мидл/син? И какая зп +/- была указана? А так, спс за инфу roflanzdarova.png?1616515107
UPD:


Ковариантность и контрвариантность в обобщенных интерфейсах сколько не читал не могу понять. Мозг отлетает от этого.


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


а что именно не понял? Спрашиваю потому что казалось что там и нечего понимать кек

ttutiki

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

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

Сообщения: 1898

Рейтинг: 646

ttutiki

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

Сообщения: 1898

Рейтинг: 646

AtagaN сказал(а):


Я не знаю как в С# (думаю также), но в java ошибки бы не было. Ты потом бы не нашел в таблице значение по ключу.




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


Ну да, реально нет ошибки. Обоссан получается (бросаться учить алгоритмы все равно не буду, лучше курс по реакту какой нибудь пройду)

Lapish72

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

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

Сообщения: 2017

Рейтинг: 655

Lapish72

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

Сообщения: 2017

Рейтинг: 655

img

UnknownFake сказал(а):


а что именно не понял? Спрашиваю потому что казалось что там и нечего понимать кек


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




Реальный пример где без этого не обойтись?

AtagaN

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

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

Сообщения: 1169

Рейтинг: 328

AtagaN

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

Сообщения: 1169

Рейтинг: 328

ttutiki сказал(а):


Ну да, реально нет ошибки. Обоссан получается PepeCry.png (бросаться учить алгоритмы все равно не буду, лучше курс по реакту какой нибудь пройдуmonkeykingarc.png?1619152388)


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


Я не топлю за алгоритмы. А реализация хэш таблиц - это стандартная библиотека языка

UnknownFake

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

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

Сообщения: 3998

Рейтинг: 1546

UnknownFake

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

Сообщения: 3998

Рейтинг: 1546

Lapish72 сказал(а):




Реальный пример где без этого не обойтись?


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


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




В контейнерах, допускающих запись объектов, ковариантность считается нежелательной, поскольку она позволяет обходить контроль типов. В самом деле, рассмотрим ковариантные массивы. Пусть классы Cat и Dog наследуют от класса Animal (в частности, переменной типа Animal можно присвоить переменную типа Cat или Dog). Создадим массив Cat[]. Благодаря контролю типов в этот массив можно записывать лишь объекты типа Cat и его потомков. Затем присвоим ссылку на этот массив переменной типа Animal[] (ковариантность массивов это позволяет). Теперь в этот массив, известный уже как Animal[], запишем переменную типа Dog. Таким образом, в массив Cat[] мы записали Dog, обойдя контроль типов. Поэтому контейнеры, разрешающие запись, желательно делать инвариантными. Также, контейнеры, разрешающие запись, могут реализовывать два независимых интерфейса, ковариантный Producer и контравариантный Consumer, в этом случае вышеописанный обход контроля типов сделать не удастся.

songof5ky

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

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

Сообщения: 85

Рейтинг: 20

songof5ky

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

Сообщения: 85

Рейтинг: 20

img

Второй вопрос про внутреннее устройство словаря спрашивают постоянно, советую на Хабре найти статью и просто нормально разобраться.


Спрашивают что на мида, что на синьора

UnknownFake

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

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

Сообщения: 3998

Рейтинг: 1546

UnknownFake

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

Сообщения: 3998

Рейтинг: 1546

по сабжу, тс, забей, это тупые вопросы, которые не отражают реальных навыков

Delaver

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

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

Сообщения: 4562

Рейтинг: 1992

Delaver

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

Сообщения: 4562

Рейтинг: 1992

ttutiki сказал(а):


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


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


Так тебе же еще 1 вопрос задали.

itachinight

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

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

Сообщения: 89

Рейтинг: 145

itachinight

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

Сообщения: 89

Рейтинг: 145

ttutiki сказал(а):


Работаю щас на аналогичной должности, но зп в 3 раза меньше чем в вакансии. Висело старое резюме на hh, написала hr вчера мол перезвоните. Перезвонил, hr ничего не спросила, сказала тех лид перезвонит в течение дня. Уже вечереет, забыл про него, а вот звонит.

Говорит есть у меня два вопроса. Я в принципе тут уже задней мыслью понял что отвалюсь скорее всего.
Первый вопрос был логический про 8 бильярдных шаров, можете загуглить. Я протупил нормально так над ответом "нуу перебором минимум 1, максимум 7" потому что занервничал че то. Дальше говорит что мол можно же несколько шаров класть на чаши. Тут я быстро ответил что 4/2/1 т.е. за 3 взвешивания. Спросил как можно еще меньше? Я не ответил, но когда загуглил ответ понял что изи додумался бы если бы не нервничал.


Второй вопрос бы про Dictionary, для не шарпистов это название хэш таблицы. Спросил время доступа по ключу, я быстро ответил O(1). Дальше он спросил как она внутренне устроена. Я потупил немного, он перефразировал "как бы ты реализовал". Я протупил и не ответил. Не прошел соответственно.




Оба вопроса даунские как по мне. Ладно время доступа, но реализация то ему зачем? Я читал про реализацию, даже несколько раз может, но все что я запомнил так это то, что там где-то для чего-то высчитывается хэш функция и как-то используется для доступа к объектам. Типа я бэкэндер, никогда в жизни не писал свою реализацию словаря, я мог это запомнить только вызубрив, как я в свое время зачем-то запоминал определения ко/контравариантности.
Обидно конечно что на большую зп не залетел, но судя по сайту у них там куча баб и пара мужиков, мб в таком коллективе и работать бы не захотелось dankpepe.png?1592046820утешаю себя


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


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

UnknownFake

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

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

Сообщения: 3998

Рейтинг: 1546

UnknownFake

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

Сообщения: 3998

Рейтинг: 1546

AtagaN сказал(а):


Я сейчас загуглил и решил за минуту. Зачем это знать? Просто варианты разные перебрал и все.


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


брат, мне вот такую задачу дали: вычислить площадь соприкосновения колеса самолета без приборов и без линейки. У тебя 2 минуты на ответ. Посмотрим, как ты справишься с задачей без помощи инета хехе

IndiGo(real)

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

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

Сообщения: 5846

Рейтинг: 4779

IndiGo(real)

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

Сообщения: 5846

Рейтинг: 4779

ttutiki сказал(а):


Работаю щас на аналогичной должности, но зп в 3 раза меньше чем в вакансии. Висело старое резюме на hh, написала hr вчера мол перезвоните. Перезвонил, hr ничего не спросила, сказала тех лид перезвонит в течение дня. Уже вечереет, забыл про него, а вот звонит.

Говорит есть у меня два вопроса. Я в принципе тут уже задней мыслью понял что отвалюсь скорее всего.
Первый вопрос был логический про 8 бильярдных шаров, можете загуглить. Я протупил нормально так над ответом "нуу перебором минимум 1, максимум 7" потому что занервничал че то. Дальше говорит что мол можно же несколько шаров класть на чаши. Тут я быстро ответил что 4/2/1 т.е. за 3 взвешивания. Спросил как можно еще меньше? Я не ответил, но когда загуглил ответ понял что изи додумался бы если бы не нервничал.


Второй вопрос бы про Dictionary, для не шарпистов это название хэш таблицы. Спросил время доступа по ключу, я быстро ответил O(1). Дальше он спросил как она внутренне устроена. Я потупил немного, он перефразировал "как бы ты реализовал". Я протупил и не ответил. Не прошел соответственно.




Оба вопроса даунские как по мне. Ладно время доступа, но реализация то ему зачем? Я читал про реализацию, даже несколько раз может, но все что я запомнил так это то, что там где-то для чего-то высчитывается хэш функция и как-то используется для доступа к объектам. Типа я бэкэндер, никогда в жизни не писал свою реализацию словаря, я мог это запомнить только вызубрив, как я в свое время зачем-то запоминал определения ко/контравариантности.
Обидно конечно что на большую зп не залетел, но судя по сайту у них там куча баб и пара мужиков, мб в таком коллективе и работать бы не захотелось dankpepe.png?1592046820утешаю себя


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


ну так че, они тебе перезвонят? Или как?

Hy6o_Hy6

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

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

Сообщения: 3518

Рейтинг: 2188

Hy6o_Hy6

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

Сообщения: 3518

Рейтинг: 2188

Lapish72 сказал(а):


А это было джун/мидл/син? И какая зп +/- была указана? А так, спс за инфу roflanzdarova.png?1616515107
UPD:


Ковариантность и контрвариантность в обобщенных интерфейсах сколько не читал не могу понять. Мозг отлетает от этого.


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


а чем джун отличается от мидла и от син ?

Lapish72

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

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

Сообщения: 2017

Рейтинг: 655

Lapish72

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

Сообщения: 2017

Рейтинг: 655

img

Hy6o_Hy6 сказал(а):


а чем джун отличается от мидла и от син ? roflanLico.png?1616515069


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



Если с рофлом и, к сожалению, с реальностью в жизни отвечать, то только зарплатой, но так не везде.

Armagedonby_ZERGS

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

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

Сообщения: 11361

Рейтинг: 4428

Armagedonby_ZERGS

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

Сообщения: 11361

Рейтинг: 4428

ttutiki сказал(а):


Здорово. Я опять же никогда не использовал объекты своих классов в качестве ключа, но я за 5 минут загуглил 2 варианта написания кастомной функции хеша. Но и это не важно. Как это связано с тем что мне нужно знать внутренности dictionary? Да, я не думал что нужна реализация хеша для объектов, но свалилась бы ошибка и я бы потратил ну еще 5 минут чтобы это узнать. Опять же, при чем тут устройство dictionary?


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


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

Rab0tyaga

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

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

Сообщения: 677

Рейтинг: 400

Rab0tyaga

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

Сообщения: 677

Рейтинг: 400

img

90% собесов даунские, я проходил десятки интервью и на python и на пхп




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




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




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

Armagedonby_ZERGS

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

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

Сообщения: 11361

Рейтинг: 4428

Armagedonby_ZERGS

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

Сообщения: 11361

Рейтинг: 4428

AtagaN сказал(а):


При использовании объекта в качестве ключа в хэш таблице. У него должна быть хэш функция


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


Не обязательно. Потому что по дефолту хешом будет адрес класса в памяти.
Т.е все объекты будут летать в один бакет, и следовательно вставка и поиск будет работать по equals.
Т.е ты получишь скорость линкед листа.
А вот если и equals не будет работать - ты получишь утечку памяти.

Lapish72

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

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

Сообщения: 2017

Рейтинг: 655

Lapish72

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

Сообщения: 2017

Рейтинг: 655

img

Armagedonby_ZERGS сказал(а):


Это если супер на пальцах. Приколы начинаються когда добавлять вайлкарды. А если добавлять рекурсивные вайлкарды - портал в ад.


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




Спс за объяснение. Перечитаю вдумчивно. Вайлдкарды? Что это?



Armagedonby_ZERGS

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

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

Сообщения: 11361

Рейтинг: 4428

Armagedonby_ZERGS

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

Сообщения: 11361

Рейтинг: 4428

Lapish72 сказал(а):




Спс за объяснение. Перечитаю вдумчивно. Вайлдкарды? Что это?




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


В джаве? Это когда в дженериках задаешь не конкретный тип, а диапазон типов.
Например
List(T extends Number)


Советую найти книгу Effective java и прочитать там раздел про дженерики.

AtagaN

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

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

Сообщения: 1169

Рейтинг: 328

AtagaN

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

Сообщения: 1169

Рейтинг: 328

Armagedonby_ZERGS сказал(а):


Не обязательно. Потому что по дефолту хешом будет адрес класса в памяти.
Т.е все объекты будут летать в один бакет, и следовательно вставка и поиск будет работать по equals.
Т.е ты получишь скорость линкед листа.
А вот если и equals не будет работать - ты получишь утечку памяти.


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


в С# не знаю, а в java по умолчанию хэш будет адресом объекта в памяти. Так что у одинаковых объектов он будет разный

Armagedonby_ZERGS

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

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

Сообщения: 11361

Рейтинг: 4428

Armagedonby_ZERGS

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

Сообщения: 11361

Рейтинг: 4428

AtagaN сказал(а):


в С# не знаю, а в java по умолчанию хэш будет адресом объекта в памяти. Так что у одинаковых объектов он будет разный


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


Советую зайти в джаву, создать два объекта, и вывести в sout их хешкод.

А не, ты прав, лол.

antxndemxn

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

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

Сообщения: 4138

Рейтинг: 3102

antxndemxn

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

Сообщения: 4138

Рейтинг: 3102

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

pochemyzamenya

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

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

Сообщения: 4457

Рейтинг: 4066

pochemyzamenya

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

Сообщения: 4457

Рейтинг: 4066

ttutiki сказал(а):


Уже вечереет, забыл про него, а вот звонит.


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


Кто вообще по вечерам звонит.


Считай задоджил неадеквата

ArtemX

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

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

Сообщения: 2824

Рейтинг: 886

ArtemX

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

Сообщения: 2824

Рейтинг: 886

Mobsman сказал(а):


в 2021 вообще не должны ничего спрашивать PepeKeyboardRage.gif?1615173790


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


ТЭто точно, есть же Copilot уже, и сбер тоже че-то придумывает.