задний план
Я искал летнюю стажировку в этом семестре, и я проголосовал за Али в течение 3.12.Сейчас с трех сторон прошло больше недели, поэтому я воспользуюсь каникулами, чтобы записать его.
одна сторона (3.16)
Это может быть потому, что я отправил свое резюме раньше, поэтому я позвонил через три дня после того, как отправил свое резюме, и назначил встречу на собеседование на следующее утро. С одной стороны, должно бытьПредварительное изучение резюме+Основание.
Интервьюер услышал, что голос был очень молодым.Сначала позвольте мне представиться, а затем задать несколько вопросов, основанных на навыках, проектах и конкурсах, написанных в резюме (я чувствую, что это для проверки того, правдивы ли вещи в резюме Например, я упомянул в «Я использовал докер на стажировке», и он попросил меня вкратце объяснить роль докера и то, как его использовать в проекте.
Честно говоря, я очень растерялся в предыдущем абзаце, потому что я вообще не задавал много вопросов по интерфейсу, и это был первый раз, когда я не имел опыта работы с крупным производителем, и даже задал мне макро вопрос о мои взгляды на front-end поле... Я все думал в душе Чем это отличается от стиля интервью других, которые я видел в Интернете.
Однако после того, как в основном были заданы вопросы, указанные в резюме, интервьюер сказал: Давайте зададим несколько технических вопросов (о, так мое собеседование только началось...) Ниже приводится запись некоторых вопросов, которые я задавал, насколько я помню. .
Расскажите о блочной модели CSS.
Стандартная блочная модель и странная блочная модель IE, затем упоминаются настройкиbox-sizingМожно преобразовать и некоторые общие сценарии применения (этот вопрос был)
Как центрировать элемент по горизонтали и вертикали
(Старые клише... Я перечислил несколько методов для встроенных элементов и элементов блочного уровня, и на этом вопрос тоже окончен)
Знаете ли вы, что такое Политика единого происхождения?
Знаете, тот же протокол, тот же хост, тот же порт — это политика безопасности.
Как решить междоменную проблему
CORS и JSONP или настройки серверного прокси
Вы знаете принцип JSONP?
На HTML-странице статические ресурсы загружаются с разных доменных имен через соответствующие теги, которые разрешены браузером.Основываясь на этом принципе, вы можете динамически создавать сценарии и запрашивать URL-адрес с параметрами для достижения междоменной связи.
Как обнаружить утечку памяти в браузерах
F12 Открыть инструменты разработчика, чтобы увидеть использование памяти? ... (немного не понимаю смысла этого вопроса)
Интервьюер добавил: Например, если вы хотите написать плагин для Chrome для обнаружения утечек памяти, расскажите мне, что вы думаете.
(В то время я сильно запутался в этом вопросе и забыл, на что отвечал вслепую. Позже я проверил Интернет и, похоже, я могу использовать метод счетчика)
Разница между перерисовкой и перекомпоновкой
(проходить……)
Вы знаете механизм событий браузера?
Конечно... фаза захвата, фаза цели, фаза бублинга (кстати, я также упомянул, что IE8 и ниже не поддерживаютсяaddEventListener)
На каком этапе запускается React
XhrHttpRequest
componentWillMount
Любая идея, почему это было инициировано на этом этапе?
Я думал об этом в то время, и ответ заключался в том, чтобы обеспечить нормальную загрузку и визуализацию данных...
Почему виртуальный DOM в React быстрее
Потребление производительности при непосредственном управлении DOM очень велико, поэтому основная стратегия текущего внешнего интерфейса заключается в использовании виртуального DOM.React сначала создаст виртуальное дерево узлов, затем сравнит одноранговые узлы с помощью алгоритма сравнения и, наконец, только перерендерить модифицированные.Узловая часть , и тогда балабала начинает рассказывать о принципе работы алгоритма
Наконец, давайте поговорим об этом классическом вопросе: что происходит с момента ввода URL до завершения загрузки страницы?
(Я уже запомнил ответ на этот вопрос...) Позже я также пожаловался, что этот вопрос также был включен в выпускной экзамен прошлого семестра.Собеседник сказал, что да, этот вопрос может расширить знания во многих аспектах.
Затем интервьюер снова спросил, что вы считаете своим самым большим преимуществом перед другими...
(Мне было интересно, не подумал ли интервьюер, что я слишком плохой, и хотел бы спросить что-то в конце, чтобы посмотреть, смогу ли я заставить его передумать. Затем я перечислил другие свои технологические стеки, которые не были заданы на собеседовании, очень запутанным образом. ... Позже я узнаю, что этот общий ответ - преимущество персонажа)
Затем интервьюер дал мне онлайн-адрес программирования, 5 вопросов, первые три, которые я чувствовал, знакомы с основными операциями JS, могут пройти, а последние два относятся к простым вопросам алгоритма leetcode easy level.
Я столкнулся с небольшим эпизодом в середине. Я был наполовину отключен, и нажатие на токен URL было недействительным. Однако у меня все еще оставался один вопрос, который я не отправил, и я не мог связаться с интервьюером. Час спустя, интервьюер снова позвонил мне, и я сказал, что сеть только что сломалась (роутер часто отключается в этом семестре), интервьюер сказал, что все в порядке, и попросил меня дать ему представление о каждом вопросе, и я объяснил это бип-бип-бип-бип Какое-то время он все время напевал, а после того, как прослушал, он прямо сказал мне об этом.
резюме: Базовая часть действительно базовая... Я чувствую, что мне повезло, я просто знаю, что спросить.
Две стороны (3.23)
Второй вопрос в основномпроекта такжеобычная ситуация, я не задавал много основных вопросов, и атмосфера была очень спокойной на протяжении всего процесса. Я подозреваю, что интервьюер с одной стороны дал мне оценку, что основы были хорошими, а я не спрашивал другую сторону. возможно, что-то записали, и первый вопрос был о себе.
Я вижу, что в вашем резюме вы были президентом студенческого клуба Microsoft, не могли бы вы рассказать мне, для чего создан ваш клуб?
Сначала я процитировал официальное объяснение «совместного проекта академического сотрудничества между Microsoft и университетами», а затем сказал, что у нас обычно есть техническое обучение и проводятся студенческие мероприятия, в основном основанные на технических обменах ==
Так как же вы стали председателем?
Я был ошеломлен, я хотел сказать, что это был последний сеанс, но я вдруг понял, что этот вопрос должен касаться ваших замаскированных преимуществ перед другими. После того, как я усвоил урок с одной стороны, я начал анализировать (чуй) (би), почему я могу быть председателем с точки зрения технических возможностей и серьезной ответственности.
Я вижу, что вы тоже участвовали в конкурсе по информационной безопасности и выиграли приз, можете рассказать, чем вы тогда занимались?
Я сказал, что это не рабочий конкурс, это конкурс CTF по захвату флага, а потом я сказал что-то, связанное с главным конкурсом.
Знаете ли вы, какие проблемы с безопасностью на интерфейсе?
Говоря о XSS и CSRF
Что это за генерация облака слов Weibo, которую вы сделали?
Сканирование через Weibo ID пользователя и генерация картинки по частоте слов, этот фронтенд не имеет технических сложностей, в основном бэкенд, проект находится на GitHub
Вы только что говорили о сканировании Weibo, тогда расскажите мне об основной идее написания краулера
(Проанализировать структуру страницы, построить URL, инициировать запрос, получить страницу, балабала много наговорила)
Сталкивались ли вы с трудностями при ползании?
Я сказал, что есть механизм защиты от сканирования, а затем рассказал о некоторых распространенных решениях.
Вы обычно пишете о рептилиях?
Пишите, когда есть потребность в данных (тогда, например, я внес немного кода в проект с открытым исходным кодом RSSHub раньше, то есть я сделал RSS-ленту для школьной образовательной сети, которая на самом деле является краулером)
Я видел, что у вас уже была стажировка, чем именно вы занимались в это время?
Я сказал, что когда был второкурсником, то в основном писал небольшие программы, но так как в команде разработчиков всего 4 человека, я фактически писал все от фронтенда до бэкенда до теста... (а потом грубо представил используемый в нем стек технологий)
Как вы, ребята, сотрудничаете (потому что я упомянул рабочий процесс gitflow
Я в общих чертах описал использование разных веток и как их поддерживать, когда вырезать ветку фичи или бага, когда слить, и автоматические сборки CI CD и т.д...
план будущей учебы
Фронтенд меняется очень быстро, поэтому я хочу усилить его на базе CS с одной стороны, и следить за сообществом с фреймворками и инструментами с другой стороны, и посмотреть, какие новые инструменты доступны в последнее время. изучить исходный код React (потому что V16 не очень хорошо знает основные принципы некоторых изменений, поэтому я осмеливаюсь сказать только «недавние договоренности», в основном потому, что боюсь, что он спросит)
Есть ли у вас какие-либо другие навыки, которые не указаны в вашем резюме?
Я сказал, что я также изучал машинное обучение... Я прошел курс Эндрю Нг на Coursera и написал запись в блоге в то время == Затем я немного занимался разработкой Android, но не используя java, а используя недавний фреймворк с открытым исходным кодом Google flutter, самостоятельная работа во время зимних каникул Да, я также выпустил приложение в Google Play... (Честно говоря, я немного запутался в этом вопросе в то время, но я чувствовал, что должен сказать некоторые навыки и даже съехал машинного обучения... Но даже если бы он спросил об основах машинного обучения, я все равно был бы вполне уверен. Перед выпускным экзаменом в прошлом семестре я провел ночь, читая первые 60% арбузной книги...
Знаете ли вы, что текущий ИИ автоматически генерирует интерфейсный код, что вы об этом думаете?
(Я отвечу на этот вопрос 🙃)
У вас есть какие-либо вопросы ко мне
Хотелось бы узнать, какого уровня должен достичь сильный студент бакалавриата на текущей позиции фронтенда, и что компания ценит больше?
Наконец, оценка интервьюера: остальные аспекты неплохие, но есть проблема с умением выражать... ок~
резюме: Второй интервьюер очень дружелюбный! Весь процесс был похож на болтовню, а позже мне рассказали принцип ЗВЕЗДЫ... Может быть, мою способность к самовыражению действительно нужно усилить.