Очень много комментариев получаю о том, как записаться на подобное собеседование. Для тех, кто еще не знает, я делаю набор на мок собесы через свой Telegram-канал: telegram.me/ayub_begimkulov_coding. Там есть сообщение в закрепе о том, как записаться (просто оставляете коммент с описанием о себе).
Классный канал я подписался! Я сам учитель по программированию т.к учился не так хорошо чтоб стать разработчиком, но я стараюсь работать над с собой и ваши видео помогают!
В первой задаче я тоже подзавис, "как так, 0? Вроде же должно работать". А потом понял: мы возвращаем объект с полем count, значение которого присваивается из переменной count в момент создания.
Айюб, привет! Отличное видео, спасибо за подобный материал) Самому сейчас 20 лет, смотрю такие собесы чтобы понимать свой уровень знаний) В планах есть записать видео о том как начинал свой путь, какие компании были, через какие трудности проходил, как учился и тд? Было бы интересно послушать полноценное разговорное видео от молодого сеньора!) Спасибо!
ухты, оказывается в ивентлупе 2 очереди: микро и макро таски. Надо пойти разоботчикам движка рассказать, что у них их 2, а не одна очередь с приоритетами, вот удивятся))
Блин, у чувака очень крутой опыт для 19-20, но посыпался на первой же задаче по замыканию. Завидую черной завистью :) Тоже из Украины, но успел уехать.
Задача про ref непростая, просьба объяснять чуть помедленнее в следующих собесах, понимаю что когда мысль летит, то трудно разжевывать, но такая скорость наверно приходит только после лет опыта) По-моему видно что кандидат не понял ничего, а сказал что понял только чтоб от него отстали)
Могу попробовать, на пальцах. 1. Когда мы создаём ref, то он не пересоздаётся при ререндере, это его особенность. 2. Это просто объект, и мы можем в него засунуть что угодно (в поле current). Зачем так сделано - вопрос другой 3. При каждом рендере создаётся новый handler, мы его сохраняем в ref.current. Т.к. мы меняем только значение поля объекта, то ссылка на сам объект ref не меняется. 4. Т.к. useEffect в зависимостях имеет ref, а ссылка на него не меняется, то он не вызывает повторно функцию внутри себя. 5. Нам нужно получать значение из ref.current именно в момент события клик, но если мы передадим в addEventListener ref.current, то будет передана функция, которая там лежит в момент вызова addEventListener. Поэтому мы передаем функцию, которая в момент клика вызовет то, что лежит в ref.current. А именно это нам и нужно.
На многих собесах тебе скажут: "ладно, пойдем дальше". А так, у меня есть видео на эту тему, поэтому прям с нуля не объяснял, так как нужно минут 5-7. Но спасибо за фидбэк, постараюсь улучшить этот момент.
Highcharts - офигенная библиотека, очень очень гибкая. И комьюнити у Highcharts достаточно большое. 2 года на нём сидел на проекте, хочу ещё, но перешёл в другой проект, где все графики уже сделали до меня). Highcharts топ для графиков, а для таблиц топ - это AgGrid.
Потенциал у парня есть, думаю через годик сам будет улыбаться, когда посмотрит видео. А пока совет прорешать все задачки на сайте learn js после теории ну и теорию повторит заодно. Можно еще задачки на code wars решать. Понятно что все методы и свойства не запомнишь оно и не надо, есть дока. Я вот если честно не помнил что Map has(key) - проверяет наличие ключа) Редко использую.
А будут полностью Javascript собеседования, без фреймворков? Хотелось бы побольше материала по core js. Хотя я понимаю что сейчас везде фреймворки используются)
Похоже на типичную историю, когда человек ушел сразу в практику особо не углубляясь в то, как все работает. Это видно даже по тому, как он отвечает реальными кейсами вместо того чтобы дать definition на вопросы по типу "что такое map?"
Да, но это не всегда плохо. Просто надо в какой-то момент все-таки закрыть те пробелы, которые накопились. Думаю тут просто человек не то чтобы их понимал. Думаю собес на пользу пошел ему)
Нет, не странно. Мы же ее используем внутри функции, а не сразу. Пока модуль не инициализируется, она не должно ни где использоваться. Так на самом деле много кто делает в реакт файлах.
ну норм собес)) да парень конечно молодец, на собесах все наверно чутка волнуются, но да, для такого большого опыта знаний у него думаю чутка не хватает по базе) но в целом красава!
Реф возвращает ссылку на дом объект Как документ.гетэлементбайайди Чтобы понять закинь реф в компонент или див и залогай Там есть поле каррент далее можно обратиться например к полю велью и получить текущее значение инпута.
У ref есть ещё одна фича (которую я считаю грязным хаком и поотбивать руки, но кто я такой, если (вроде) даже в документации был пример). В общем, в ref можно засунуть значение, и оно будет сохраняться от рендера к рендеру. Изначально, я так думаю, это было сделано для оптимизации: раз получили ссылку на DOM node, чё её каждый рендер заново получать? Но если туда поместить что угодно, то оно не будет заново создаваться при каждом рендере, а будет хранить значение между рендерами, что твой state. Но его изменение не будет триггерить перерендер, как изменение state. Короче, неплохой способ выстрелить себе в ногу, рекомендую 👍
@@ИмяФамилия-э4ф7в Ты не поверишь большинство кастомных хуков, либ которые их предоставляют сделаны через ref. Ref ничто иное, что как статические поле у классовых Компонентов. Так, что я бы не был так критичен) Без его использования, многих проблем не избежать.
Chad JS-developer: вайтишник, гребёт деньги лопатой не зная про замыкания и копипастя в React'e. Virgin JS-developer: true ИТшник, знает ECMA-262 наизусть, не использует фреймворки, ноет в комментах, зарабатывает меньше Chad'a.
@@nok738 тру стори. Сам не знаю зачем я на кодварсе и learnJavaScript так долго висел, только недавно начал изучать реакт - мой знакомый по курсу уже слепил портфолио и нашел работу. И теперь он обучается за счёт работодателя, а я за свой счёт, только и всего) Зато я знаю про генераторы и регулярки, лол. Так что совет идти на собес не зная некоторой базы вполне хорош.
Спасибо большое за полезное видео! Подскажите, пожалуйста, в задаче про использование хука useRef (1:06:55), почему передача ref.current в качестве callback функции в eventListener (window.addEventListener(event, ref.current, options);) не сработает? Безусловно, useEffect отработает один раз, но в любом случае мы же передаём зависимость от объекта, значит параметр будет обновляться, так как при вызове функции она будет смотреть напрямую на свойство текущего объекта(ref -> current), разве тогда код не будет работать как нужно? В случае если мы пишем const fn = ref.current внутри useEffect и передаём её в качестве callback функции, то, конечно, мы будем ссылаться только на первую инициализацию, поэтому будет необходимость обернуть в другую функцию. Заранее благодарю за ответ.
Запись `window.addEventListener(type, ref.current)` ничем не отилчается от: ``` const fn = ref.current; window.addEventListener(type, fn) ``` Ты ведь при вызове useEffect передаешь текущую фукнцию, которая сразу станет обработчиком и не будет меняться. То есть ты в любом случае берешь из ref первоначальное значение.
насколько нужен TS для джуна? P.s. досмотрел видос,отличное собеседование ,отличный джун ,супер классный фидбек,везде бы так давали его,удачи в развитие канала и джуну !
Зачем ты это спрашиваешь?) Возьми да выучи на базовый уровень, там пару тем, зато будет плюс на собесах. Там на базовом уровне учить то нечего - типы, интерфейсы и дженерики. Если чуть чуть углубиться можно и ооп выучить, но на Джуна точно не потребуют
Скажу за себя на некоторых вопросах я тоже туплю как ответить (возможно потому что у меня ночь уже). Я это к тому что не смотря на то что я не смог бы объяснить банальные вещи мне это не мешает писать крутые проекты. Недавно запустили проект с блокчейном. Бек на ноде, фронт на нексте, смарт контракт на солидити. Вполне хороший по коду проект. На мой взгляд подобные собесы могут возможно отсеять нужных кандидатов. Возможно чел очень хорошо шарит за ваш проект и имеет большой бэкграунд, но его не взяли из-за того что затупил и не смог ответить на задачу, которая никогда ему не встречалась в продакшене.
Посмотрел половину, объективно, у соискателя очень слабая база. Верно, что и с такими познаниями можно писать рабочий код. И, зачастую, многое не понадобится в проектах. Если такой разработчик будет писать код через ревью, то ничего страшного: в 90% все будет ОК, а 10% заметит ревьюер. Тут вопрос: чего хочет работодатель? Где и как он планирует применять умения соискателя? Есть ли у него время и ресурсы выбирать, искать других?
Это да, но с другой стороны, если ты закроешь на это глаза, ты можешь нанять человека, который вообще ничего не знает. Да и так, тут вопрос зависит от позиции и от того, что нужно будет делать кандидату. Человек выше правильно подметил.
Вопросы, как по мне, душные! Почти все вопросы были сведены к проверке знаний нативного js (задротского).... Не спорю, js - основа! Но в современной разработке, в 99% случаев ты спокойно сможешь нагуглить нужную инфу на том же stackoverflow и тд.. + при возникновении критической ошибки ты видишь её в консоли..... В остальном, прикольное интервью! Хорошо что не топил собеседуемого и немного помогал!
Тут 5 вопросов по core js. ПЯТЬ, не пятдесят, из которых примитивы против ссылочных, замыкания и event loop, база. Что ты ожидал на собесе для джуна? Методы массиво и вопросы какие есть типы данных?
Основная цель тестовых собесов, подготовиться к реальным. Я много проходил собесов, и поверь, были собесы намного душнее)). Конечно собесы ничего не имеют общего с реальной разработкой, но это нужно принять))
Тут фишка вот в чем: если ты понимаешь core, условно, то понять всякие библиотеки для тебя - вопрос времени, довольно небольшого. Наоборот, к сожалению, это не работает. Тут вопрос, что от тебя хочет работодатель? Если клепать однотипные лендосы под присмотром - никакой core не нужен.
Тут правильно подметили, без основ для тебя все будет магия. А смена библиотек будет очень сложной. Я бы даже сказал так, если брать джуна - то лучше, чтобы он хорошо понимал базу, нежели фреймворк и его детали.
Можно заучить работу любого фреймворка ( к примеру React ) , а выйдет что-то другое , на основе js и тебе понадобится куда больше времени на освоение нового материала , чем человеку , который шарит в js
@@ayub_begimkulov согласен, однако если идти на собес на джуна не имея до этого опыта работы с каким-то большим проектом, то на вопросах про оптимизацию через ref, useMemo, useCallback, memo можно поплыть, поскольку кандидат в глаза их не видел и не применял в пет проектах. Но как я и сказал, вопросы интересные, задачка тоже, кое что для себя подчеркнул ;)
собес очень простой, единственное что первый вопрос с подвохом, а так все очень просто. Задачки даже не алгоритмические, а на базовое знание языка. Было бы интересно посмотреть как бы решил задачу по поиск суммы/произведения из массива
Может кто-то подсказать смысл заворачивать ref.current в функцию, в зависимостях ref, придет ссылка на другой handler при ререндере app, и как я понял useEffect, только один раз отработает, а в зависимостях current -объект, разве useEffect увидит изменение ref, ссылка же останется такая же или я что-то не так понял, было бы отлично посмотреть видео на эту тему, а так спасибо большое автору за качественный и интересный контент, всех благ и процветания каналу!)
25:47 "на что больше похож Map, на объект, или на массив?" Сложно сказать, с учётом того, что массив в js - это объект, а объект - это, в некотором смысле, ассоциативный массив 🤣
Чел с 4-х летним опытом, который чпокойно может пробоваться на мидл поз с зп 200к - прйду на джуна попробуюсь. Тем временем заводчанин окончивший курсы и не имеющий опыта - гдр мои 200к? P.S. После перпого вопроса я все прнял, не понимаб, что он там разрабвтывал 4 года, когда он замыканий не понимает. Это ты его еще про прокси и прототипы не спросил
@@ayub_begimkulov,спасибо,что-то я поплыл когда попросили написать аналог метода split(скорее всего отказ будет,зато я понял,что надо просто замучивать эти задачи
@@ВасилийДимитров-с9с привет, как сейчас у тебя дела с собесами? Я кстати попробовал написать аналог метода split и у меня вроде как получилось его реализовать, с чем именно у тебя возникла проблема?
Я из Норвегии, data science моя специальность, 45-60 тыщ зп на джуна, налог не 50 процентов и не близко, это не Германия, налог 30%, который ещё становится меньше есть у тебя есть дети, ипотека и тд 1600 евро в месяц в Норвегии это не деньги) если да заплатил за всё и у тебя 1600 осталась то тогда да, ты срелнестатический работяга
Я сам как-то считал, даже если брать в учет упрощенные схемы на первый 5 лет (как в норвегии), то все равно чисто по деньгам там не сильно выгодно было (пока курс доллара не взлетел), по сравнению с той же Москвой. А если начать еще и цену жизни учитывать - то тем более. Люди обычно туда не за деньгами едут.
афигеть как много должен знать джуниор. Неужели все это и многое другое нужно знать только на входе в IT? Я вот уже пол года учу js и понимаю, что толку нет без практики и конкретной цели. Инфы горы и ее всю не запомнить.
Я тебе скажу больше, вопросы в видео это так, разминка. Джун в принципе должен знать все ходовые хуки (а это считай почти все). Иногда уже даже TS знать и уметь например написать свою реализацию Map/reduce и т.д.
@@kujojotaro3464 Я скажу так, по своему опыту и опыту знакомых, кто позже впрыгнул/впрыгивает в сферу. Что на трейни, что на миддла+ спрашивают в принципе одно и тоже: База JS (event loop, данные, структуры данных иногда) React (хуки, основные фичи реакта, реактивен ли реакт) HTTP и всякое около того Иногда еще по верстке могут так поверхностно спросить, всякие там reflow/repaint, серверные компоненты, shadow dom API (что это такое и какие бывают) потому что некоторые думают, что весь API, это фишка JS'а ______ Т.е. по сути разница лишь в ожидаемых более глубинных ответах и в отличие сомнений в своих ответах.
@@marchugans вообще весь api это не фишка js, даже setTimeout и event loop это не js) Ну я бы хотел что бы мой джун умел писать троттл, дебаунс, кеширование хотя б элементарное. Понимал асинхронность и мог оценить сложность алгоритма. Ну и тайпскрипт + хотя бы 1 стейт менеджер
@@kujojotaro3464 та понятно, а сложность то зачем 🤣. Не, серьезно, ну допустим, понимать сложность: понимать, что цикл в цикле - это какая-то лажа (разве что, без этого никак), а цикл в цикле в цикле - это удоляй и не запускай такое. Но оценить?! Джун такой: не, тут, похоже не n, a n*log(n). Не, оно то можно, не рокет саенс, но зачем? Да, кстати, что там по ЗП у твоего джуна, если не секрет? Друг просил узнать?
Ничего удивительно, от слова совсем. Работать и проходить собесы - это две разные крайности. Из-за волнений человек даже может забыть свое имя, не говоря уже о том, чтобы вспомнить, что такое замыкание
Эх вот после первой задачи даже смотреть не хочется, ну ладно сразу не допер, но когда уже откровенно тыкают и говорят вот смотри обычное замыкание и он тупит и не понимает о чем пример ну это просто уже дно😁.
@ayub_begimkulov Что-то я до конца не понял твою идею с useRef. Ты просто добавил стрелочную функцию в addEventListener, но как это повлияет на запуск useEffect, если в нем deps все равно остался ref, который меняет только значение, но не ссылку. Также 1 раз ровно запустится при первом рендере.
Очень много комментариев получаю о том, как записаться на подобное собеседование.
Для тех, кто еще не знает, я делаю набор на мок собесы через свой Telegram-канал: telegram.me/ayub_begimkulov_coding.
Там есть сообщение в закрепе о том, как записаться (просто оставляете коммент с описанием о себе).
Отличные задачки проверяющие знание языка, это определенной лайк. Продолжай в том же духе!
Спасибо!
Интересный контент, побольше бы подобного. Еще хотелось бы посмотреть как ты сам проходишь реальную собеседку куда нибудь.
Спасибо за фидбэк!
отличный собес. с рефом прикольный хак) один из самых полезных каналов как по мне. реально опытом делится человек
Спасибо за фидбэк!
Очень полезный для нас и собеседуемого ролик
спасибо!
побольше таких реальных собеседований на джуниор! очень интересно! так же ждем реальный собес на мидла
Классный канал я подписался!
Я сам учитель по программированию т.к учился не так хорошо чтоб стать разработчиком, но я стараюсь работать над с собой и ваши видео помогают!
Прикольный опыт
Спасибо!
Топово! Го ролик про то как в реакт с API работать
В первой задаче я тоже подзавис, "как так, 0? Вроде же должно работать". А потом понял: мы возвращаем объект с полем count, значение которого присваивается из переменной count в момент создания.
Значит хорошая задача!
Спасибо, что помог понять в чем загвоздка. Действительно, после реакта и привычки стейта, когда всю обновляется, теряешь базу.
А парень ведь начинал про this говорить)
спасибо за интересное собеседование !!!
Рад помочь!
Айюб, привет! Отличное видео, спасибо за подобный материал) Самому сейчас 20 лет, смотрю такие собесы чтобы понимать свой уровень знаний) В планах есть записать видео о том как начинал свой путь, какие компании были, через какие трудности проходил, как учился и тд? Было бы интересно послушать полноценное разговорное видео от молодого сеньора!) Спасибо!
Привет. Можешь посмотреть видео, которое я снимал на 1000 подписчиков. Там не все конечно, но большинство из этого рассказывал.
@@ayub_begimkulov спасибо)
ухты, оказывается в ивентлупе 2 очереди: микро и макро таски. Надо пойти разоботчикам движка рассказать, что у них их 2, а не одна очередь с приоритетами, вот удивятся))
Можно даже сказать 3 ещё рендер добавить)
Блин, у чувака очень крутой опыт для 19-20, но посыпался на первой же задаче по замыканию.
Завидую черной завистью :) Тоже из Украины, но успел уехать.
Да, опыт хороший. Но базу надо подтянуть обязательно.
Спасибо за видео!
рад помочь!
Спасибо за инфо про Норвегию
Рад помочь!
Очень интересный собес!
Спасибо!
вопросы топ!)
Спасибо!
Про замыкание интересно, особенно когда объявил фу-ю и получил по ссылке значение!
Задача про ref непростая, просьба объяснять чуть помедленнее в следующих собесах, понимаю что когда мысль летит, то трудно разжевывать, но такая скорость наверно приходит только после лет опыта) По-моему видно что кандидат не понял ничего, а сказал что понял только чтоб от него отстали)
Могу попробовать, на пальцах.
1. Когда мы создаём ref, то он не пересоздаётся при ререндере, это его особенность.
2. Это просто объект, и мы можем в него засунуть что угодно (в поле current). Зачем так сделано - вопрос другой
3. При каждом рендере создаётся новый handler, мы его сохраняем в ref.current. Т.к. мы меняем только значение поля объекта, то ссылка на сам объект ref не меняется.
4. Т.к. useEffect в зависимостях имеет ref, а ссылка на него не меняется, то он не вызывает повторно функцию внутри себя.
5. Нам нужно получать значение из ref.current именно в момент события клик, но если мы передадим в addEventListener ref.current, то будет передана функция, которая там лежит в момент вызова addEventListener. Поэтому мы передаем функцию, которая в момент клика вызовет то, что лежит в ref.current. А именно это нам и нужно.
@@ИмяФамилия-э4ф7в Спасибо, так примерно и понял после получаса пересматривания этой задачи, теперь закрепил)
На многих собесах тебе скажут: "ладно, пойдем дальше". А так, у меня есть видео на эту тему, поэтому прям с нуля не объяснял, так как нужно минут 5-7.
Но спасибо за фидбэк, постараюсь улучшить этот момент.
@@ayub_begimkulov Собес классный. Хотелось бы от тебя видео с разработкой какого то сложного приложения
@@ИмяФамилия-э4ф7в Каким образом обертка на current позволит взять именно актуальную фукнцию?
Мое глубочайшее уважение!
Спасибо!
Highcharts - офигенная библиотека, очень очень гибкая. И комьюнити у Highcharts достаточно большое. 2 года на нём сидел на проекте, хочу ещё, но перешёл в другой проект, где все графики уже сделали до меня). Highcharts топ для графиков, а для таблиц топ - это AgGrid.
Потенциал у парня есть, думаю через годик сам будет улыбаться, когда посмотрит видео. А пока совет прорешать все задачки на сайте learn js после теории ну и теорию повторит заодно. Можно еще задачки на code wars решать.
Понятно что все методы и свойства не запомнишь оно и не надо, есть дока. Я вот если честно не помнил что Map has(key) - проверяет наличие ключа) Редко использую.
Да, парень хороший. Но нужно базу точно подтянуть, без нее сложно будет дальше.
Самое полезное интервью, которое я видел!
А будут полностью Javascript собеседования, без фреймворков? Хотелось бы побольше материала по core js. Хотя я понимаю что сейчас везде фреймворки используются)
Хороший коментатор, сам задал вопрос, сам ответил!
Он же не используется почти в чистом виде
Похоже на типичную историю, когда человек ушел сразу в практику особо не углубляясь в то, как все работает. Это видно даже по тому, как он отвечает реальными кейсами вместо того чтобы дать definition на вопросы по типу "что такое map?"
Да, но это не всегда плохо. Просто надо в какой-то момент все-таки закрыть те пробелы, которые накопились. Думаю тут просто человек не то чтобы их понимал. Думаю собес на пользу пошел ему)
46:22 да-да, конфиг странный) а использовать переменную до объявления - это не странно))
Нет, не странно. Мы же ее используем внутри функции, а не сразу. Пока модуль не инициализируется, она не должно ни где использоваться. Так на самом деле много кто делает в реакт файлах.
После фразы 4 года занимался JS и погорел на первом же вопросе о замыкании и области видимости
Не js, а вообще разработкой
Замечательное собеседование!🥳
Спасибо!
ну норм собес)) да парень конечно молодец, на собесах все наверно чутка волнуются, но да, для такого большого опыта знаний у него думаю чутка не хватает по базе) но в целом красава!
На 1:06:51 немного начал переживать за утечку памяти, но потом исправилось все)
Видно парень работал. Может сделать что нужно
Да, код писать может. Но базу нужно подтянуть обязательно.
Интервью прям огонь , спасибо тебе , но к сожалению не смог последний вопрос понять с ref.current (
Реф возвращает ссылку на дом объект
Как документ.гетэлементбайайди
Чтобы понять закинь реф в компонент или див и залогай
Там есть поле каррент далее можно обратиться например к полю велью и получить текущее значение инпута.
@@ГригорийШумихин это знаю , там просто , задачку не совсем понял , почему так произошло , а так работал с рефом , просто явно не совсем все понял
У ref есть ещё одна фича (которую я считаю грязным хаком и поотбивать руки, но кто я такой, если (вроде) даже в документации был пример). В общем, в ref можно засунуть значение, и оно будет сохраняться от рендера к рендеру. Изначально, я так думаю, это было сделано для оптимизации: раз получили ссылку на DOM node, чё её каждый рендер заново получать? Но если туда поместить что угодно, то оно не будет заново создаваться при каждом рендере, а будет хранить значение между рендерами, что твой state. Но его изменение не будет триггерить перерендер, как изменение state. Короче, неплохой способ выстрелить себе в ногу, рекомендую 👍
@@ИмяФамилия-э4ф7в Ты не поверишь большинство кастомных хуков, либ которые их предоставляют сделаны через ref.
Ref ничто иное, что как статические поле у классовых Компонентов. Так, что я бы не был так критичен) Без его использования, многих проблем не избежать.
@@sergei_sergeevu4 я знаю. Я же и сказал: я считаю, и кто я такой, чтобы судить.
Типичный вайтишник , который не знает базы , а это была именно база JS , на которую сейчас забивают , да . Все сразу учат копипастить в React' e
Да, с базой у многих проблемы.
Что такое Замыкание не знает ( Грусть печаль.
@@JavaScript_95 у нас в институте как не странно об этом даже не рассказали...
Chad JS-developer: вайтишник, гребёт деньги лопатой не зная про замыкания и копипастя в React'e.
Virgin JS-developer: true ИТшник, знает ECMA-262 наизусть, не использует фреймворки, ноет в комментах, зарабатывает меньше Chad'a.
@@nok738 тру стори. Сам не знаю зачем я на кодварсе и learnJavaScript так долго висел, только недавно начал изучать реакт - мой знакомый по курсу уже слепил портфолио и нашел работу. И теперь он обучается за счёт работодателя, а я за свой счёт, только и всего) Зато я знаю про генераторы и регулярки, лол. Так что совет идти на собес не зная некоторой базы вполне хорош.
Спасибо!
Пожалуйста.
Вот пример слогана "перед смертью не надышишься", но думаю чел просто забил и не повторил.
Спасибо
Оказывается я кое что знаю в js
Это хорошо!
Спасибо большое за полезное видео!
Подскажите, пожалуйста, в задаче про использование хука useRef (1:06:55), почему передача ref.current в качестве callback функции в eventListener (window.addEventListener(event, ref.current, options);) не сработает?
Безусловно, useEffect отработает один раз, но в любом случае мы же передаём зависимость от объекта, значит параметр будет обновляться, так как при вызове функции она будет смотреть напрямую на свойство текущего объекта(ref -> current), разве тогда код не будет работать как нужно? В случае если мы пишем const fn = ref.current внутри useEffect и передаём её в качестве callback функции, то, конечно, мы будем ссылаться только на первую инициализацию, поэтому будет необходимость обернуть в другую функцию.
Заранее благодарю за ответ.
Запись `window.addEventListener(type, ref.current)` ничем не отилчается от:
```
const fn = ref.current;
window.addEventListener(type, fn)
```
Ты ведь при вызове useEffect передаешь текущую фукнцию, которая сразу станет обработчиком и не будет меняться. То есть ты в любом случае берешь из ref первоначальное значение.
насколько нужен TS для джуна?
P.s. досмотрел видос,отличное собеседование ,отличный джун ,супер классный фидбек,везде бы так давали его,удачи в развитие канала и джуну !
Зачем ты это спрашиваешь?) Возьми да выучи на базовый уровень, там пару тем, зато будет плюс на собесах. Там на базовом уровне учить то нечего - типы, интерфейсы и дженерики. Если чуть чуть углубиться можно и ооп выучить, но на Джуна точно не потребуют
Обязательно. Без ООП ты тоже не конкурентоспособен, поэтому учи все)
Учи, или ты думаешь, на работе его проще учить будет? 🤣
это должен знать норм программист , потому что это основы )
Джун не отличный
Скажу за себя на некоторых вопросах я тоже туплю как ответить (возможно потому что у меня ночь уже). Я это к тому что не смотря на то что я не смог бы объяснить банальные вещи мне это не мешает писать крутые проекты.
Недавно запустили проект с блокчейном.
Бек на ноде, фронт на нексте, смарт контракт на солидити. Вполне хороший по коду проект.
На мой взгляд подобные собесы могут возможно отсеять нужных кандидатов. Возможно чел очень хорошо шарит за ваш проект и имеет большой бэкграунд, но его не взяли из-за того что затупил и не смог ответить на задачу, которая никогда ему не встречалась в продакшене.
Посмотрел половину, объективно, у соискателя очень слабая база. Верно, что и с такими познаниями можно писать рабочий код. И, зачастую, многое не понадобится в проектах. Если такой разработчик будет писать код через ревью, то ничего страшного: в 90% все будет ОК, а 10% заметит ревьюер.
Тут вопрос: чего хочет работодатель? Где и как он планирует применять умения соискателя? Есть ли у него время и ресурсы выбирать, искать других?
Это да, но с другой стороны, если ты закроешь на это глаза, ты можешь нанять человека, который вообще ничего не знает. Да и так, тут вопрос зависит от позиции и от того, что нужно будет делать кандидату. Человек выше правильно подметил.
Вопросы, как по мне, душные! Почти все вопросы были сведены к проверке знаний нативного js (задротского).... Не спорю, js - основа! Но в современной разработке, в 99% случаев ты спокойно сможешь нагуглить нужную инфу на том же stackoverflow и тд.. + при возникновении критической ошибки ты видишь её в консоли..... В остальном, прикольное интервью! Хорошо что не топил собеседуемого и немного помогал!
Тут 5 вопросов по core js. ПЯТЬ, не пятдесят, из которых примитивы против ссылочных, замыкания и event loop, база. Что ты ожидал на собесе для джуна? Методы массиво и вопросы какие есть типы данных?
Основная цель тестовых собесов, подготовиться к реальным. Я много проходил собесов, и поверь, были собесы намного душнее)). Конечно собесы ничего не имеют общего с реальной разработкой, но это нужно принять))
Тут фишка вот в чем: если ты понимаешь core, условно, то понять всякие библиотеки для тебя - вопрос времени, довольно небольшого. Наоборот, к сожалению, это не работает. Тут вопрос, что от тебя хочет работодатель? Если клепать однотипные лендосы под присмотром - никакой core не нужен.
Тут правильно подметили, без основ для тебя все будет магия. А смена библиотек будет очень сложной. Я бы даже сказал так, если брать джуна - то лучше, чтобы он хорошо понимал базу, нежели фреймворк и его детали.
Можно заучить работу любого фреймворка ( к примеру React ) , а выйдет что-то другое , на основе js и тебе понадобится куда больше времени на освоение нового материала , чем человеку , который шарит в js
Если это смотрит человек с интервью, можно ли с тобой как-то связаться? Было бы интересно узнать больше про Норвегию, спасибо.
Про классы было бы ещë интересно послушать
4 года опыта на джуна? Это что, шутка?
Это нормально
я 10 лет опыта имею в программировании, но не коммерческого)
Здраствуйте, нахожу ваши видео действительно полезными. Если это возможно, ли можна записаться на подобные интервью?
Да, смотри коммент в закрепе.
Собес сложноватый, последняя задачка☠️. Парня жалко почему-то, а сами вопросы интересные
На самом деле если понимать базу - то не должно быть сложно. Просто многие почему-то пропускают этот шаг.
@@ayub_begimkulov согласен, однако если идти на собес на джуна не имея до этого опыта работы с каким-то большим проектом, то на вопросах про оптимизацию через ref, useMemo, useCallback, memo можно поплыть, поскольку кандидат в глаза их не видел и не применял в пет проектах. Но как я и сказал, вопросы интересные, задачка тоже, кое что для себя подчеркнул ;)
собес очень простой, единственное что первый вопрос с подвохом, а так все очень просто. Задачки даже не алгоритмические, а на базовое знание языка. Было бы интересно посмотреть как бы решил задачу по поиск суммы/произведения из массива
@@inqvisitor3722 хз-хз, что же ты тогда ожидал бы от собаса не сеньйора, если тут последняя задачка оптимизация через реф решалась
Салам Алейкум Аюб подскажи пожалуйста сколько нужно учиться и практиковаться что бы дойти то твоего уровня ? И как правильно учиться ?
Все зависит от тебя, сложно тут конкретно все оценивать. А учиться лучше на практике. 30% теория, 70% практика.
Может кто-то подсказать смысл заворачивать ref.current в функцию, в зависимостях ref, придет ссылка на другой handler при ререндере app, и как я понял useEffect, только один раз отработает, а в зависимостях current -объект, разве useEffect увидит изменение ref, ссылка же останется такая же или я что-то не так понял, было бы отлично посмотреть видео на эту тему, а так спасибо большое автору за качественный и интересный контент, всех благ и процветания каналу!)
25:47 "на что больше похож Map, на объект, или на массив?" Сложно сказать, с учётом того, что массив в js - это объект, а объект - это, в некотором смысле, ассоциативный массив 🤣
)
ага, и объект может быть еще и псевдомассивом...
В начале 1-я задача. Let вроде функциональная область видимости в этом случае, а не блочная
Я б тоже рискнул. Наверное на Джун 1 попал бы 😆
Набираю на собесы в тг канале.
Открывай курсы )))
Чел с 4-х летним опытом, который чпокойно может пробоваться на мидл поз с зп 200к - прйду на джуна попробуюсь. Тем временем заводчанин окончивший курсы и не имеющий опыта - гдр мои 200к?
P.S.
После перпого вопроса я все прнял, не понимаб, что он там разрабвтывал 4 года, когда он замыканий не понимает. Это ты его еще про прокси и прототипы не спросил
душный вювер, душные комментаторы с раздутым чсв. уууу я сижу дрочу синтаксис языка, который за 3 дня сделали ууу я умный
В первой задаче ведь сказал про this, потом не туда ушел.
Ага. Он не уверен был сильно, к сожалению не раскрыл мысль.
Такие разные реализации замыкания в js и swift
На swift никогда не писал, но верю)
@@ayub_begimkulov я писал чтобы на js не выгореть)
Завтра мое первое собеседование,надеюсь,сильно мучать задачками на алгоритмы не будут)
Удачи!
@@ayub_begimkulov,спасибо,что-то я поплыл когда попросили написать аналог метода split(скорее всего отказ будет,зато я понял,что надо просто замучивать эти задачи
@@ВасилийДимитров-с9с привет, как сейчас у тебя дела с собесами? Я кстати попробовал написать аналог метода split и у меня вроде как получилось его реализовать, с чем именно у тебя возникла проблема?
40 тыс в год что-то не верится, хотя если вычесть 50% налогов, то 20/12 1600 евро в месяц, с учетом более дорогой жизни выглядит даже мало
Я из Норвегии, data science моя специальность, 45-60 тыщ зп на джуна, налог не 50 процентов и не близко, это не Германия, налог 30%, который ещё становится меньше есть у тебя есть дети, ипотека и тд 1600 евро в месяц в Норвегии это не деньги) если да заплатил за всё и у тебя 1600 осталась то тогда да, ты срелнестатический работяга
Я сам как-то считал, даже если брать в учет упрощенные схемы на первый 5 лет (как в норвегии), то все равно чисто по деньгам там не сильно выгодно было (пока курс доллара не взлетел), по сравнению с той же Москвой. А если начать еще и цену жизни учитывать - то тем более. Люди обычно туда не за деньгами едут.
афигеть как много должен знать джуниор. Неужели все это и многое другое нужно знать только на входе в IT? Я вот уже пол года учу js и понимаю, что толку нет без практики и конкретной цели. Инфы горы и ее всю не запомнить.
Я тебе скажу больше, вопросы в видео это так, разминка. Джун в принципе должен знать все ходовые хуки (а это считай почти все). Иногда уже даже TS знать и уметь например написать свою реализацию Map/reduce и т.д.
@@marchugans То что ты сказал я бы рассмотрел как базу для джуна))))
@@kujojotaro3464 Я скажу так, по своему опыту и опыту знакомых, кто позже впрыгнул/впрыгивает в сферу.
Что на трейни, что на миддла+ спрашивают в принципе одно и тоже:
База JS (event loop, данные, структуры данных иногда)
React (хуки, основные фичи реакта, реактивен ли реакт)
HTTP и всякое около того
Иногда еще по верстке могут так поверхностно спросить, всякие там reflow/repaint, серверные компоненты, shadow dom
API (что это такое и какие бывают) потому что некоторые думают, что весь API, это фишка JS'а
______
Т.е. по сути разница лишь в ожидаемых более глубинных ответах и в отличие сомнений в своих ответах.
@@marchugans вообще весь api это не фишка js, даже setTimeout и event loop это не js) Ну я бы хотел что бы мой джун умел писать троттл, дебаунс, кеширование хотя б элементарное. Понимал асинхронность и мог оценить сложность алгоритма. Ну и тайпскрипт + хотя бы 1 стейт менеджер
@@kujojotaro3464 та понятно, а сложность то зачем 🤣. Не, серьезно, ну допустим, понимать сложность: понимать, что цикл в цикле - это какая-то лажа (разве что, без этого никак), а цикл в цикле в цикле - это удоляй и не запускай такое. Но оценить?! Джун такой: не, тут, похоже не n, a n*log(n). Не, оно то можно, не рокет саенс, но зачем?
Да, кстати, что там по ЗП у твоего джуна, если не секрет? Друг просил узнать?
Автор ролика, у вас проскакивает скрытая агрессия
"Наверно ты устал, наверно ты в плохом настроении, ха-ха"
Я думал это называется понимание)
@@ayub_begimkulov Возможно, возможно)
Неужто джун еще может найти работку в раиси?
Да, можно. Но просто закончить курс от Х и ождать, что тебя должны взять на работу не стоит.
@@ayub_begimkulov ну я так не делаю, я прогуливаю пары уже на последнем курсе и въебываю дома фронт
React ща в частности
@@nikitaermolenko7813 Красава!
вот парень вроде работает, опыт есть, а на такие базовые вопросы не отвечает и плывет
Ничего удивительно, от слова совсем. Работать и проходить собесы - это две разные крайности. Из-за волнений человек даже может забыть свое имя, не говоря уже о том, чтобы вспомнить, что такое замыкание
4 года опыта и не знать замыкания, ну не знаю - не знаю, может на столько увлекся рисованием в js...
я когда пива выпью, примерно так же про eventLoop рассказываю, людям которые вообще не понимают js
Тут может человек еще учился параллельно, так что сложно оценить.
4 года?
заголовок для хайпа, не надо так
собес на джуна с такими вопросами? смешно просто..
согласен, слишком легкие!
@@Mr.Bellamy я наоборот, имею ввиду для джуна сложные, моё личное мнение.
Эх вот после первой задачи даже смотреть не хочется, ну ладно сразу не допер, но когда уже откровенно тыкают и говорят вот смотри обычное замыкание и он тупит и не понимает о чем пример ну это просто уже дно😁.
Видео шлак, у человека уже огромный + у него 4 года опыта .... Понимаешь общий синтаксист понятен любому кодеру..
Почему шлак?
С примитивами отличный пример сылка на блок памяти и прямая запись в памяти.
@ayub_begimkulov Что-то я до конца не понял твою идею с useRef. Ты просто добавил стрелочную функцию в addEventListener, но как это повлияет на запуск useEffect, если в нем deps все равно остался ref, который меняет только значение, но не ссылку. Также 1 раз ровно запустится при первом рендере.
А меня отсобесите?
Можешь зайти в ТГ канал, оттуда людей набираю. Там сообщение в закрепе о том, как записаться.