Собеседование на Angular Frontend разработчика (Middle+/Senior)

  Рет қаралды 3,181

Vladimir Lebedev

Vladimir Lebedev

Күн бұрын

Собеседование в компанию Промсвязьбанк. Грейд присваивают по итогам собеседования, в конце попросили оценить самого себя - оценил на middle+.
Таймкоды:
00:00 Начало
01:21 Livecoding: слияние двух отсортированных массивов c оптимальной сложностью O(n)
24:23 Livecoding: поиск двух чисел в массиве, которые бы в сумме дали целевое число
26:26 Livecoding: реализация функции-каррирования
39:16 Event Loop
45:40 Взаимодействие с сетью (REST, GraphQL, gRPC)
47:37 Polling, Long Polling, WebSockets, SSE
49:12 Способы хранения информации в браузере (Cookie, Storage API, IndexedDB)
57:17 Жизненные циклы компонента в Angular
1:02:12 Стратегии проверки изменений (Default vs OnPush)
1:06:11 Dependency Injection
1:10:13 Про runOutsideAngular() при OnPush стратегии
1:12:10 Паттерны проектирования
1:17:15 Безопасность в вебе
1:25:52 Livecoding: Задача по Angular про ContendChildren
1:30:28 CORS
1:36:46 Зачем нужна инъекция зависимостей?
1:38:19 Тестирование
1:39:57 Как устроено ревью на текущем месте?
1:40:33 Чем отличается merge от rebase?

Пікірлер: 33
@phoenixg4661
@phoenixg4661 12 күн бұрын
Очень крутой собес получился Спасибо, что выложил) Отдельный респект лиду, сложилось очень хорошее впечатление о человеке
@user-bi4ln9pg3i
@user-bi4ln9pg3i Ай бұрын
интересная первая задача, спс за собес
@user-il2do8vm2q
@user-il2do8vm2q Ай бұрын
Будет сильно удобнее, если добавишь таймкоды)
@vladimirlebedev00010
@vladimirlebedev00010 Ай бұрын
Привет! А они есть в описании, ютуб не подтянул их в главы по какой-то причине
@ichestor509
@ichestor509 28 күн бұрын
После слов что рест и граф ничем не отличается, можно было в принципе бросать трубку... какие же пердуны там сидят это жесть
@bigmovie2284
@bigmovie2284 Ай бұрын
Подскажи, пожалуйста, какой опыт ты указывал в резюме? Накручивал ли? Просто меня даже на собеседования не зовут, когда узнают, что нет коммерческого опыта. Заранее благодарю за ответ
@vladimirlebedev00010
@vladimirlebedev00010 Ай бұрын
Привет! Я опыт не накручивал, потому что больше 3 лет реального коммерческого опыта есть, но если бы у меня сейчас коммерческого опыта не было, я бы накрутил опыт, чтобы фильтр hr пройти и попасть на собес
@user-ir7lv9ki7q
@user-ir7lv9ki7q Ай бұрын
Имхо очень уверенно отвечал на все теоретические вопросы, ответы на них узнавал из рабочей практики или изучал вопросы для собеседовий? Если да, можешь подсказать ресурс, хотелось бы также уверенно проходить собесы)
@vladimirlebedev00010
@vladimirlebedev00010 Ай бұрын
Привет! Спасибо) По большей части, было так: приходил на собес, выписывал вопросы, на которые не могу ответить, изучал их и снова шел на собес. Можешь попробовать смотреть подобные записи собеседований на ютубе, сначала пытаться ответить самому, потом слушать ответ автора и идти изучать вопрос. На мой взгляд, самая эффективная тактика)
@vlades7
@vlades7 11 күн бұрын
Привет. Скажи, были ли ещё собеседования на эту позицию? В видео не раз упоминались какие-то другие встречи
@vladimirlebedev00010
@vladimirlebedev00010 11 күн бұрын
Привет! Да, собесился осенью 23 года ещё, тогда до оффера не дошел
@romanosssip
@romanosssip Ай бұрын
Прикольно, а ты предупреждал что собес будешь записывать или это постановка?
@vladimirlebedev00010
@vladimirlebedev00010 Ай бұрын
Привет! Не постановка, но и не предупреждал)
@fidget82
@fidget82 2 күн бұрын
По первой задаче не проще было бы взять К последних элементов из 2 массивов. Объединить, отсортировать и взять опять K последних элементов?
@vladimirlebedev00010
@vladimirlebedev00010 2 күн бұрын
Сортировка n*log(n) по времени, в остальном отличий нет, можно и так)
@damirlive2387
@damirlive2387 Күн бұрын
вот мое решение. просьба дать оценку: const getLastDecision = (decisions1, decisions2, k) => { let d1 = decisions1.length - 1, d2 = decisions2.length - 1, result = []; while (result.length < Math.min(k, Math.max(decisions1.length, decisions2.length)) && (d1 >= 0 || d2 >= 0)) { if (d1 < 0 || (d2 >= 0 && decisions2[d2].id > decisions1[d1].id)) { result.push(decisions2[d2]); d2--; continue; } if (d2 < 0 || (d1 >= 0 && decisions1[d1].id > decisions2[d2].id)) { result.push(decisions1[d1]); d1--; } } return result; }; const hasPairWithSum = (arr, sum) => { const data = new Set(); for (let i = 0; i < arr.length; i++) { const numberToFind = sum - arr[i]; if (data.has(numberToFind)) return true; data.add(arr[i]); } return false; }
@paulos_swim
@paulos_swim 11 күн бұрын
Это дрочево может пригодиться, только если всё совсем плохо на фронте)
@paulos_swim
@paulos_swim 11 күн бұрын
Задачи про массивы покажут умение решать задачи про массивы. За 8+ лет во фронтенде ничего такого на практике не приходилось применять, и на собесах тоже не спрашиваю.
@user-ev5vn8nl1g
@user-ev5vn8nl1g Ай бұрын
дальше мэтч или отказ?
@vladimirlebedev00010
@vladimirlebedev00010 Ай бұрын
Привет! Мэтч)
@user-ev5vn8nl1g
@user-ev5vn8nl1g Ай бұрын
​@@vladimirlebedev00010 серьезно? отталкиваясь от своего опыта если ответил не оч на пару вопрос-скип гарантирован, потому удивляюсь))). скок дали?
@vladimirlebedev00010
@vladimirlebedev00010 Ай бұрын
@@user-ev5vn8nl1g только сейчас оффер прислали, 270 нет предложили
@user-ev5vn8nl1g
@user-ev5vn8nl1g Ай бұрын
@@vladimirlebedev00010 точно знаю, что в селекти вилка для псб начинается с 300 на руки. возможно будет полезно знать для дальнейших торгов
@dmitriyobidin6049
@dmitriyobidin6049 Ай бұрын
@@vladimirlebedev00010 Это без премий? Сколько просил?
@paulos_swim
@paulos_swim 11 күн бұрын
Про DI тема сисек не раскрыта - что такое DI, для чего, почему, нет ответов. Вопросы и ответы на уровне синтаксиса =/
@ichestor509
@ichestor509 28 күн бұрын
По первой задаче конечно полная бессмыслица сидеть очко рвать подобными решениями, когда создали механизмы чтобы так не писать и писать быстрее, никогда не пойму этого...
@deo5686
@deo5686 25 күн бұрын
Что за решения? Можешь пожалуйста уточнить или ссылку кинуть.
@andrewkhar4615
@andrewkhar4615 2 күн бұрын
@@deo5686 const getLast = (arr1, arr2, k) => { const arr = arr1.concat(arr2); const lastArr32 = arr.sort((a,b) => b.id - a.id) console.log(lastArr32 .slice(0, k)); }
@user-lj5dn4kh5m
@user-lj5dn4kh5m 10 сағат бұрын
Особенно на тернарке возвращать true/false)
Frontend Собеседование с разбором. Путь к трудоустройству 2024
41:18
СОБЕСЕДОВАНИЕ НА ANGULAR MIDDLE
1:27:55
Ilnur Ryazhapov
Рет қаралды 2,2 М.
39kgのガリガリが踊る絵文字ダンス/39kg boney emoji dance#dance #ダンス #にんげんっていいな
00:16
💀Skeleton Ninja🥷【にんげんっていいなチャンネル】
Рет қаралды 8 МЛН
Clowns abuse children#Short #Officer Rabbit #angel
00:51
兔子警官
Рет қаралды 75 МЛН
Alex hid in the closet #shorts
00:14
Mihdens
Рет қаралды 11 МЛН
80 Year Olds Share Advice for Younger Self
12:22
Sprouht
Рет қаралды 1,4 МЛН
Senior Angular Developer Interview (theory)
41:57
WeCoded
Рет қаралды 12 М.
Что нового в Angular 18? #angular
13:27
Даже и не стараюсь
Рет қаралды 1,8 М.
СОБЕСЕДОВАНИЕ FRONTEND ЗП 220к JS, TS задачи
49:02
Кодерские собесы
Рет қаралды 83 М.