В прошлом месяце я проходил собеседования на должности фронтенда во многих компаниях. К счастью, я получил несколько хороших предложений, поэтому я хочу сделать запись и подвести итоги в этой статье, надеясь дать вам некоторые рекомендации для тех, кто планирует подать заявку на работу.
основное введение
19-й, бакалавриат, специальность, связанная с компьютером. После выпуска я работал в отделе фронтенд-разработки на фабрике третьего эшелона...
На самом деле, есть две причины, по которым я хочу прийти на собеседование в этот раз: во-первых, у меня нет опыта прохождения собеседований после набора в школу, и я не знаю, каков мой текущий уровень на рынке подбора персонала; во-вторых в том, что я хочу вернуться к развитию юга.
Итак, в начале китайского Нового года 2021 я начал повторять знания, связанные с интервью, и начал готовить соответствующие материалы. На подготовку к собеседованию ушло около полугода, а первое резюме было разослано 28 февраля. …
Основная претензия к следующей работе: большая платформа + техническое накопление + «известная» фронтенд-команда
Всего было размещено 5 вакансий:
- Департамент технологий финансового опыта Ant
- Команда Tencent Alloy
- Команда Baidu "Love Speed"
- Оплата Toutiao Douyin
- Диди
Результаты интервью: Муравей,Тенсент, Baidu и Didi прошли собеседование и получили предложение, а Douyin платит с обеих сторон.
Опыт интервью
Байду
одна сторона
- Разница между chunkHash и contentHash в webpack;
- Вы написали загрузчик и плагин для веб-пакета?
- Какой загрузчик используется webpack для обработки изображения, и ограничение на размер изображения составляет...;
- webpack объединяет css в один;
- Работает ли встряхивание дерева webpack для модулей commonjs и es6?
- Реализовать функцию "строка шаблона";
- Реализовать Promise.all (Promise не нужно писать);
- Как реализовать адаптивную верстку;
- Каждое значение свойства css flex;
- Значение каждого временного значения анимации анимации css;
- Как заставить элемент вращаться и перемещаться по горизонтали в css, если используется только одно свойство css;
- Разница между less и sass, как выбрать при выборе технологии;
- Как использовать символы ES6 и сценарии использования;
- Как использовать ES6 Proxy и использовать сценарии, поговорим о Reflect;
- Какие сценарии применения есть у генератора;
- Как реализовано асинхронное ожидание;
- Разница между git reset и revert, как справиться с несколькими изменениями mr в revert;
- Как git удаляет содержимое после добавления;
- Разница между http2 и http1.1, вы знаете http3, расскажите об этом;
- Разница между tcp и udp;
- Также задал несколько вопросов, связанных с резюме (например: оптимизация производительности, E2E-тестирование);
две стороны
- представить проект;
- Почерк случайным образом выбирает m чисел из заданных n чисел, требуя равной вероятности;
- Запишите функцию дросселирования против сотрясений вручную;
- Разработайте и внедрите компонент «звездный рейтинг»;
- Расскажите о http-кэше;
- Разница между вызовом, применением и привязкой и как реализовать привязку;
... некоторые другие не могу вспомнить, на этой стороне много почерка :)
Три стороны
Эта сторона не спрашивала о базовой поддержке интерфейса, а только спрашивала о некоторых пунктах в резюме, а также спрашивала об опыте обучения интерфейсу и последующем планировании карьеры...
После того, как эта сторона пройдена, это HR, давайте поговорим о предложении...
Муравей Финансовый
Процесс собеседования в Ant Financial отличается от процесса в других компаниях.В каждом раунде собеседований интервьюер добавляет вас в WeChat отдельно, а затем назначает время для интервью с вами.
Перед официальным началом собеседования интервьюер прислал мне два письменных контрольных вопроса и попросил прислать их ему по истечении установленного времени.Вопросы были такими:
Вопрос 1: Пожалуйста, реализуйте функцию поиска, чтобы следующий код вызывался правильно.
// 约定:
// title数据类型为String
// userId为主键,数据类型为Number
var data = [
{userId: 8, title: 'title1'},
{userId: 11, title: 'other'},
{userId: 15, title: null},
{userId: 19, title: 'title2'}
];
var find = function(origin) {
// your code are here...
}
// 查找 data 中,符合条件的数据,并进行排序
var result = find(data).where({
'title': /\d$/
}).orderBy('userId', 'desc');
console.log(result);// [{ userId: 19, title: 'title2'}, { userId: 8, title: 'title1' }];
Тема 2. Реализация конвейерного компонента с использованием стека React или Vue.
Основная структура данных
interface Pipeline{
stages: Stage[];
}
interface Stage{
title: string;
jobs: Job[];
}
interface Job{
name: string;
status: 'success' | 'fail';
time: number; //毫秒时间戳
}
одна сторона
- Представьте себя и проект, кратко расскажите о том, что вы сделали, какие есть трудности и основные моменты;
- Каковы основные типы js, поговорим о typeof и instanceof;
- Расскажите о новом операторе;
- Что такое цикл событий;
- Как использовать обещания? Знаете ли вы метод allSettled и как его реализовать?
- говорить о закрытии
- ES5 реализует унаследованные методы;
- Поговорите о междоменном;
- Разница между модульностью commonJS и ES6;
- Вебпак понимает? Для чего нужны загрузчик и плагин? Как реализовать загрузчик?
- Как webpack оптимизирует скорость упаковки;
- Расскажите о модели css box, о разнице между border-box и content-box;
- Разговор о BFC;
- Как добиться адаптивного макета для мобильных устройств;
- Давайте поговорим о гибкой верстке, вы знаете Grid?
- Есть ли опыт работы с ретина-совместимыми экранами? Как реализовать линии в 1 пиксель на мобильном телефоне;
- Расскажите о жизненном цикле компонентов реакции;
- Как оптимизировать производительность реактивных компонентов, поговорим о pureComponent;
- что происходит после вызова setState;
- Узнать о волокне? В чем проблема? Конкретный принцип;
- Вы использовали крючки? Что вы думаете о крючках? Его принцип таков;
- Слышали ли вы о некоторых из последних разработок в области реагирования? Можете ли вы рассказать о временном срезе, саспенсе и серверной составляющей?
- Знаете ли вы о некоторых недавних новых технологиях и каких новых прорывах сделал webpack5?
- Почему vite и snowpack могут быть намного быстрее, чем webpack? Конкретный принцип;
- Что такое CSRF-атака и как ее предотвратить;
- Почему говорят, что производительность анимации с помощью css лучше, чем у анимации с помощью js;
- Что такое композитный слой;
- Разница между http2 и http1.1;
- Давайте поговорим о http-кэшировании;
- http-код статуса;
две стороны
- Представьтесь, расскажите о проекте и задайте несколько вопросов о проекте;
- Выпускник 2019 года, не забудьте школьные знания.. Компьютерная сеть, язык программирования, шаблон проектирования, алгоритм структуры данных, принцип компиляции, что вам ближе? 😨 (я ответила компьютерная сеть)
- Разница между маршрутизатором и коммутатором; 😨
- Какова временная сложность рекурсивной и нерекурсивной реализации чисел Фибоначчи;
... и некоторые другие основные вопросы, не помню :)
Три стороны + сторона HR
Я с правой стороны (пс: я наконец-то увидел большого парня с правой стороны 😄)
Эта сторона не задавала вопросов, связанных с передним фундаментом, но задавала некоторые технические детали в моем проекте и проблемы в разработке схемы. Проблемы правых учителей действительно ровные и прямолинейные, и это все препятствия, встречающиеся в процессе продвижения проекта. Также были заданы некоторые дополнительные вопросы по планированию.
О HR, я видел, как многие люди говорят, что Ali HR сложнее, и они будут чистить людей. Но что касается моего опыта, есть и более традиционные проблемы, такие как:
- Почему решили бросить курить;
- Как справиться со стрессом на работе;
- Планы на будущее карьеры;
- рассказать о преимуществах и недостатках;
- Я надеюсь, Али даст вам что-нибудь;
...
Сначала подумайте над этими вопросами, а затем честно ответьте на них.
Тенсент
одна сторона
- Рукописный способ сложения больших чисел;
- Реализовать перетаскивание блока;
- Задал некоторые вопросы по проекту и связанные с ним технические детали;
- От ввода URL-адреса до рендеринга страницы, какой процесс прошел, как можно более подробно;
- Процесс повторного использования рукопожатия TCP, понимание лавинных атак;
- Расскажите о цикле событий (и вопрос, напишите последовательность вывода);
- SSR как сделать, как обеспечить однородность? потребление данных на стороне сервера renderToSting, зачем отдавать на стороне клиента;
- строгий режим js;
- Расскажите об использовании Iterator;
- Расскажите о процессе быстрой сортировки;
- Как узел отлавливает ошибки и как устранять утечки памяти;
И несколько основных тем...
две стороны
- Еще проблема с проектом...
- Как оптимизировать производительность и как измерить преимущества;
- Зачем ССР;
- Как проводить E2E-тестирование, как обеспечить тестовое покрытие и точность;
- Как разумно распределять ресурсы службы узла;
Эта сторона задает подробные технические детали проекта, а также задает некоторые вопросы, связанные с компьютерными сетями и React...
Три стороны
- проект...;
- принцип гибридной связи;
- Как посмотреть на апплет, его технический принцип;
- Разработка технического процесса для совместной документации;
- Как работает офлайн-пакет и какие особые возможности теперь предоставляет приложение компании;
- Как работает платформа обеспечения качества, как работает модульное тестирование в проекте и зачем существует E2E-тестирование;
Просто запомните эти вопросы... 🤯
четыре стороны
- Сортировка по холмам, сортировка по куче, быстрая сортировка;
- это указывает на вопрос и говорит вывод;
- Как спроектировать библиотеку компонентов;
- Вы использовали TypeScript и знаете, какие новые функции?
- Расскажите о React Fiber...;
- Почему структура двусвязного списка Fiber может решить проблему медленной рекурсии;
- Понять, что такое шаблоны проектирования, рассказать о преимуществах и недостатках шаблона Singleton;
- планирование карьеры;
- Какие предложения вы уже приняли...;
Когда я назначал встречу с персоналом, я сказал, что это сторона GM.Я думал, что это будет так же, как и в других компаниях, в основном изучение технического видения и планирования карьеры...
Но когда я подошел, чтобы задать мне технический вопрос, я этого не ожидал...
После того, как эта сторона закончена, наступает сторона HR. Два HR встречаются одновременно. Я чувствую, что я сумасшедший, рассказывая истории на протяжении всего процесса 😬
Доуин и Диди
Не буду вдаваться в подробности конкретного опыта этих двух компаний, многие проблемы схожи с проблемами трех вышеперечисленных компаний... Давайте просто поговорим о письменных тестовых вопросах на Douyin:
- Найти в 2D-массиве;
- Восстановить бинарное дерево из обхода предварительного заказа
- Напишите вручную функцию сравнения версий;
- Реализовать запрос кеша (запрошенные данные больше не запрашиваются)
Как подготовиться к собеседованию
Предварительное интервью состоит из трех важных частей:Резюме и проекты,Основы интерфейса,Алгоритмы и рукописный код. При нормальных обстоятельствах, если две из трех частей хороши, вы можете пройти собеседование. Итак, я расскажу вам, как подготовить эти три части в соответствии со своей ситуацией:
Резюме и проекты
Поскольку я обычно отвечаю за некоторые интервью внутри группы, как интервьюер,CV действительно важен! !它是面试官对你的第一印象,所以简历的排版以及内容质量很关键。
Начнем с оформления резюме, и резюмируем следующие моменты:
- Формат резюме должен использовать PDF! !;
- Личная информация и контактная информация должны быть размещены на переднем плане, насколько это возможно, а макет резюме должен быть компактным и не слишком свободным;
- Некоторые наборы технологий и ключевые слова необходимо выделить жирным шрифтом и подчеркнуть;
- Общее содержание резюме должно быть максимально уложено в пределах двух страниц, а предложения должны быть краткими и не многословными;
Если макет резюме находится за пределами США, содержание резюме важнее «внутренней красоты». Хорошее резюме способно явно исказить их текущий фон и содержание, мы обычно делим резюме на четыре части:Личная информация и образование,рабочий стаж,Введение в проект,Самостоятельные навыки и самооценка.
Личная информация и образование,рабочий стажЭти две части могут быть написаны в соответствии с их собственной реальной ситуацией,Не притворяйтесь! !Возможно, многие люди выдумывают и фальсифицируют свое образование и опыт работы, чтобы сделать свое резюме «великолепным». Последствием этой операции является то, что это, скорее всего, будет обнаружено на этапе расследования, в результате чего ваше предложение будет отменено. , В серьезных случаях Может быть заблокирован.
Введение в проекта такжеСамостоятельные навыки и самооценкаСодержание этих двух частей часто определяет рейтинг результатов интервью. Сначала поговорим об этой части проекта. Макет резюме и личные данные определяют, сможете ли вы пройти первоначальный отбор.Персональный проект заключается в определении верхней границы оценки после прохождения собеседования.. При собеседовании с соответствующими кандидатами внутри группы мы обычно сосредотачиваемся на этой части проекта.Есть две основные вещи, на которых следует сосредоточиться:
- Есть ли в этом проекте яркие пятна, и есть ли у этого проекта лендинговый выход;
- Соответствует ли проект кандидата бизнесу компании, и имеет ли кандидат ценность и потенциал для повышения эффективности проекта в дополнение к деловой работе;
Поэтому, как кандидаты, мы должны попытаться перечислить несколько репрезентативных проектов, которые улучшат впечатление интервьюера о нас самих, и мы должны быть хорошо знакомы с проектами, написанными в резюме.Перед собеседованием мы можем воспользоваться методом самоопроса. и самостоятельный ответ на практике. Многие кандидаты напишут много бизнес-контента в разделе проектов, а реальных ярких проектов не будет, что приведет к посредственному резюме.
В нашей повседневной работе нам необходимо больше участвовать в технических проектах, таких как оптимизация производительности, обеспечение качества, оптимизация конструкции и расширение возможностей эксплуатации.Эта работа может не только улучшить широту и глубину ваших технологий, но и значительно обогатить ваше резюме. , давая вам больше рычагов воздействия на интервью.
Навыки, награды и самооценкаПока вы четко перечисляете свои навыки и награды, например: опыт мобильной разработки, опыт работы с микро-интерфейсом, знакомство с linux, node, награды XXX и т. д. Лично мне не нравится часть «самооценка», потому что содержание часто одно и то же, и нет никакой ценной информации.
Основы интерфейса
Вопросы для интервью, связанные с основами фронтенда, собраны во многих репозиториях на гитхабе, конечно, мы можем использовать их для проверки и заполнения вакансий перед собеседованием, но главное накопить и иметь глубокое понимание, чтобы не задавать вопросы. глубинные вопросы во время интервью Не зная ситуации...
Вот некоторые рекомендуемые книги и материалы, связанные с основами интерфейса:
- Расширенное программирование с помощью JavaScript (Ruby Book)
- Начало работы с ECMAScript 6(Руан Ифэн ES6)
- Реагировать на официальную документацию
- GitHub.com/CA против Чжоу…
- GitHub.com/ в настоящее время имеет бриз…
Алгоритмы и рукописный код
По поводу "алгоритма" скажу по личному опыту,зубрежка бесполезна...😢
Обязательно придерживайтесь чистки и сохраняйте «чувство»! Что касается моих фронтенд-интервью, то рассмотренные алгоритмы не очень непопулярны или сложны, они, как правило, легкие и средние, поэтому вы можете сначала начать с простых, а затем постепенно переходить к средним и сложным, шаг за шагом. . . . ,
рукописный кодНекоторые из наиболее распространенных тем:
- Троттлинг против сотрясений;
- Написанное от руки обещание и соответствующая реализация API;
- Реализовать привязку, применение, вызов;
- кэш запросов;
- Реализовать шаблонные строки;
- класс es6 преобразуется в es5;
- Реализовать плоский массив и другие связанные API;
- Реализовать функцию сравнения версий; ...
Суммировать
Интервью на самом деле является процессом самоанализа и самоанализа, в ходе которого вы обнаружите свои сильные и слабые стороны. Этот опыт интервью показал отсутствие у меня технического мышления в алгоритмах и специальных областях... Так что я буду усиливать свое изучение и закрепление в этом направлении в будущем, но в то же время я получил предложения от трех "больших заводов" Подтверждение работа, это показывает, что я квалифицированный винт 😄
Что касается психологического состояния во время собеседования, то весь процесс собеседования очень утомительный. За этот короткий месяц вы испытаете скачок крайней самоуверенности и крайней утраты. В этот период вам необходимо скорректировать свой менталитет. пройти собеседование не проблема.Вам отказали напрочь, но ваш опыт работы не очень соответствует требованиям его работы, так что вам все равно придется сохранять уверенность и боевой настрой.
Пройдя эти интервью, я задумался над одним вопросом:Какова ваша основная конкурентоспособность после 3-5?
Для фронтенда, когда вы впервые вышли на рабочее место, между вами и другими может быть определенный разрыв из-за разницы во времени, затраченном на обучение, но этот разрыв со временем будет постепенно сокращаться.После 3 лет работы большинство Люди могут в основном решать бизнес-задачи,Таким образом, основная конкурентоспособность заключается не в том, что вы пишете ххх требования..., а в том, есть ли у вас возможность продолжать обучение и есть ли у вас собственное мышление и стремление в определенной области переднего плана.
Добро пожаловать лайк и избранное ❤️:)