58:00 - вот честно не вижу смысла в подобных задачах. Это ан алгоритмическое мышление. В академиечских вариантах да, но в коммерчесой разработке какой от них практический смысл? большинство алгоритмов придумано и описано во временя «640 килобайт хватит на все», они уже вылизаны и отточены. Если человек сталкивается с подобной задачей на практике - он быстро нагуглит и применит решения, которые почти гарантированно будут оптимальней, чем тот, что он сейчас придумает. Ведь над ними уже подумала тысяча мозгов. Если человек будет часто сталкиваться с алгоритмическими задачами - он естественным образом их запомнит. А так, держать в голове вариации подобных решений - это имхо забивание памяти лишним, во времена интернета. Так, чисто на мышление можно конечно, но хз.
Точно собес на джуны? Я так понял интервьюер тянул подавана толи на вышую должность толи на более крупный офер. Интересно посмотреть, какой офер был предложен
Поставил видео на паузу и решил эту задачу за 20 минут и 20 строк кода. Разбивка массива - 4 строки кода, сборка нового - 4 строки кода. Подход у меня получился другой, но быстрее, кода меньше, но возможно менее профессионально на вид.
Задача не самая простая, но я на неё потратил минут 10 или меньше. Ещё несколько тестов интересных провёл, которые выявили недостатки первой версии моего алгоритма: [1-5, 2-6, 15-18, 7-8, 3-7, 2-15, 3-4] У них сортировка не правильная, так как на входе строки, и сортируется по правилам строки, из-за чего моя проверка с такой сортировкой не пройдёт
Так себе собес, собеседуемый уже неплохо шарит в архитектуре, а бородатый ни одного вопроса по паттернам не задал. Тим лид даже не знает как новые элементы в массив добавляются. Как вообще фронт может нормально собеседовать бекенд ?
@@mgsfdgsfdgsgssdgrsdgdrgsr16 Бред, бреда. 5 лет учил математику и алгоритмы. В вебе использование практически равно нулю. Математика так особенно, а если уже реально понадобится алгоритм, то человек мало мальски имеющий мозг, почитает, найдёт и реализует алгоритм.
@@mgsfdgsfdgsgssdgrsdgdrgsr16алгоритмы уже давно обдуманы и описаны, нет смысла держать их все в голове, применяя в реальной практике один в год. В академических целях да, в практических и коммерческих смысла нет. Если тебе раз в год встретится задача с аглоритмом - его можно за час найти и реализовать, а не изобретать велосипед. Тебе платят деньги за реализацию задач, за коммерческую выгоду а не за то, что ты в голове держишь все алгоритмы, описанные тысячу раз. А если ты не понимаешь принциов проектирования и прочее - вот тут уже проблемы, ибо сталкиваешься ежедневно с задачами
Интервьюер оч крутой чел, мне понравился, а то был у них какой-то питонист, который одни вопросы за жизнь спрашивал, ваще муть была... А этот бородатый мужик шарит, красава
Авторам, на обсуждение задачки на полчаса, это оч. нудная часть. Вы явно забыли, что у вас запись для аудитории, которой явно не интересно полчаса этот слушать. Первая часть собеседования при этом норм. Но оьсужлания задачки вообще вырезать надо было из видео...
Изучаю пхп полгода без фанатизма с нуля, но 70% процентов не понимаю о чем спрашивает интервьюер. Вывод: - либо я такой тупой, либо курсы не очень, либо мне тупо рано смотреть такие видосы с собесами.
Я как-то у Павла собес проходил. В целом все понравилось и мне даже показалось, что я его прошел, но мне почему-то так никто и не написал. Возможно из-за того, что я опоздал на собес XD
В задаче с клиникой сразу имхо не туда пошел. Как по мне сущности декомпозировать сразу. Врач, клиент, слот, запись. Слоты выбрасывать скажем на следующую неделю и тд.
Просто ради интереса, это вообще хороший уровень php-разработчика считается?) Поговорить любит, резюме цветастое, но как до алгоритмов дело дошло ну блин такой себе разработчик))
@@HexletOrg я к тому, что уж больно простые вопросы и слабые кандидаты. Но вполне возможно, что это отражение реального положения дел на рынке труда) Я за 33 года своей жизни прошёл от силы с десяток собеседований, опыт невелик😁
Борода силен! Шарит А решение задачки заключается в создании класса точка со свойствами value - значение, type - тип: левая точка или правая. Из массива забрать все точки и занести в новый массив, отсортировать по значению, пройти по массиву, если мы получили левую точку, то закинуть в стек, если правую, то взять со стека точку, если стек при этом пустой, то левая и правая точка пойдут в искомый массив.
@@etopolen стоит прочитать тоненькую книжку грокаем алгоритмы, а потом пройти курсы по алгоритмам на степике: "алгоритмы и структуры данных: методы" и "алгоритмы и структуры данных: структуры данных" от computer science center, почему не советую толстых книжек? Потому что это бесполезно, обычным чтением не спрогрессировать, я считаю, что чтение это самообман. Необязательно, но: если вы пройдете все это, то можно пройти курс по графам от преподавателя первых двух курсов на курсере на английском, у него еще есть пара курсов, но это уже точно не для обычного прогера. И вообще, я считаю даже так, если какие-то задачи долго не заходят, то лучше их бросать, например алгоритм Хаффмана, сплей и авл деревья и тд, можно просто изучить основные вещи и все будет ок! Удачи!
Эта задачка типичная для жабаскрипта, там постоянно нужно что то вывести в меню в зависимости от того куда ткнул юзер, это показать это скрыть и тд, для php это не релевантно тк такое редко нужно поэтому тестовая задача вообще не очень. Под конец бородатый окончательно запутал собеседуемого.
Ерунда эти задачи. Я прошёл больше 200 собеседований. Они ничего не показывают, разве что ты не тупой. К хорошему качественному коду они отношения не имеют.
@@Имбалнсович угу пока кнопочки рисуешь на html а как дело дойдет до графов, векторов в 3Д графике, мультипоточности или асинхронности, так интервью очень покажет сможет человек работать в компании или нет.
А ха ха! Я делал реальную систему записи на прием к врачу и я бы не ответил на этот вопрос. Потому что я не умею думать на ходу и одновременно разговаривать. Тупой вопрос.
После валидации и сортировки, можно было бы с помощью range(1,5) получить массивы интервалов, потом пройти по ним array_diff($range1,$range2), чтобы выявить пересекающиеся интервалы и объединить их array_merge(). И так рекурсивно проходить, пока array_diff не перестанет находить пересечения. По памяти это не эффективно (если напр будет интервал 1-1000000000), но зато читабельно :)
Люблю такие задачки утром с чашкой кофе, НО не на собеседованиях😅😂 у меня мозг отказывается работать в стрессе)
58:00 - вот честно не вижу смысла в подобных задачах. Это ан алгоритмическое мышление. В академиечских вариантах да, но в коммерчесой разработке какой от них практический смысл? большинство алгоритмов придумано и описано во временя «640 килобайт хватит на все», они уже вылизаны и отточены. Если человек сталкивается с подобной задачей на практике - он быстро нагуглит и применит решения, которые почти гарантированно будут оптимальней, чем тот, что он сейчас придумает. Ведь над ними уже подумала тысяча мозгов. Если человек будет часто сталкиваться с алгоритмическими задачами - он естественным образом их запомнит. А так, держать в голове вариации подобных решений - это имхо забивание памяти лишним, во времена интернета.
Так, чисто на мышление можно конечно, но хз.
Спасибо, очень интересно
Было очень волнительно смотреть, спасибо!
лайк бородатому дядьке!
Ух, древний разраб... еще и с тех сильнейших кодеров
Не знал, что Григорий Перельман уже PHP-разработчиков собеседует.
Точно собес на джуны? Я так понял интервьюер тянул подавана толи на вышую должность толи на более крупный офер. Интересно посмотреть, какой офер был предложен
Поставил видео на паузу и решил эту задачу за 20 минут и 20 строк кода. Разбивка массива - 4 строки кода, сборка нового - 4 строки кода. Подход у меня получился другой, но быстрее, кода меньше, но возможно менее профессионально на вид.
А главное не рабочий
@@forest_grow Что не рабочий?
Задача не самая простая, но я на неё потратил минут 10 или меньше. Ещё несколько тестов интересных провёл, которые выявили недостатки первой версии моего алгоритма:
[1-5, 2-6, 15-18, 7-8, 3-7, 2-15, 3-4]
У них сортировка не правильная, так как на входе строки, и сортируется по правилам строки, из-за чего моя проверка с такой сортировкой не пройдёт
@@OOOJohnJ там не строки, т.к. есть intval.
Так себе собес, собеседуемый уже неплохо шарит в архитектуре, а бородатый ни одного вопроса по паттернам не задал. Тим лид даже не знает как новые элементы в массив добавляются. Как вообще фронт может нормально собеседовать бекенд ?
Не важно знать технологии, важно уметь думать!
Бред-с. Надо знать алгоритмы и математику.
@@mgsfdgsfdgsgssdgrsdgdrgsr16 Бред, бреда. 5 лет учил математику и алгоритмы. В вебе использование практически равно нулю. Математика так особенно, а если уже реально понадобится алгоритм, то человек мало мальски имеющий мозг, почитает, найдёт и реализует алгоритм.
@@ЮлийВикторович В вебе где платят деньги, а не делают говносайты знать нужно.
ну и бред, какая нафиг математика@@mgsfdgsfdgsgssdgrsdgdrgsr16
@@mgsfdgsfdgsgssdgrsdgdrgsr16алгоритмы уже давно обдуманы и описаны, нет смысла держать их все в голове, применяя в реальной практике один в год. В академических целях да, в практических и коммерческих смысла нет. Если тебе раз в год встретится задача с аглоритмом - его можно за час найти и реализовать, а не изобретать велосипед. Тебе платят деньги за реализацию задач, за коммерческую выгоду а не за то, что ты в голове держишь все алгоритмы, описанные тысячу раз. А если ты не понимаешь принциов проектирования и прочее - вот тут уже проблемы, ибо сталкиваешься ежедневно с задачами
Привет! Интересный формат. А как можно попасть на такое собеседование?
В слаке Хекслета slack-ru.hexlet.io/ напишите нашему комьюнити-менеджеру @musina
разве у квик сорта самый тяжелый случай не O(n^2) ?
Нет это у пузырька такое. Квик сорт на то и квик
А как поучаствовать в таком формате?)
Написать @Musina в slack-комьюнити Хекслета
а еще будет интервьювер который матерился как гопник?
что за стереотип, что плохого в мате ?
Интервьюер оч крутой чел, мне понравился, а то был у них какой-то питонист, который одни вопросы за жизнь спрашивал, ваще муть была... А этот бородатый мужик шарит, красава
Авторам, на обсуждение задачки на полчаса, это оч. нудная часть. Вы явно забыли, что у вас запись для аудитории, которой явно не интересно полчаса этот слушать. Первая часть собеседования при этом норм. Но оьсужлания задачки вообще вырезать надо было из видео...
Вообще эти задачки не показывают уровень
Изучаю пхп полгода без фанатизма с нуля, но 70% процентов не понимаю о чем спрашивает интервьюер. Вывод: - либо я такой тупой, либо курсы не очень, либо мне тупо рано смотреть такие видосы с собесами.
Я как-то у Павла собес проходил. В целом все понравилось и мне даже показалось, что я его прошел, но мне почему-то так никто и не написал. Возможно из-за того, что я опоздал на собес XD
Ребят а как попасть к вам на такой экпириенсе совбеса?
Написать @Musina в slack-комьюнити Хекслета
Я джун, и я ещё полчаса не выдержу слушать это решение...
Уф. Сначала решил в лоб. Потом немного подумал -
$intervals = ['2-4','7-10','3-5','25-30'];
$new_intervals = $arr = [];
foreach($intervals as $v) {
$_v = explode('-',$v);
if(count($_v) == 2 && ($_v[1] >= $_v[0])) {
$arr[$_v[0]] = [$_v[0], $_v[1]];
}
}
if(count($arr)) {
ksort($arr);
list($start,$end) = array_shift($arr);
foreach($arr as $v) {
if($v[0] $end) {
$end = $v[1];
} elseif($v[0] > $end) {
$new_intervals[] = $start.'-'.$end;
list($start,$end) = $v;
}
}
$new_intervals[] = $start.'-'.$end;
}
var_dump($new_intervals);
Я думаю, что можно как то оптимизировать. Сейчас посмотрим, что там кандидат нарешал ))
Классно.. жаль, что оно решает какую то другую задачу
В задаче с клиникой сразу имхо не туда пошел. Как по мне сущности декомпозировать сразу. Врач, клиент, слот, запись. Слоты выбрасывать скажем на следующую неделю и тд.
Для начала давай решим простейшую задачку...и на час
Да капец! Нудятина
По сервисам вроде норм, но решение задачи - оооочень плохо. У меня так же решать будет дочка, которая изучает как работать с массивами сейчас
map-sort-reduce и всё готово =)
Почаще зовите бородатого мужика, сразу видно, что чувак шарит
Он есть у нас в слак-комьюнити и часто там участвует в обсуждениях.
Просто ради интереса, это вообще хороший уровень php-разработчика считается?) Поговорить любит, резюме цветастое, но как до алгоритмов дело дошло ну блин такой себе разработчик))
Присоединяюсь, для меня эта задача сильно легче, а я даже не работаю программистом)
Смысл не в задаче, смысл писать понятный качественный код.
@@Имбалнсович а задачи кто решать будет? :)
По-моему Александр забыл побриться перед собеседованием
Бородач крут.
Цікаве тестове завдання! Дякую, дуже сподобалось.
Прям дуже актуальне можна сказати)))
Посмотрев ряд собеседований на Хекслете, я больше не боюсь собеседований, вообще)
Ура! Значит одна из наших задач выполнена)
@@HexletOrg я к тому, что уж больно простые вопросы и слабые кандидаты. Но вполне возможно, что это отражение реального положения дел на рынке труда) Я за 33 года своей жизни прошёл от силы с десяток собеседований, опыт невелик😁
Эту задачу решит даже моя бабушка с таким количеством подсказок
Борода силен! Шарит
А решение задачки заключается в создании класса точка со свойствами value - значение, type - тип: левая точка или правая. Из массива забрать все точки и занести в новый массив, отсортировать по значению, пройти по массиву, если мы получили левую точку, то закинуть в стек, если правую, то взять со стека точку, если стек при этом пустой, то левая и правая точка пойдут в искомый массив.
Правда еще стоит отметить, что если у точек одинаковое значение, то раньше в отсортированном массиве должна идти левая точка по-моему
Подскажи, пожалуйста, с какой книги по алгоритмам стоит начать для решения подобных задачек?
@@etopolen стоит прочитать тоненькую книжку грокаем алгоритмы, а потом пройти курсы по алгоритмам на степике: "алгоритмы и структуры данных: методы" и "алгоритмы и структуры данных: структуры данных" от computer science center, почему не советую толстых книжек? Потому что это бесполезно, обычным чтением не спрогрессировать, я считаю, что чтение это самообман. Необязательно, но: если вы пройдете все это, то можно пройти курс по графам от преподавателя первых двух курсов на курсере на английском, у него еще есть пара курсов, но это уже точно не для обычного прогера. И вообще, я считаю даже так, если какие-то задачи долго не заходят, то лучше их бросать, например алгоритм Хаффмана, сплей и авл деревья и тд, можно просто изучить основные вещи и все будет ок! Удачи!
@@magnit56 Огромное спасибо!
@@etopolen Грокаем алгоритмы
Всі ми проводимо і проходимо тех. інтервью) Цікава задачка
Эта задачка типичная для жабаскрипта, там постоянно нужно что то вывести в меню в зависимости от того куда ткнул юзер, это показать это скрыть и тд, для php это не релевантно тк такое редко нужно поэтому тестовая задача вообще не очень. Под конец бородатый окончательно запутал собеседуемого.
«Бородатый» тащил как мог, но то ли стресс, то ли отсутствие у интервьюируемого опыта непосредственно кодинга тормозило прогресс))
Ерунда эти задачи. Я прошёл больше 200 собеседований. Они ничего не показывают, разве что ты не тупой. К хорошему качественному коду они отношения не имеют.
@@Имбалнсович угу пока кнопочки рисуешь на html а как дело дойдет до графов, векторов в 3Д графике, мультипоточности или асинхронности, так интервью очень покажет сможет человек работать в компании или нет.
А ха ха! Я делал реальную систему записи на прием к врачу и я бы не ответил на этот вопрос. Потому что я не умею думать на ходу и одновременно разговаривать. Тупой вопрос.
Это точно был PHP senior разработчик? 😆
Под каждым видео с собеседованием на Ютюб куча анонимных неудачников без достижений ставит под сомнение компетенцию собеседуемого
После валидации и сортировки, можно было бы с помощью range(1,5) получить массивы интервалов, потом пройти по ним array_diff($range1,$range2), чтобы выявить пересекающиеся интервалы и объединить их array_merge(). И так рекурсивно проходить, пока array_diff не перестанет находить пересечения.
По памяти это не эффективно (если напр будет интервал 1-1000000000), но зато читабельно :)
Решение имеет место быть, особенно, если реализовать интервалы не функцией range, а виртуальные по аналогии с питоновским range)
он потом уточняет что границы могут быть вещественное число