49:42 У листов (и ArrayList в частности) как раз ровно тот хэш-код, который мы ожидаем. Это официально задокументированное в javadoc поведение. А бесполезный хэш-код - у массивов.
При вызове hashcode у списка используется значение возвращаемое от объектов списка. List по умолчанию использует реализацию hashcode которая зависит от содержимого списка. Если содержимое списка изменится, то и hashcode его поменяется. 😉 Неверный ответ от интервьювера
Мда уж, если бы мне устроили такой собес, то я бы его досрочно прервал по причине того что собеседующий не может нормально сформировать свой вопрос и на абстрактный вопрос хочет получить конкретный ответ, но так не работает. Абстрактный вопрос, получи абстрактный ответ. Да и вообще, что за часть с лайвкодингом, это такая же дичь, как и на собеседованиях где тебе дают ручку и просят ее продать. Ты нанимаешь прикладного программиста, на кой черт лезть в какие-то дебри для системных программистов?! Чтобы самоутвердиться за счет другого человека? Или зачем вообще вопросы которые на работе не встретишь? Вы так до ишачьей Пасхи будете сотрудника искать. Все нормальные собеседующие спрашивают по 4-ем пунктам, 3 из них стандартные чтобы просто узнать глубину знаний Java, kotlin, Android и 4-ый пункт это вопросы под конкретные задачи с которыми придется сталкиваться на работе и вопросы по стеку который используется для решения этих задач! Не нужно велосипед переизобретать!
Мне очень понравились вопросы Никиты. Естественно себя представляешь на этом всем. Но эти вопросы - они с одной стороны дают возможность кандидату раскрыться и главное - повести собеседование в сторону, которую он больше знает, и кроме того, Никита ни разу не возражал как раз идти в сторону, которую лучше знает собеседник. Если к такому подготовиться (я имею ввиду обдумать свою тактику) - можно хорошо пройти. Даже в задаче были варианты использовать любую из своих сильных сторон. И в результате своих вопросов Никита прекрасно понял уровень и все минусы назвал и сказал что и почему. Большое спасибо, очень понравилось и было интересно.
@@xslamdroidx хоть какие термины используй, но билдер и фабрика - это разные паттерны проектирования кода. Можно было перепутать в целом паттерны проектирования кода (порождающие, структурные, поведенческие) и паттерны ui слоя (MVP, MVI, MVC...) Типа и то и то можно назвать архитектурными паттернами, но копая дальше нужно уточнять, что имеется в виду.
@@maksonic_official в коде android иногда используется паттерн factory, но при этом называется builder - у меня не было задачи проверить знание терминологии, да и подошло бы что-то одно из них - без разницы
@@xslamdroidx Все это выглядит так, что интервьюер сам не очень понимает о чем спрашивает. Чуть дальше идут еще более сумбурные рассуждения про captured/non captured ламбды
Вопрос по задаче. А какое время актуальности данных и почему вы их храните для разных экранов, надо ли их обновлять при вызове с того же экрана. Как часто экраны просят данные.
Например, у нас на нескольких экранах в разных местах индикатор заряда, который запрашивается при открытии экрана. Обновлять не надо, можно придумать усложнения для этой задачи, но такой цели нет
@@LionZXY, эти экраны существуют одновременно? Это экран или фрагмент? Не ясно зачем многопоточка. В моем понимании, из условия задачи ее можно решить совсем иначе и без многопоточки. Или я чего не понял.
@@LionZXY , смотря чего хочет собеседующий). В реальности бизнесовые задачи будут решаться и надо уметь прорабатывать тз, где-то упрощать, а может вообще тз не быть , а может быть неверное. Кто-то хочет чтобы кандидат мыслил, кто-то хочет еще чего-то. Поэтому важны рамки, иногда на собесе приходится искать их самому.
@@LionZXY отправил вам решение,хотел чтоб вы посмотрели ,сделал на корутинах, но комент со ссылкой на хастебин почему то не добавился ,как вам отправить решение?в 32 строчки написал
Интересный собес. Сам из опыта собесов понимать начинаю, что важно уточнить термины и что от тебя хотят. Не кидаться решать задачу, обсудить условия, мне где-то хотелось бы исправить условие, например, убрать колбек, если у нас котлин и корутины, использовать suspend методы. Понять, что нужно сделать в итоге, зачем это нужно и реально ли оно нужно так, как просят.
Такие интересные качели - после слов о себе подумал "Да какой же он мидл, это ж лид/сеньор", а после ответов на первые вопросы "а, да какой же это мидл, это джун зелёный совсем") А вообще не в обиду конечно, волнение и всё-такое, но еслиб мне не представили кандидата сначала, а сказали угадать, я б сказал что это менеджер по приколу решил как разработчик пособеситься) как будто кодить ему никогда не было интересно на самом деле, разбираться как чета там работает внутри да и вообще, с задачами особо не сталкивался никакими.
да конечно, рассказывай🤣🤣 джуны бы сидели в полном а**е что тут вообще происходит, какие то знакомые слова. Весь вопрос в используемой терминалогии, умение лекторовать приобретается у преподавателей, эйч аров, но профессиональными "хирургами" они от этого не становятся, они в вакуме своей терминологии. Я думаю парень больше практик, о чем он и сказал изначально
Спасибо. Было полезно в целом посмотреть) если говорить о фидбеке то возможно сказалось волнение прямого эфира но имхо на некоторое количество конкретных вопросов были даны не совсем конкретные ответы, довольно много воды, ухода в сторону от ответа с ощущением не точного понимания ответа. А так, красава что решился на публичный собес, я б не рискнул 😁👍
public int hashCode() { int expectedModCount = modCount; int hash = hashCodeRange(0, size); checkForComodification(expectedModCount); return hash; } int hashCodeRange(int from, int to) { final Object[] es = elementData; if (to > es.length) { throw new ConcurrentModificationException(); } int hashCode = 1; for (int i = from; i < to; i++) { Object e = es[i]; hashCode = 31 * hashCode + (e == null ? 0 : e.hashCode()); } return hashCode; } this is hashcode in arraylist. hashcode of arraylist it's generated based on his members,as shown above.
Если вы не видите в этом ценности для себя, то не значит что другие не найдут. Самая главная задача их - снять напряжение нервное и увидеть как реагируют интервьеры себя
Интересное собеседование, правда в некоторые моменты было неловко за кандидата. Но на такие вопросы тяжело отвечать и просто поплыть. Как из примера: зачем дизайнеры Java добавили вложенные и внутренние классы? Но парню уверенности не занимать, особенно после слова 1:05:04
Чтобы уменьшить количество стресса мне пришлось сменить свой образ жизни и то как я отношусь к разным вещам. В отдельных направлениях стало лучше, но пока ещё надо решить несколько вопросов
@@AndroidBroadcast да, это работа с психологом, в первую очередь, и с собой, а не с диетологом, тут согласен. Заметил что просто поместив меня в комфортную среду (просто работа+выступления и т.д, без стресса типо переезда) сбрасываю от 20кг не прилагая усилий никаких
Разраб откровенно слабый. Даде на джуна не тянет. Задачу совершенно неипонял, теорию не знает, клдить не умеет. Есть только поверхностные понятия и он дедает вид, что умеет кодить . Типичный код-monkey
А кто мидл то?)). Никита Куликов, который не шарит отличие MVVM от MVI, делает доклад на подлодке, что MVI не подходит для compose, как и у MVP более сложная реализация будет. Хватит уже снимать постановочные собесы. Кирилл не мидл разраб, а сениор.
@@zaur4094 там ещё один эксперт был ). Гнал на bottom sheet в compose и разрабов из Google прям обосрал. А на деле всё работает. Депресивный доклад сделал типо compose сырой. Я сам юзаю compose на проекте, всё норм.Проект коммерческий, реальный.
@@robvaly1676 после драки кулаками не машут, но все же) У нас компоуз в проде год, и это был доклад в целом про боли в реализации. Если не веришь, что проблемы есть, то чекни баг трекер. В 1.4 многие вещи поправили, но он вышел за день или два до конфы, и менять презу смысла уже не было. И да, компоуз дико сырой потому что никто не говорит про автоподстановку паролей и данных, Е2Е устройства и прочее
@@leff2438 Да я верю, что в Google не святые. Зачем джунов в заблуждение вводить?) Они же на тебя как на бога смотрят. Да ладно не парься, всё норм я понял, что ты опытом поделился. Но как ты разрабов из Google вспоминал было забавно).
Тем временем я синиор, сижу без работы в Украине и подаюсь на вакансии мидловские, пока у вас такие мидлы работают в Яндексах. Возьмите меня лучше) Я релоцируюсь))))
@@AndroidBroadcast Я к тому , что сейчас тем более никто не хочет заморачиваться и что то учить более сложное и понимать как это работает, есть data class, все используем его а как он работает, не важно
49:42 У листов (и ArrayList в частности) как раз ровно тот хэш-код, который мы ожидаем. Это официально задокументированное в javadoc поведение. А бесполезный хэш-код - у массивов.
При вызове hashcode у списка используется значение возвращаемое от объектов списка. List по умолчанию использует реализацию hashcode которая зависит от содержимого списка. Если содержимое списка изменится, то и hashcode его поменяется. 😉
Неверный ответ от интервьювера
Мда уж, если бы мне устроили такой собес, то я бы его досрочно прервал по причине того что собеседующий не может нормально сформировать свой вопрос и на абстрактный вопрос хочет получить конкретный ответ, но так не работает. Абстрактный вопрос, получи абстрактный ответ. Да и вообще, что за часть с лайвкодингом, это такая же дичь, как и на собеседованиях где тебе дают ручку и просят ее продать. Ты нанимаешь прикладного программиста, на кой черт лезть в какие-то дебри для системных программистов?! Чтобы самоутвердиться за счет другого человека? Или зачем вообще вопросы которые на работе не встретишь? Вы так до ишачьей Пасхи будете сотрудника искать. Все нормальные собеседующие спрашивают по 4-ем пунктам, 3 из них стандартные чтобы просто узнать глубину знаний Java, kotlin, Android и 4-ый пункт это вопросы под конкретные задачи с которыми придется сталкиваться на работе и вопросы по стеку который используется для решения этих задач! Не нужно велосипед переизобретать!
Интервьюер как-то нескладно общается, будто не понимает вещей. Может просто волнение
Мне очень понравились вопросы Никиты. Естественно себя представляешь на этом всем. Но эти вопросы - они с одной стороны дают возможность кандидату раскрыться и главное - повести собеседование в сторону, которую он больше знает, и кроме того, Никита ни разу не возражал как раз идти в сторону, которую лучше знает собеседник. Если к такому подготовиться (я имею ввиду обдумать свою тактику) - можно хорошо пройти. Даже в задаче были варианты использовать любую из своих сильных сторон. И в результате своих вопросов Никита прекрасно понял уровень и все минусы назвал и сказал что и почему. Большое спасибо, очень понравилось и было интересно.
Интересно, тогда какие вопросы должны быть на Senior позицию?🤔
Большинство вопрос на Middle и Senior не будут отличаться, а вот по ответу будет понятен уровень
Закончил просмотр вскоре после объяснения, что билдер это фабрика
Ну так позже он озвучил "мы в работе часто путаем понятия и называем одно другим".
Не знаю, нивелирует ли это что-то.
@@xslamdroidx хоть какие термины используй, но билдер и фабрика - это разные паттерны проектирования кода. Можно было перепутать в целом паттерны проектирования кода (порождающие, структурные, поведенческие) и паттерны ui слоя (MVP, MVI, MVC...) Типа и то и то можно назвать архитектурными паттернами, но копая дальше нужно уточнять, что имеется в виду.
@@maksonic_official в коде android иногда используется паттерн factory, но при этом называется builder - у меня не было задачи проверить знание терминологии, да и подошло бы что-то одно из них - без разницы
@@LionZXY ну в целом это мелочь... Видео получилось топ! Спасибо!!!
@@xslamdroidx
Все это выглядит так, что интервьюер сам не очень понимает о чем спрашивает.
Чуть дальше идут еще более сумбурные рассуждения про captured/non captured ламбды
Вопрос по задаче. А какое время актуальности данных и почему вы их храните для разных экранов, надо ли их обновлять при вызове с того же экрана. Как часто экраны просят данные.
Например, у нас на нескольких экранах в разных местах индикатор заряда, который запрашивается при открытии экрана. Обновлять не надо, можно придумать усложнения для этой задачи, но такой цели нет
@@LionZXY, эти экраны существуют одновременно? Это экран или фрагмент? Не ясно зачем многопоточка. В моем понимании, из условия задачи ее можно решить совсем иначе и без многопоточки. Или я чего не понял.
@@mironoff2007 да, экраны одновременно. Решить можно, но предлагается решить именно так. Это же не бизнес задача, а для собеседования
@@LionZXY , смотря чего хочет собеседующий). В реальности бизнесовые задачи будут решаться и надо уметь прорабатывать тз, где-то упрощать, а может вообще тз не быть , а может быть неверное. Кто-то хочет чтобы кандидат мыслил, кто-то хочет еще чего-то. Поэтому важны рамки, иногда на собесе приходится искать их самому.
@@LionZXY отправил вам решение,хотел чтоб вы посмотрели ,сделал на корутинах, но комент со ссылкой на хастебин почему то не добавился ,как вам отправить решение?в 32 строчки написал
Интересный собес. Сам из опыта собесов понимать начинаю, что важно уточнить термины и что от тебя хотят. Не кидаться решать задачу, обсудить условия, мне
где-то хотелось бы исправить условие, например, убрать колбек, если у нас котлин и корутины, использовать suspend методы. Понять, что нужно сделать в итоге, зачем это нужно и реально ли оно нужно так, как просят.
А ссылку на решение задачи можно?) Или где найти
Все резко идут перечитывать, Java Concur in practice)
Это и так полезно делать раз в год
Так запутать, назвав Builder фабрикой...
Такие интересные качели - после слов о себе подумал "Да какой же он мидл, это ж лид/сеньор", а после ответов на первые вопросы "а, да какой же это мидл, это джун зелёный совсем") А вообще не в обиду конечно, волнение и всё-такое, но еслиб мне не представили кандидата сначала, а сказали угадать, я б сказал что это менеджер по приколу решил как разработчик пособеситься) как будто кодить ему никогда не было интересно на самом деле, разбираться как чета там работает внутри да и вообще, с задачами особо не сталкивался никакими.
да конечно, рассказывай🤣🤣 джуны бы сидели в полном а**е что тут вообще происходит, какие то знакомые слова. Весь вопрос в используемой терминалогии, умение лекторовать приобретается у преподавателей, эйч аров, но профессиональными "хирургами" они от этого не становятся, они в вакуме своей терминологии.
Я думаю парень больше практик, о чем он и сказал изначально
@@Farid_Geniatulin ты видео смотрел? Он тупо код писать не может, какой практик
@@sergeygolovin9523 блин я тож не могу когда над душой стоят :D
Он на Гения Евгенича похож, я бы его сразу взял)
Спасибо. Где ответ можно найти на задачу ?
Всем спасибо ❤🙏 за эфир! жду в комменты фидбек от аудитории))
Спасибо. Было полезно в целом посмотреть) если говорить о фидбеке то возможно сказалось волнение прямого эфира но имхо на некоторое количество конкретных вопросов были даны не совсем конкретные ответы, довольно много воды, ухода в сторону от ответа с ощущением не точного понимания ответа. А так, красава что решился на публичный собес, я б не рискнул 😁👍
@@alexpetrov6700 топчик. спасибо))
@Kirill Anikin, а сколько у тебя лет опыта?
А вот ваш доклад Кирилл на подлодке был хорошим, точнее полезным.
Ещё Алексей Панов полезный доклад на подлодке о навигации в compose.
public int hashCode() {
int expectedModCount = modCount;
int hash = hashCodeRange(0, size);
checkForComodification(expectedModCount);
return hash;
}
int hashCodeRange(int from, int to) {
final Object[] es = elementData;
if (to > es.length) {
throw new ConcurrentModificationException();
}
int hashCode = 1;
for (int i = from; i < to; i++) {
Object e = es[i];
hashCode = 31 * hashCode + (e == null ? 0 : e.hashCode());
}
return hashCode;
}
this is hashcode in arraylist. hashcode of arraylist it's generated based on his members,as shown above.
никита говорил, что на мобиусе был доклад про то, как устроен андроид, может кто то дать ссылку?
@LionZXY можно мне тоже)
ты посмотришь этот доклад и поймёшь как устроен андроид?
Я вроде знаю, что в iOSе этого нет…. Кек …синхронизировать RxJava 😢
Когда собеседование джунов?
Скоро, уже готовим
Они также есть на канале
Когда собес джуна??????
ruclips.net/video/ka30zdgOAYg/видео.html
Эти собесы поставлены на поток не хуже инфоциганства. Зря потраченное время на головомойку для всех, кроме собеседующего. Он свое получил.
Если вы не видите в этом ценности для себя, то не значит что другие не найдут. Самая главная задача их - снять напряжение нервное и увидеть как реагируют интервьеры себя
не хочешь - не смотри, кто заставляет?
@@trollberserker1515 ты о чем? Кто кого заставляет, кто смотрит? Ты бредишь?
Из всего что видел, не в обиду остальным, Никитос и Сергей Боиштян ТОП интервьюеры, прям супер годно.!!!
верните Хоккаге!
Боиштян душнила
Интересное собеседование, правда в некоторые моменты было неловко за кандидата. Но на такие вопросы тяжело отвечать и просто поплыть. Как из примера: зачем дизайнеры Java добавили вложенные и внутренние классы? Но парню уверенности не занимать, особенно после слова 1:05:04
Хороший вопрос, на понимания дизайна язык и целей его фичей
Фигасе кого вижу, Кирилл, ты крутой!
Факт
Полчаса пишет элементарный код, а потом эти люди ещё говорят, что на котлине можно быстро писать код. ХАХАХАХАХА!
на 27:06 Никита начал что-то подозревать
Кирилл, возьми Никиту с собой в зал
Ходить в зал - выбор каждого
Эй, я хожу в зал!)
Правда для снижения веса ещё нужна диета и вот с этим сложности. Из тех людей что заедаю стресс
Чтобы уменьшить количество стресса мне пришлось сменить свой образ жизни и то как я отношусь к разным вещам. В отдельных направлениях стало лучше, но пока ещё надо решить несколько вопросов
@@AndroidBroadcast да, это работа с психологом, в первую очередь, и с собой, а не с диетологом, тут согласен.
Заметил что просто поместив меня в комфортную среду (просто работа+выступления и т.д, без стресса типо переезда) сбрасываю от 20кг не прилагая усилий никаких
Разраб откровенно слабый. Даде на джуна не тянет. Задачу совершенно неипонял, теорию не знает, клдить не умеет. Есть только поверхностные понятия и он дедает вид, что умеет кодить .
Типичный код-monkey
А кто мидл то?)). Никита Куликов, который не шарит отличие MVVM от MVI, делает доклад на подлодке, что MVI не подходит для compose, как и у MVP более сложная реализация будет. Хватит уже снимать постановочные собесы. Кирилл не мидл разраб, а сениор.
а как он в снапчате работал? Отличие MVVM от MVI любой собеседующий спросит, он бы просто не прошел)
@@zaur4094 там ещё один эксперт был ). Гнал на bottom sheet в compose и разрабов из Google прям обосрал. А на деле всё работает. Депресивный доклад сделал типо compose сырой. Я сам юзаю compose на проекте, всё норм.Проект коммерческий, реальный.
Это ирония, кто не понял :)
@@robvaly1676 после драки кулаками не машут, но все же) У нас компоуз в проде год, и это был доклад в целом про боли в реализации. Если не веришь, что проблемы есть, то чекни баг трекер. В 1.4 многие вещи поправили, но он вышел за день или два до конфы, и менять презу смысла уже не было. И да, компоуз дико сырой потому что никто не говорит про автоподстановку паролей и данных, Е2Е устройства и прочее
@@leff2438 Да я верю, что в Google не святые. Зачем джунов в заблуждение вводить?) Они же на тебя как на бога смотрят. Да ладно не парься, всё норм я понял, что ты опытом поделился. Но как ты разрабов из Google вспоминал было забавно).
Гений на кандидате, я бы сам вообще ни на что не ответил
Мидлы, которых мы заслужили
Тем временем я синиор, сижу без работы в Украине и подаюсь на вакансии мидловские, пока у вас такие мидлы работают в Яндексах. Возьмите меня лучше) Я релоцируюсь))))
Скорее сначала надо релоцироваться, а потом уже искать работу
@@AndroidBroadcast Легче сказать чем сделать))))
Понимаю, но и вы тоже компании поймите
@@AndroidBroadcast Обычно сначала оффер, потом уже релокация. Если рисковать при пересечении границы, то имея чёткий план и направление.
На сколько деградируют разрабы с котлином, жесть просто, не знать банальных вещей и в java и android
Дело не в Kotlin, под капотом все равно старые API и механихмы. Их и раньше не все знали хорошо
@@AndroidBroadcast Я к тому , что сейчас тем более никто не хочет заморачиваться и что то учить более сложное и понимать как это работает, есть data class, все используем его а как он работает, не важно