Здорово, когда человек умеет рассуждать в слух) Ну и собеседующий здорового человека...спасибо всем принимавшим участие, снова нанесли непоправимую пользу)
10:00 Вообще, мне показалось, что вопрос не про клонирование объекта, а про знание метода Object.freeze. По всей цепочке не пойдёт как раз-таки Object.assign, а не JSON.stringify. Последний как раз клонирует всю иерархию объектов, только проигнорирует функции и свойства со значением undefined. Может ещё есть нюансы, но я их не помню.
Супер формат, отличные вопросы от собеседующего (жизненные, а не для "галочки"). Чел реально круто отвечал, я даже после пары его ответов пробовал ставить на паузу и давать свой ответ, а потом слушал, что он скажет) Этот час пролетел незаметно! Спасибо за такой крутой контент!
А я бесконечно благодарен коллегам, которые в прямом смысле приумножают для себя сроки выполнения задачи. Вообще, не понимаю тех, кто выполняет работу в два раза быстрее и по этой причине требует повышения. Оно им надо вообще? С удалёнкой найти парт-тайм вообще проблем нет никаких. Подстраиваемся под коллег, устанавливаем максимально возможный срок, максимально быстро задачу выполняем. Оставшееся время зарабатываем бабки на стороне. Проблем в этичной стороне вопроса не вижу. В два раза быстрее работаешь - в два раза больше в одной компании зарабатывать не будешь. Это факт. Но работодатель ничего в этом несправедливого не видит. Собственно, почему бы максимально не монетизировать своё время, если бизнес увеличенные сроки устраивают? Вообще, в армии особо инициативных сослуживцы не особо любят. И не любят по объективным причинам. Если прапорщик просит принести три бутылки водки, то не нужно нести ему пять бутылок. Потому что в этом случае пять бутылок водки станут нормой, и всем остальным нужно будет за этой нормой подтягиваться.
8:44 Я изначально думал, что вопрос "можем ли мы в текущей версии языка достать первый и последний элементы" это вопрос с подвохом, но собеседующий согласился с собеседуемым, когда тот (после подсказки) рассказал про деструктуризацию. Но проблема в том, что нет, этот ответ не правильный. Правильный ответ: нет, не можем, в текущей версии языка. Потому что в одно действие это не сделать: спецификация `let [ first, ...rest, last ] = arr` так и не была принята (так можно в coffescript, но не в js). Поэтому, я не понял, почему собеседующий сделал вид, что собеседуемы ответил правильно и пошел дальше к следующему вопросу. Замечание: Есть "костыль" `let { 0 : first, [arr.length - 1]: last } = arr;` но тут всё равно два действия: 1. получение индекса последнего элемента, 2. объектная деструктуризация.
Да, задался тем же вопросом, начал уже в песочнице накидывать разные варианты и понял, что такое не возможно, только потом решил проверить комментарии)
10:01 - судя по вопросу, я подумал, что задача рассказать, как сделать объект, который нельзя изменить (readonly) 🤔 Но если даже вопрос подразумевал рассказ о способах сделать глубокое копирование, ответ был неверный, так-как Object.assign, в отличии от JSON.parse/stringify делает неглубокое копирование. ))
Удивительно как в каментах и на самом собесе все восторженно восхищаются его ответами, при том, что он на каждый второй вопрос отвечает какую то дичь. Как же просто вам наездить по ушам, главное с уверенным лицом держаться молодцом...
Очень крутой дядька, спасибо вам Айнур за интервью! Очень круто было бы поработать с вами! Возьмите меня на интервью отвечу не меньше чем текущий кандидат! 😅😅😅
Дмитрий много ошибался, но произвел хорошее впечатление уверенным голосом и рассуждениями вслух. То есть впечатление хорошее, а формальный результат не absolute ) Предположим, что он конкурирует с другим кандидатом, который формально прошел собес лучше, но произвел менее эффектное впечатление. Кого брать?
А вы поставьте себя на место того, кто будет принимать решение. По статистике скажу, что если по технике человек не допустил множества жёстких ошибок, но приятный в общении - возьмут скорее его.
Скорее всего в HTML только поля для авторизации строго в форме должны быть (username, password). Даже браузер ругается если видит эти инпуты вне формы).
А function expression разве нельзя использовать как конструктор объектов, если функция не стрелочная? Просто объяснение было дано так, как будто бы только function declaration на такое способна.
1)ошибка в вопросе про деструктуризацию , первого и последнего уже сказали. и кстати мы не можем не знать длину массива, потому что у нас всегда есть доступ к length. 2)10:11 мне кажется интервьюер спросил про неизменяемость объекта, а не клонирование. то есть про фриз или про сил, и потом сделал вид, что он имел ввиду клонирование, втф?))) 3) 28:29 опять же, странный вопрос, странная задача, и странный ответ от интервьюера. Не делайте пожалуйста JSON.stringify на объекте в депенденси) никогда...)) во первых, на каждый рендер этот объект будет стрингифаиться и проверяться в useEffect, во вторых может быть ошибка парсинга объекта в Json, и так как МЫ НЕ ЗНАЕМ, что в объекте, по словам интервьюера, или нас это не волнует.в третьих, ЗАЧЕМ ЭТО ДЕЛАТЬ? если есть какой-то некий объект, на кой мы хотим отслеживать, и если это объект состояния, то на любой апдейт этого состояния, ссылка на этот объект будет меняться, и по этому можно оставить просто useEffect(...,[obj]); а если это объект не состояния, а созданный просто в рендере, то уж лучше хэшировать его, чем стрингифаить. можно хоть прокси объект использовать, что угодно, но само условие звучит так, что мы на стадии написания говнокода. без обид как бы понимаю, что все люди и ошибаются, но сидишь на собесе, нервничаешь, что не знаешь, как ответить, и не хочешь говорить, что интервьюер ошибся, так как это могут по-разному воспринять. потом тебе придет просто письмо "извините, мы вашу кандидатуру ни ни , потому что вы не достаточно хорошо отвечали на вопросы" 4) У списков элементов реакта по умолчанию ключ - это индекс в массиве, странно что ничего не сказали, когда он пытался придумать уникальность этого ключа, хотя у нас есть возможность те же значения вводить в инпут и добавлять)
Цель собеседования - понравиться интервьюверу показав свои знания. Знаешь - рассказываешь, не знаешь - стараешься рассказать о том, о чём знаешь как можно ближе к этой теме.
52:00 Склеивание с индексом значения из массива ради ключа не имеет профита. При удалении элемента из массива у последующих элементов изменится index. Был `${item} - ${index}` "6-5", стал "6-4". Это всё равно что использовать просто index. Удалять элементы таки лучше по индексу. Значение элементов может дублироваться. Поэтому в массиве [1,2,3,4,5,1], удалив "1" в конце списка, Реакт удалит первый элемент.
10:05 , только я не понял ответа на вопрос ? судя из вопроса это вопрос про флаги свойств обьекта , в частности writeable: true || false ? при чем тут клонирование обьекта
Абсолют элемент позиционируется относительно элемента с позиционированием отличным от статик, а не только относительно элемента с позиционированием релатив.
Как человек который прошел за последний год десятки подобных собеседований, скажу, что работодатель действительно может предложить 2500$ за такие знание, вернее мог бы дать, года так полтора назад. Сейчас кандидаты очень отчаянные и всегда найдется тот, которой согласится на 2000$, а не за 2000 так за 1500
Смахивает на постанову, вопросы не соответствуют ответам. Вопрос про сложность алгоритма явный тому пример - а ничего что переделать массив в мапу будет та же самая O(n)?
Ох я бы рассказал про прыгнуть выше головы... Если прямой руководитель какашка - по другому никак, а если и вышк какашка - то уже искать работу. "Какашка" понятие субьективное. Если все какашки - искать работу... Бывает такое что компании плохие
кратко отвечаю - да, может но можно и подискутировать, наброшу для начала: "с такими знаниями" - интересная формулировка. Собес ведь не покрывает всех знаний человека (даже только по фронту), на секундочку)
@@sanya-it Прикольно) буду лучше знать о рынке. про "такие знания" я имел ввиду: вот человек, вот у него столько спросили, значит это approve на собесе. Ну и понятен был "уровень" вопросов. Не спрашивали про внутрянку фреймворка, как работают хуки внутри, как написать полифил, возможно ли его написать (я только вкатываюсь в реакт после ангуляра, так шо не шарю сильно, что у него внутри :) ) А, ну или как работает redux, как можно сделать свой аналог, а как оптимизнуть его и тд. Т.е. вопросы будто ближе к дефолтным (за 3 дня мог забыть, если что-то было, изинити), поэтому и думал что миддл. Ну и не знал что миддл получает 250к. Воть :) Хотел бы кнш услышать что нибудь в ответ на вот эту вот колбасу текста
Какой уровень собеседуемого по результату собеса? Если по мимо знаний с текущего собеседования, еще настраиваешь линтеры, конфиги, участвуешь в создании пайплайна, то какой уровень?
1. Подписаться на мой тг 2. Ждать объявления об открытии группы на наставничество 3. Пойти на групповое наставничество 4. Выразить готовность и желание)
Смысл вопрос в том, что существует деструктурирующее присваивание const [first, ...rest] = arr; но тут Айнур ошибся, const [...rest, last] = arr; - так не работает [first, ...rest, last] = arr; - так соответственно тоже
@@sanya-it правильное решение по всем условиям задачи немного более хитрое: const { length, 0: first, [length - 1]: last } = arr; можно ещё сделать вот так: const [ first, last ] = [ arr[0], arr[arr.length-1] ]; второй вариант, имхо, не совсем подходит под условие "за одно действие", так как мы тут ещё и массив создаём. но у первого варианта тоже есть небольшой недостаток - у нас инициализируется переменная с длиной массива.
Что-то ответчик какие-то мувы неприятные исполняет то как будто вопрос не слышит и отвечает не то, то такие пепси вставки делает как на 14:35 "ненавижу absolute" и тд
@@sanya-itна пост пространстве вообще дико странная вот эта тема есть - всех пригнуть по деньгам. Радуются когда кого то "опускают" на землю и сами не прочь опустить - всегда убивало)) Для стаса сверху напишу специально - 80к это НИ-ЩЕ-ТА, за эти деньги работать можно только если ты инвалид и нет вариков
@@sanya-it как будто бы очень высокий уровень всего за год коммерческого, интересно сколько обучался и как работу нашёл в нынешнее нелегкое для джунов время
@@user-yx5mj6sm9t обычный уровень, год это джуниор, у джуниоров вилка соотвествующая. К собесу можно так подготовится и без опыта, но мидлом такого считать нельзя. Напомню, что мидл это про мудрость - про опыт, с 1 годом опыта мудрости мало и опыта так же. Вот поработал бы такой человек еще 2 года, пополучал опыт и набрался мудрости, мидлом можно было бы назвать, а так не выше джуниора.
Не хочу тут разводить духоту, но странно что интервьюер, говорит про var как про устаревший способ задавания идентификатора, хотя никакого отношения к правде это не имеет, в ином случае в спецификации языка было бы это указано. Еще удивляет такое пренебрежительное отношение к нему, так как скорее всего, что сам интервьюер использует их почти каждый день декларируя свои функции, ну и не нужно забывать, что var очень помогает, если мы хотим написать оптимизированный код
это не так) var появится при транспиляции, не вижу смысла его использовать напрямую в своём коде. ах да, отсылки к спецификации - это действительно духота, без обид)