Подготовка к собеседованию на Frontend Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
приветствую вас друзья примерно год назад может чуть больше может чуть меньше я проходил собеседование и недавно я откопал ролик в архивах с этим собеседованием и решил закинуть его на канал немного водное это было собеседование на мидл frontend react разработчика зарплата насколько мне не изменяет память было 200000 рублей на руки это было достаточно крупная российская компания не буду называть какая собеседование сделал максимально анонимным обезличенным то есть просто техническое собеседование с техническими
00:00:03 - 00:01:12
вопросами никаких деталей новые собеседования пока что не записывал потому что в прошлом собеседование в самым последним которое выходило на канале вы поставили недостаточное количество лайков и недостаточное количество комментариев я соответственно сделал вывод что тема уже не так актуально и снимайтесь собеседования больше не стал сейчас же есть шанс это исправить если подобный формат вам нравится если мне стоит записывать собеседование то поставь час прям лайк под это видео напиши комментарий но я
00:00:38 - 00:01:37
соответственно проанализирую количество лайков комментариев и подумаю записывать не подобный формат или нет еще важно понимать что текущий со без которого сейчас будете смотреть я записывал скорее для себя чтобы потом его проанализировать изначально выкладывать на youtube я его не планировал но в принципе прошел уже год и я подумал почему бы и нет так же еще добавлю что у меня есть busty где вы можете поддержать меня и получить бонусы например некоторые ролики в текстовом формате доступы к чату домашние задания
00:01:07 - 00:02:10
ну и справочник по подготовке к frontend собеседованию в котором более 200 вопросов также скорее всего когда вы смотрите этот ролик там уже лежит инструкция потому как разрабатывать frontend приложения пит проекты без бэг-энда как можно сделать имитацию этого бэг-энда и работать с абсолютно любыми данными сколь угодно сложными ну и на этом в принципе все небольшая реклама и начинаем смотреть собеседование если вы занимаетесь 3d моделированием рендеринга анализом данных и обучением нейронных сетей или
00:01:39 - 00:02:39
любыми другими требовательными к вычислительным ресурсам задачами то я хочу порекомендовать вам селектор это один из ведущих провайдеров облаков и эти инфраструктуры в россии на базе собственных дата-центров провайдера доступно аренда выделенных серверов с мощными видеокартами решение select all подойдет для проекта любого масштаба и сложности select all можно развернуть инфраструктуру своего проекта максимально быстро выделенный сервер с gpu будет готов к работе уже через несколько минут после заказа при этом
00:02:09 - 00:03:09
конфигурация в выборе железо максимально гибкой а также можно арендовать более бюджетные конфигурации выделенного сервера с gpu на базе десктопного железа этот вариант идеально подойдет на случай если ваши задачи не требует слишком больших вычислительных мощностей конфигурацию вы можете выбрать как готовы у на сайте она уже собрано протестирована и готово к работе так и собрать нужную необходимую кастомную конфигурацию по собственным требованиям выбирайте нужную локацию сервера процессор объем памяти диски видеокарту
00:02:39 - 00:03:42
на его сборку потребуется всего несколько дней и не придётся долго ждать поставок оборудования из-за рубежа регистрируйтесь панели мая select all точка ру и заказывайте выделенный сервер skype для решения сложных задач так или всем привет да привет привет тимур тогда высот на ты на вы как будто над и конечно у нас план такой полтора часа времени постараемся соответственно поговорить про клуб и воздала технические вопросы но расскажем и себе своих проектах давай начнем немножко с конца сначала о
00:03:11 - 00:04:32
себе у нас управление на который мы сейчас ищем разработчиков агрегат буду тебя спрашивать это флаттер и фронт соответственно ну фронт скорее всего react у нас положительно будет проектом будет часть на реакции и там же будут части на flat и moby какой то вы тогда понимания вот так теперь давай немножко про тебя жмет я смотрел читал сейчас ты работаешь в компании меняет я валялся месяц назад понял так что то там делу но там были корпоративные системы я работал там как full stack разработчик но процентов 70
00:03:52 - 00:05:42
80 все-таки я решал фронтовые задачи там был вьюв на фронте но как бы я свои проекты какие-то в основном делу на реакции поэтому меня view react ну плюс-минус на одинаковом уровне лапшу у тебя туда эфир момент слейд и соответственно бокалов до бакалавр я планирую еще два года учиться ну вообще думаю поступать многому магистратура если я на бакалавриате мог работать думаю что с магистратура и тем более проблем не возникнет ну поступать пока что планирую к там как получится на печать пройду буду учиться не пройдут не
00:04:47 - 00:06:11
буду поступать потому что тебе это интересно или как ну я скажу так учился в мира и сейчас я решил попробовать чуть планку увеличить хочу попробовать поступить в мгу если смогу оттуда что-то интересное вытащить то хорошо если нет то ну значит ради диплома потому что он все же в таком мире живем когда и диплом может полезным оказаться как я понял хорошо так а как как работал степман боковая часть что там был там на бэг-энде было java но я больше скорее по java script новому стойку это но jess west экспресс вот как
00:05:33 - 00:07:20
бы java была на работе но для души я больше вот но джейс как раз больше мне нравится какие понял смотри а вот из того что я сказал про флокатор и про и крова тебе что был выпилить мне было бы наверное интереснее веб потому что я уже года полтора именно этим занимаюсь опыт мобильной разработки у меня тоже был как раз до веба но я делал на джаве нативные приложения как бушлаты в принципе я готов изучать его тоже это об этом думал но по flat ируся знаний у меня там приблизительно нулевые смотрел что-то
00:06:29 - 00:07:48
читал но ничего не пробовал вообще не изучал поэтому я большего и базы для content and так ладно хорошо тогда да наверно любят вас есть вопросы пруд да мне интересно тимур и скажи пожалуйста у тебя тема диплома было тоже о разработке приложений до тему диплома у меня было информационная система облачного хранить хранилища данных но я разрабатывал в принципе я поэтому эту тему выбрал потому что у меня это приложение уже была разработана свободное от учебы время и чтобы не тратить много времени на диплом я вот решил выбрать такую тему
00:07:09 - 00:08:31
но это full stack приложение серверной и клиентской частью как вот гугл диск яндекс диск возможность залить какие-то файлы папки и расширить их поделиться ссылкой такое пример приложение это вот как раз диплом сколько у тебя заняло времени разработка но на тот момент я разрабатывала наверно год назад когда у меня опыта еще мало было ну наверно месяца полтора но это так в свободное время скажи а у тебя в репозитории на гитхабе есть это работы выкладывал до должна быть должна быть хорошо а как я найти быть а там просто
00:07:50 - 00:09:18
согласен репозиториев клауд клал диск мчс увидел было хорошо я найду клуб в общем звать ясно а тебе больше нравится фронте я какой из фреймворков потом опыту которую тебя уже есть навью делать наверное по комфортнее потому что там некоторые вещи очень упрощены не меньше кода писать но react потому что вряд реакции typescript он получит совместим чем view в третьей версии в юже с этим проблем поменьше но вот со второй во второй версии view есть определенные проблемы с типизация и много лишнего в
00:08:34 - 00:09:59
общем получается ну примерно 50 на 50 какие-то плюсы выделяю в реакции какие-то плюсы выделяю во вью не скажу что вот прям явный фаворит есть понятно у тебя очень хорошо поставленная речь скажи у тебя в опыте пробью сказано что ты себя грустно кренделем к насте делал да и вас наш там дружил ли как нет это был исключительно frontend на на кости там backend был вообще на php по-моему я там с брендом дела не имел там исключительно был frontend просто макс ты тоже как раз rendering который раз прессе обычно подключается
00:09:16 - 00:10:37
ну там он экспрессом там как под капотом идет ты там по сути разрабатываешь frontend но часть которого первоначально генерируется на на бэг-энде как раз понял на ближайшее время у тебя какие планы были что попробовать что изучить феномен слейте так еще пару вопросов по общим моментом скажет и когда работал то есть когда нарабатывал коммерческий опыт разработки ты в основном работал в одиночку с готовыми приложениями или ты один собирал под ключ или же работу в команде у меня была такой такой опыт вот у меня
00:09:57 - 00:11:33
там в резюме указано две компании сферу мы то у меня был такой фрилансер ский опыт я там разрабатывал с нуля вот как раз на ногти приложение там я делал его с нуля ну там потом подключили других людей которые уже вот нам там занимались вот что касается мб они там были проекты которые уже были задолго до меня написаны я с ними тоже работал и было пару проектов которые я делал сам тоже небольшие проекты и карпатам чек кусочки корпоративной системы понял ну то есть работал в команде а как у вас была
00:10:45 - 00:11:58
организована как был организован рабочий процесс поясню вопрос я хочу услышать вот и допустим приходишь на работу дальше кто тебя ставить задачу как вообще происходит этот производственный процесс как он происходило на работе можно danone у нас был такой не особо официальный приходил на работу у меня был так можно назвать наставник человек который в общем контролировал то что я делаю задачи ставились в trello то есть там сделай то сделай это сделай это и ну соответственно я этими задачами занимался нет если кратко прям какой-то
00:11:21 - 00:12:54
явные методологии по типу там скрама не было у нас просто ставились какие-то задачи сроки вот эти задачи я выполнял а что использовали в качестве системы контроля версий гид вы сливали как-то по-особенному как вы вообще сливали результаты работы под каждую задачу создавалась ветка потом pull request проверяли если все нормально никаких комментариев замечаний то сливалось в д.ф. ну и потом когда релиз подрались создавалась отдельная ветка с версией ну и соответственно туда перед перекаченным вливали уже дать
00:12:08 - 00:13:26
ветку понял и второй вопрос по общему [музыка] резюме ты можешь рассказать про минусы между бабок сам и ридак сам в реакции в контексте ряд в контексте react реактор из плюсов редакция можно выделить как раз вот эту имут обильность то есть все мутации они более прозрачны их легче отследить там хороший devtools инструмент но из минусов это явно больше кода все вот эти вот экшены риге сыр и action крейтер и если к этому всему еще добавить какую-нибудь сагу то это вообще очень много кода получает саму быть
00:12:48 - 00:14:24
возможно он работает медленнее возможно изменение не так явно выражены как вреда кс но при этом меньше кода код более явный понятный сразу видно что за что отвечает сразу видно где мутация сразу видно где action сразу видно где данные в конкретном хранилище ну есть кратко то как то так просты считают что в бокс лучше у него минусов нет нет я не считаю что модекс лучше его я не работал с ним в каком-то крупном проекте возможны проблемы там появляются но в плане удобства мы быть я считаю удобнее чем redex
00:13:36 - 00:15:06
понял услышал меня по общим вопросам все вот именно то что касательно режимы такие спасибо и только пекин вопрос есть по зимы дак он тогда давайте технической части [музыка] юна тебе соус хорошо так тимур расскажу пожалуйста своими словами про замыкания что это такое можно даже на в чатик в наш взор написать пример если так проще [музыка] чат чат вижу ну замыкание это некоторая область видимости со всеми переменными и всем контекстам которые в нее заключен и при этом вложенные функции в эту замыкание могут
00:14:20 - 00:16:16
использовать переменные из ну как раз вот когда когда вложенная функция замыкает в себе переменные из выше стоящие функции если это можно так назвать скажет имел дело с инверсий зависимостей дпс injection да вот в рамках с джесс фреймворк на ноги до работу расскажу для чего нужен да и что это вообще такое ну это нужно для того чтобы каждый класс который использует в себе какие-то зависимости сервисы репозитории какие-то вспомогательные элементы при этом эти элементы могли как-то на уровне секунду попробую сформулировать в общем
00:15:19 - 00:16:59
чтобы мы могли подменять различные сервисы провайдеры внутри какого-то класса сервиса опять же и могли их использовать там при этом мы настраиваем это где-то вовне например как джавита какие-нибудь xml конфиге могут или как в спарринге мы там можем делать of the wild и за нас фреймворк вот это dependency injection сделает и мы сможем использовать вот эти зависимости внутри класса преимущество когда мы их используем чудо йог это программисту ну мы можем на уровне интерфейсов делать dependency injection и соответственно в
00:16:09 - 00:17:29
конфиге указывать какое какая именно имплементация будет использоваться в данном случае ну то есть для нас это удобно хорошо инверсию контроля слышал что-нибудь про такой йог единственный front row да это когда получается мы внедряем какие-то данные в класс через сеттер или через конструктор класс ну вот да собственно инверсия контроля это отчасти кусочек dependency injection тоже понял так скажи вот и сейчас говорю то что с но ты имел дело можешь рассказать в каких случаях до поточность лучше многопоточности да получается но
00:16:51 - 00:18:36
джесс работает по не блокирующий схеме ввода и вывода и и операции проходят в рамках одного потока есть так называемая проблема у многопоточности которая называется голодание потоков сервер на каждое соединение условно создает по потоку но при этом часть времени которая живет поток он может бездействовать потоки создают потоки это достаточно ресурсоемкие ресурсоемкая создание потока ресурсоемкая операция которая я оперативную память нагружает но и другие ресурсы компьютера и при этом поток создается но он может большую часть
00:17:46 - 00:19:10
времени просто простаивать 1 поточную модель она позволяет в одном потоке не блокируя вот выполнять операции при этом бездействие потока минимально она сводится практически к нулю и это доступно благодаря возможностям операционных систем в частности демультиплексор событий который позволяет как раз зарегистрировать какую-то задачу какую-то операцию и обработчик который должен на эту операцию выполнится и соответственно когда операционная система выполнить ту или иную операцию управление возвращается в
00:18:29 - 00:19:52
случае но джейсон этим занимается even клуб демультиплексор событий перенаправляет вот эту операцию с обработчиком в очередь задач event lupetto очередь читает и на каждую задачу выполняет неких кал бег это как раз вот тот самый обработчик который и регистрировал dimixer событий ну и такая модель она работает быстро потому что даже если сравнить два веб-сервер apache и nginx apache свое время был одним из самых популярных веб-серверов но он работал по многопоточной модели джинкс он работал как раз по принципу не
00:19:10 - 00:20:33
блокирующего ввода и вывода и при большом количестве одновременных соединений engine soon выигрывал 22 с половиной в три раза по скорости так давай знаешь что еще в судим я не хотел бы по поводу react а спрашивать какие-то вещи не было бы интересно посмотреть больше на ком я наверное спрошу общий момент по поводу того для чего нужен вас вообще в принципе централизованный шины событий ну получается поскольку в реакции вообще в принципе вот в этих фреймворков используется компонентный подход у нас данные идут
00:19:52 - 00:21:31
сверху вниз и зачастую из дочернего компонента необходимо произвести какое-то событие которое должно уведомить с компоненты выше о том что это событие произошло и передавать по цепочке вниз не всегда бывает удобно и вот event бас это некоторая такая шина которая позволяет событие создать подписаться на него и прослушивать в том месте где это удобно при этом можно вот эту вот иерархию компонентов некоторых не в некоторых проигнорировать то есть это нужно для того чтобы можно было обменивать компоненты в разных
00:20:41 - 00:21:58
частях системы которые не имеют ни непосредственно вложенных друг друга но для того чтобы дормана извиняюсь если перебил ну да для того чтобы создавать какие-то события и отслеживать и где-то наверху вызывать например где-то внизу ну по крайней мере я использовал именно так что такое про картам паненка черта поттер покой но wrapper компонент это некоторая обертка своего рода декоратор который может добавить какой-то дополнительный функционал на компонент но валентин в принципе у меня естественно задание я наверно его в
00:21:23 - 00:22:48
конце нашего общения скинул [музыка] спасибо тимур за ответ и в принципе у меня все ок ира тесты и задания там которые делать после лена хороших авары она рассчитана примерно на 3 часа три-четыре часа не больше поэтому делать его придется не сейчас то кто тебя есть вопрос да нет на парят нет я думаю спрятана допрашивать изд-во по тесту не знаю конечно еще вопросы летать джессу я могу задать такой более конечно вопрос на самом деле раз ты разбираешься сна джессом можешь искать разницу event глупо и вообще работая синхронно стена
00:22:13 - 00:24:01
серверной части на джинсы и правда если какая-то разница они работают по разному но джесс нету но джесс есть некоторые фазы выполнения то есть м м клуб проходится в цикле там для каждой фазы есть своя очередь это фаза таймеров фаза call back of там это 67 фас я точно сейчас все не вспомню и последняя фаза она выполняет калмыки из очереди которые связаны с закрытием то есть там закрытием web соедини там https соединения websocket соединения там ну в общем события клаус и вот получается иван клуб он крутится вот в этих фазах
00:23:08 - 00:24:29
ипать поочередно эти фазы выполняет при этом каждая фаза имеет свою очередь в браузере это работает чуть иначе в браузер есть некоторое web api которая позволяет регистрировать как раз таймер и регистрировать калмыки какие-то события и есть очередь микро и макро задач в свою очередь макро задача это вот как раз очередь call back of вот этих вот событий про который я сказал таймеров очередь микро задач это очередь как правило promise of то есть который исхода создаются i promise of и также в эту очередь с
00:23:48 - 00:25:06
помощью специальной функцией с id микро-микро таскать так она называется в эту очередь мы тоже тоску можем пробрасывать и получается even клуб он крутится там стек вызовов и стека вызовов выполняем операции как попадается у нас какая-то async раньше на она попадает в папе если это какое-то событие если это какой-то таймер в папе это событие регистрируют и соответственно после того как это событие выполнилась там нажали на кнопку или закончилось время у таймера эта задача попадает в очередь макро задач
00:24:27 - 00:25:37
если при выполнении кода у нас встречается promise эта задача попадает очередь микро задач при этом если я не ошибаюсь на каждом вот текке на каждом на каждой итерации цикла событий выполняются сначала микро задачи и только потом выполняются макро задачи но вот здесь с очередностью я мог перепутать точно не скажу но джейс вот этого в папе как минимум нет и там вот есть вот эти вот фазы плюс демультиплексор событий который регистрирует вот эти вот обработчики 8 до 88 ok тогда еще такой вопрос задам а что
00:25:02 - 00:26:25
делают методы лайков бать не позволяют привязать новый контекст paint создает новую функцию ну вообще новые ну да новую функцию с контекстом который мы указали первым параметром колой play позволяют сходу вызвать функцию с новым контекстом но при этом они работают чуть по разному кол принимает неограниченное количество аргументов просто через запятую fly принимает вторым параметром массив аргументов как раз ok задание да давайте когда так юра сейчас покажет тестовый посмотрим ты познаешь вопрос а
00:25:50 - 00:27:23
потом ответить на вопрос который минут появились тимур окна на такси до написал и феномен слейте а сколько времени на это когда ты планируешь нему приступить но сегодня у меня на вечер планы уже завтра после завтра у меня магистратуру экзамены один за одним поэтому скорее всего числа 24 пишу понедельник ну дальше что да думаю да понедельник точно смотри по поводу задания если в процессе у тебя будут возникать какие-то вопросы раз уж я расшарил тебе документы ты можешь комментарий оставлять прям там в
00:26:40 - 00:28:12
качестве результата ожидается что ты создашь 59 интимную ли из этого же и весь приватной следующий короче отдельные репозитории и чтобы можно было туда зайти посмотреть работу не обязательно его публиковать на джаз или еще где мы так посмотрим за задание понятно по срокам если будут тоже не получаться по экзамену там я не знаю если что-то нужно будет доделать то же мы их не срок на выходных время точно будет сделано выходных и [музыка] на этом с обвесом все друзья в целом работать я туда не пошел хотя мне все
00:27:37 - 00:29:08
понравилось и командой предложения и в принципе условия но я параллельно на тот момент проходил несколько советов в другом месте мне предложили условия получше и я по итогу пошел туда кстати в течение всего собеседования вы видели скринкаст на экране это курс по созданию paint онлайн на websocket ах он есть на канале достаточно хороший курс недооцененный просмотров у него мало хотя пользу очень много в общем на этом мы заканчиваем оставляйте свое мнение об этом собеседование в комментариях будем
00:28:26 - 00:29:26
читать разговаривать интересно послушать ваше мнение ну а я в свою очередь буду ждать в следующем ролике
00:28:57 - 00:29:10