Такие собеседования похожи на то чтобы если профессор русского языка спрашивал иностранца о тонкостях языка приводя примеры типа, «За песчаной косой лопоухий косой пал под быстрой косой косой бабы с косой». Такие примеры хоть и показывают возможности языка, но практически никогда не применяются в жизни.
А что тогда спрашивать конкретно по котлину? То, что спрашивали уже миллиард раз и все знают ответ? Или то, что реально используется на практике и тогда собес закончится за 15 минут?
@@АндрейСоболев-ъ1р Так цель собеседования узнать может решать реальные задачи на проекте или нет. Если это можно узнать за одну минуту одним вопросом, то так и должно быть.
Я пытаюсь найти пределы и понять как мыслит человек, смотрит ли он дальше того что использует конструкцию. Так и отличается Senior от Junior, а не сколько проектов он написал
Я согласен что количество != качество и сложно найти человека который действительно пытается понять как это работает. Но как часто получается, синьор это уже не тот кто знает как работает та или иная конструкция языка, а тот кто знает как работает проект в целом. И его задачей становится чтобы код этого проекта был максимально простым и понятным. На мой взгляд для таких тонких вопросов языка хорошо было бы пригласить человека который бы изучал язык с академической точки зрения. Было бы приятно услышать двух знающих людей обсуждающих языковые возможности и насущные проблемы.
Почему-то сложилось впечатление что у Кирилла мало опыта именно в проведении собеседований. Парень поплыл и по ощущениям просто терял нить беседы, а Кирилл не пытался это исправить. По задаче тоже не однозначно вышло, я бы сказал что Кирилл больше хотел всем рассказать как он решил эту задачу недавно у себя. Задача была реализовать и собеседуемый сделал это, по хорошему в конце нужно было просто спросить всё ли нравится и как можно это улучшить. А набрасываться с претензией типо плохо и медленно, оно не справится со 100500 джсонами в наносекунду это так себе предмет для дискуссии. Возможно парень гений и если бы задача была оптимизировать данный код, то он смог бы написать такой хитрый маппер, что ему и фильтр не нужен был бы для попадания в заданные условия по скорости работы.
Отличный вопрос про expect/actual и интерфейс. Сам этим вопросом задавался, когда изучал КММ. И мне нравится, что Кирилл рассказывает, как бы он эту задачу сам решил. Это даёт кандидату хорошее представление о том, в какую сторону ему нужно двигаться. Про волнение тоже хочется сказать. На собеседованиях я обычно так же волнуюсь на первых 3-4 вакансиях, куда подаю. Из головы вылетает просто всё, что знаю, хватаюсь за мысли, но они ускользают от меня словно воздух. Это лишний раз доказывает, что на собеседованиях опыт работы слабо решает, если нет опыта собеседований. Это два совершенно разных опыта и навыка. Причем это касается как собеседующего так и собеседуемого.
При всем к Вам уважении, Кирилл, создается впечатление, что у вас нет опыта проведения собеседований. Возможно, Вы привыкли к более опытным девам, но вот такой уровень собеседовать Вам тяжело дается. В реально бы жизни, я бы попросил прекратить собеседование еще на вопросе про return 1 и просто отключился. У меня 11 лет опыта андроид разработки, в том числе сотни проведенным собеседований, и такие вопросы просто вставляют клин между собеседующим и кандидатом, так как показывают полную некомпетентность первого. Данные вопросы не покажут глубину знаний, они скорее покажут, задрот он или нет, что никак не отразиться на реальной работе. Это просто теоретическое знание ради теоретического знания, которое не поможет никогда и нигде(ну разве что в споре). В целом видно, что моментами парень сыпеться, а Вы ему не помогаете. А в конечном итоге выглядит как "смотри какие фишки я знаю, а ты нет. ахахаах".
похоже что собес и был проведен для того чтоб показать аудитории "сатрите как я шарю, перед этим почитав пару книг и статей", а лучший способ это сделать вот так вальнуть не супер опытного паренька, зато на собесе с Гладковым пык мык) собеседуемому респект!
познавательно. Но обычно когда задаётся вопрос на собеседовании, собеседующий пытается что-то для себя понять. Обычно глубину знаний собеседуемого в той или иной области. Собеседуемый не претендует на звание синиора или выше и ожидаемо что не знает детали на счёт Nothing и хитрая крокозябра в виде val a = return. В реальной жизни вот такие детали, на сколько важно понимать в деталях? Я за котлине пишу уже лет 6-7 и наверное вообще никогда не указывал возвращаемый тип Nothing. Знаю что он есть, знаю что в документации написано что пример: метод всегда бросает исключение и никогда не возвращает никакое значение. Потому собственно у Nothing и конструктор приватный. Еще предположил что возможно если метод крутит бесконечный луп и никогда из него не выходит - можно подсказать другому разработчику что метод никогда ничего не вернёт и будет крутиться вечно с помощью Nothing. Какое всё таки реальнон применение этих всех знаний?
синтетические вопросы призванные проверить насколько много литературы ты читал перед собеседованием. Это как поверните направо, но через левый поворот И что забавно на собеседованиях в РФ они реально часто встречаются
@@AndroidBroadcastSenior это как раз виденье всей системы в целом, умение предвидеть проблемы в проекте. Систем дизайн. А в сортах Nothing разбираться это как раз удел джунов.
Спасибо за видео! Формат собеседований по топикам зашел. Как идея для улучшения - было бы удобно тайм коды с вопросами видеть и ссылки на материалы где можно подробнее почитать про определенные вопросы) Андрей красавчик!
После val a = return 1 можно сразу уходить с собеса, так как понятно, что литр вопросы не связаны с реальным кодом, либо связаны, но никакой нормальный разработчик не захочет работать с таким кодом.😂
19:30 Кирилл говорит, что “non-nullable типы являются супертипом их nullable варианта, … он шире, соответственно он ниже”. Не должно ли быть наоборот? Ведь иначе получается, что валидно будет класть наследника (nullable тип) в ссылку на родителя (non-nullable тип)
В 8 джаве, в джава коде нельзя создать наследника от sealed класса, компилятор будет ругаться (Java class cannot be a part of Kotlin sealed hierarchy) 38:32
Я думаю такие тонкие вопросы для того, чтобы понять на сколько кандидат глубоко копает в задачу, на сколько широко он к ней подходит и на сколько хорошо задает вопросы.
Для функций не возвращающих значение "val a = b ?: return" a примет тип Unit. А в случае "val a = return 1", код после "return 1" не будет достигнут, так как мы из нее выйдем.
Классный собес, интересно самому пытаться отвечать на вопросы и слушать Кирилла. Собеседующий все ответы поясняет. Чё вы набросились то?) Классный формат, а то,что диалог был якобы в одни ворота, то это только потому что кандидат не вывез. Собес был буквально по Kotlin Eternals, человек просто не подготовился, поэтому и плыл, а у Кирилла так то список вопрос был на который он ожидал получить ответы. В самом начале видео был дисклеймер,что это ТЕМАТИЧЕСКИЙ собес, так что удивляться со словами "да я за 5 лет это ни разу не использовал" - странно мягко говоря))
Интересно было посмотреть, так сказать повторил то что "забыл за лето") кажется парень в опреденный момент растерлся и по этому нпчал терятся. P.s. Спасибо за видео.
Интересное собеседование, спасибо Кириллу и Андрею за реализацию)) Появилась такая идея: после собеса собеседующий, если есть желание, выступает на канале Кирилла с темой, в которой кандидат плавал больше всего или которая вызвала споры в ходе собеседования))
Это такой способ развлечений, как бдсм. Cо стороны выглядит крипово, пользы никакой в реальной жизни. Сюда можно еще добавить много такого шлака, типа вопросы по солид, шаблоны программирования. Все настолько динамично, что подобные прекрасные архитектуры и языки устаревают пока успеешь завершить пару проектов на них. Интересно мнение андроидовцев которых подобными хитрыми вопросами пытали пока они учили java, потом котлин, потом перемешали с компоСтом ... Или мнение иосников которые тот же путь идут через objc/swift / swiftui / rx ....
Ничего криминального в вопросах Кирилла не увидел, если честно. Ведь собеседование - это в первую очередь разговор двух коллег, а в основе любого программирования лежит глубокая теория, которую знать никому не вредно.
Такие собеседования похожи на то чтобы если профессор русского языка спрашивал иностранца о тонкостях языка приводя примеры типа, «За песчаной косой лопоухий косой пал под быстрой косой косой бабы с косой». Такие примеры хоть и показывают возможности языка, но практически никогда не применяются в жизни.
А что тогда спрашивать конкретно по котлину? То, что спрашивали уже миллиард раз и все знают ответ? Или то, что реально используется на практике и тогда собес закончится за 15 минут?
@@АндрейСоболев-ъ1р Так цель собеседования узнать может решать реальные задачи на проекте или нет. Если это можно узнать за одну минуту одним вопросом, то так и должно быть.
Зачастую возможности не применяются просто потому что вы не знаете как можно сделать по другому
Я пытаюсь найти пределы и понять как мыслит человек, смотрит ли он дальше того что использует конструкцию. Так и отличается Senior от Junior, а не сколько проектов он написал
Я согласен что количество != качество и сложно найти человека который действительно пытается понять как это работает. Но как часто получается, синьор это уже не тот кто знает как работает та или иная конструкция языка, а тот кто знает как работает проект в целом. И его задачей становится чтобы код этого проекта был максимально простым и понятным. На мой взгляд для таких тонких вопросов языка хорошо было бы пригласить человека который бы изучал язык с академической точки зрения. Было бы приятно услышать двух знающих людей обсуждающих языковые возможности и насущные проблемы.
Когда ты прочитал книжку на пару страниц вперед и хвастаешься перед друганом 😅
Почему-то сложилось впечатление что у Кирилла мало опыта именно в проведении собеседований. Парень поплыл и по ощущениям просто терял нить беседы, а Кирилл не пытался это исправить.
По задаче тоже не однозначно вышло, я бы сказал что Кирилл больше хотел всем рассказать как он решил эту задачу недавно у себя. Задача была реализовать и собеседуемый сделал это, по хорошему в конце нужно было просто спросить всё ли нравится и как можно это улучшить. А набрасываться с претензией типо плохо и медленно, оно не справится со 100500 джсонами в наносекунду это так себе предмет для дискуссии.
Возможно парень гений и если бы задача была оптимизировать данный код, то он смог бы написать такой хитрый маппер, что ему и фильтр не нужен был бы для попадания в заданные условия по скорости работы.
Отличный вопрос про expect/actual и интерфейс. Сам этим вопросом задавался, когда изучал КММ. И мне нравится, что Кирилл рассказывает, как бы он эту задачу сам решил. Это даёт кандидату хорошее представление о том, в какую сторону ему нужно двигаться.
Про волнение тоже хочется сказать. На собеседованиях я обычно так же волнуюсь на первых 3-4 вакансиях, куда подаю. Из головы вылетает просто всё, что знаю, хватаюсь за мысли, но они ускользают от меня словно воздух. Это лишний раз доказывает, что на собеседованиях опыт работы слабо решает, если нет опыта собеседований. Это два совершенно разных опыта и навыка. Причем это касается как собеседующего так и собеседуемого.
При всем к Вам уважении, Кирилл, создается впечатление, что у вас нет опыта проведения собеседований. Возможно, Вы привыкли к более опытным девам, но вот такой уровень собеседовать Вам тяжело дается. В реально бы жизни, я бы попросил прекратить собеседование еще на вопросе про return 1 и просто отключился. У меня 11 лет опыта андроид разработки, в том числе сотни проведенным собеседований, и такие вопросы просто вставляют клин между собеседующим и кандидатом, так как показывают полную некомпетентность первого. Данные вопросы не покажут глубину знаний, они скорее покажут, задрот он или нет, что никак не отразиться на реальной работе. Это просто теоретическое знание ради теоретического знания, которое не поможет никогда и нигде(ну разве что в споре). В целом видно, что моментами парень сыпеться, а Вы ему не помогаете. А в конечном итоге выглядит как "смотри какие фишки я знаю, а ты нет. ахахаах".
похоже что собес и был проведен для того чтоб показать аудитории "сатрите как я шарю, перед этим почитав пару книг и статей", а лучший способ это сделать вот так вальнуть не супер опытного паренька, зато на собесе с Гладковым пык мык)
собеседуемому респект!
познавательно. Но обычно когда задаётся вопрос на собеседовании, собеседующий пытается что-то для себя понять. Обычно глубину знаний собеседуемого в той или иной области. Собеседуемый не претендует на звание синиора или выше и ожидаемо что не знает детали на счёт Nothing и хитрая крокозябра в виде val a = return. В реальной жизни вот такие детали, на сколько важно понимать в деталях? Я за котлине пишу уже лет 6-7 и наверное вообще никогда не указывал возвращаемый тип Nothing. Знаю что он есть, знаю что в документации написано что пример: метод всегда бросает исключение и никогда не возвращает никакое значение. Потому собственно у Nothing и конструктор приватный. Еще предположил что возможно если метод крутит бесконечный луп и никогда из него не выходит - можно подсказать другому разработчику что метод никогда ничего не вернёт и будет крутиться вечно с помощью Nothing. Какое всё таки реальнон применение этих всех знаний?
синтетические вопросы призванные проверить насколько много литературы ты читал перед собеседованием. Это как поверните направо, но через левый поворот
И что забавно на собеседованиях в РФ они реально часто встречаются
Вот по копанию внутрь и понимаю работы языка и его возможностей, глубины этих знаний и можно понять Senior или Junior
@@AndroidBroadcastсеньйор этим не определяется.
@@AndroidBroadcastSenior это как раз виденье всей системы в целом, умение предвидеть проблемы в проекте. Систем дизайн.
А в сортах Nothing разбираться это как раз удел джунов.
Боль всех собеседуемых в одном видео, главное получить точки роста, не сдаваться и идти дальше без гив апа
Полезный контент! На собседовании я бы не хотел чтобы так глубоко копали:) но полезно
Спасибо за видео! Формат собеседований по топикам зашел.
Как идея для улучшения - было бы удобно тайм коды с вопросами видеть и ссылки на материалы где можно подробнее почитать про определенные вопросы)
Андрей красавчик!
После val a = return 1 можно сразу уходить с собеса, так как понятно, что литр вопросы не связаны с реальным кодом, либо связаны, но никакой нормальный разработчик не захочет работать с таким кодом.😂
Я думаю что многие писали
val a = b ?: return
val c = d ?: throw ...
@@AndroidBroadcastно никто не писал val a = return 1 и не будет писать
19:30 Кирилл говорит, что “non-nullable типы являются супертипом их nullable варианта, … он шире, соответственно он ниже”. Не должно ли быть наоборот? Ведь иначе получается, что валидно будет класть наследника (nullable тип) в ссылку на родителя (non-nullable тип)
Да, была ошибка. Any? - это супер тип для Any
моргни если тебя держат в заложниках!)
😂
😅
Почему нет отбора как человек выглядит? То калека, то лысый, то ещё кто-то. Просто мерзко смотреть
@@_velordахренеть, надеюсь за твою токсичность тебя никуда не берут
Видно было, что маленько нервы подводили иногда. Со скидкой на это - нормалёк. Андрей молодец. Кириллу спасибо за собес
Андрей - молодец! Когда у меня был аналогичный опыт в годах в IT не решился бы на публичное собеседование
В 8 джаве, в джава коде нельзя создать наследника от sealed класса, компилятор будет ругаться (Java class cannot be a part of Kotlin sealed hierarchy) 38:32
Хороший пример того, как можно понять, что неплохо бы написать online к своей функции, если это функция высшего порядка.
Кирилл разнес пацана в пух и прах просто
Я думаю такие тонкие вопросы для того, чтобы понять на сколько кандидат глубоко копает в задачу, на сколько широко он к ней подходит и на сколько хорошо задает вопросы.
Для функций не возвращающих значение "val a = b ?: return" a примет тип Unit. А в случае "val a = return 1", код после "return 1" не будет достигнут, так как мы из нее выйдем.
Кажется, return по умолчанию возвращает Unit, а не Nothing.
Очень странный уровень собеседуемого для 2г 8м на котлине
Хороший формат, но возможно стоит делать промежуточный отбор кандидатов, чтобы все выглядело немного плотнее
Типа Миша harmonizr? xD
Классный собес, интересно самому пытаться отвечать на вопросы и слушать Кирилла. Собеседующий все ответы поясняет. Чё вы набросились то?)
Классный формат, а то,что диалог был якобы в одни ворота, то это только потому что кандидат не вывез. Собес был буквально по Kotlin Eternals, человек просто не подготовился, поэтому и плыл, а у Кирилла так то список вопрос был на который он ожидал получить ответы.
В самом начале видео был дисклеймер,что это ТЕМАТИЧЕСКИЙ собес, так что удивляться со словами "да я за 5 лет это ни разу не использовал" - странно мягко говоря))
Интересно было посмотреть, так сказать повторил то что "забыл за лето") кажется парень в опреденный момент растерлся и по этому нпчал терятся.
P.s. Спасибо за видео.
Интересное собеседование, спасибо Кириллу и Андрею за реализацию)) Появилась такая идея: после собеса собеседующий, если есть желание, выступает на канале Кирилла с темой, в которой кандидат плавал больше всего или которая вызвала споры в ходе собеседования))
Отличая идея. Но для Андрея этот собес - большой шаг вперёд
Спасибо
Кирилл, сделай потом, пожалуйста, таймкоды
Уже добавил
Начал смотреть, посмотрел 15 мин, первое впечатление, супер тут Кирилл молодец, хорошие вопросы, хорошие ответы и хорошие объяснения от Кирилла.🎉
Спасибо!
Это такой способ развлечений, как бдсм. Cо стороны выглядит крипово, пользы никакой в реальной жизни.
Сюда можно еще добавить много такого шлака, типа вопросы по солид, шаблоны программирования.
Все настолько динамично, что подобные прекрасные архитектуры и языки устаревают пока успеешь завершить пару проектов на них.
Интересно мнение андроидовцев которых подобными хитрыми вопросами пытали пока они учили java, потом котлин, потом перемешали с компоСтом ...
Или мнение иосников которые тот же путь идут через objc/swift / swiftui / rx ....
Когда по компоту собес?
Когда будет эксперт
паренька аж жалко, 150 гр и собесы проходят легче
Было больно смотреть на кандидата
Затея годная. Нужно тогда плейлист создать, и в названии видео указать, какая тема
андрюха респект
Позновательно.
Кирилл, большое спасибо за видео-ролик, Вам очень идет короткая прическа)
Спасибо
Ничего криминального в вопросах Кирилла не увидел, если честно. Ведь собеседование - это в первую очередь разговор двух коллег, а в основе любого программирования лежит глубокая теория, которую знать никому не вредно.
Интеренсые вопросы. Но качание на стуле очень отвлекает.