Личные недавние интервью
С февраля этого года все мои интервью, кроме одного из UF, были убиты, что можно сказать очень жестоко. Среди них есть много хороших позиций, которые, я думаю, все еще доступны, такие как Baidu, GSX, TAL и другие компании. Честно говоря, удар сильнее.
Ситуация в основном улучшилась с марта. В настоящее время эпидемия может скоро закончиться, и страна также запустила план строительства инфраструктуры на сумму почти 40 трлн юаней. В это время были опрошены несколько представителей компаний, в том числе Tencent, Ele.me , Baby Tree, Questyle Technology и т. д. в основном стали.
Наконец, 9 марта Ele.me только что подтвердила для меня позицию p7. Также считается, что он вступил в очередной этап борьбы. Подготовьте резюме интервью о своем опыте.
моя подготовка к интервью
Интервью на самом деле относится к процессу собеседования и подготовки одновременно, но в любом случае я должен иметь прочную основу, хорошее представление о себе и описание своей карьеры.
1. Подготовка базовых знаний
Эта часть на самом деле очень важна, многие проблемы должны быть понятными, такими же естественными, как дыхание.
Из-за мастерства в этой части она определяет, может ли фронтенд-инженер достичь продвинутого уровня.
Например, объектно-ориентированный, цепочка прототипов, замыкание, es6, html5, css3 — они являются основой интерфейса и должны быть хорошо знакомы. Например, если вы даже не можете объяснить замыкания, вам следует хорошенько поработать над этими основами. .
Что касается интерфейсной среды, основных функций, жизненного цикла, компонентов, взаимодействия с передачей значений, маршрутизации, редукции, vuex и т. д., в использовании практически нет сомнений. Например, интервьюер может спросить, в чем разница между действиями и мутациями.
В этой области есть почти бесконечное количество вопросов, которые можно задать, даже если один и тот же пункт знаний будет задан по-разному, если вы не очень понимаете его, вы действительно не сможете пройти продвинутый уровень.
2. Хорошее представление о себе
Самопрезентация, многие люди не преуспевают, по сути, это первое впечатление интервьюера о интервьюируемом.
Если бы я был интервьюером, я мог бы получить следующую информацию из своего представления о себе:
1. Является ли этот человек логичным человеком?
2. Является ли этот человек положительной личностью или он немного уступает?
3. Может ли этот человек хорошо выражать свои мысли?
Эти вопросы очень важны, и таким образом вы, в свою очередь, сможете выразить себя интервьюеру.
1. Школа, специальность
2. Стек технологий
3. Профессиональное резюме
4. Вклад недавней компании
Не говорите интервьюеру, что это хорошо работает с продуктом и за кулисами, и завершает проекты компании. Потому что это полная ерунда!
Представление себя обычно занимает около двух минут. Вы уверены, что сможете объяснить интервьюеру приведенные выше четыре вопроса за две минуты? И вы должны выделить некоторые ключевые моменты, например, я хорошо реагирую, я сделал оптимизацию XXX и т. д., и у меня есть опыт работы в проектах XX лет.
Суть самопрезентации: используйте самые короткие слова, чтобы внушить интервьюеру свои сильные стороны, и пусть интервьюер исследует вас в текущем общем объеме. Если вы скажете, что знакомы с Vue, интервьюер, как правило, спросит больше о Vue, и он не должен реагировать на вас.
3. Как «рассказать историю»
Это довольно важный момент. Важно, чтобы история была интересной и показывала, чем вы отличаетесь от всех остальных.
Например, я бы сказал, что раньше работал в компании и занимался стандартизацией наших интерфейсных проектов, создавал нашу внутреннюю библиотеку компонентов и интегрировал наши собственные инструменты формирования шаблонов.
Это то, что, я думаю, отличается от большинства других интерфейсов.В центре внимания интервьюера будет то, что такое стандартизация проекта и какие параметры определены? Построение библиотеки компонентов, какую проблему оно решило? Появление строительных лесов и какую проблему они решили?
Любой человек уникален, любой проект, отличается от того, как нам интервьюеру, важно, чтобы эти ключевые элементы должны быть извлечены для формирования собственной «истории».
Например, я самостоятельно берусь за проект компании ххх. С какими трудностями я столкнулся и как я вырос в неблагоприятных условиях.
Например, через канал ххх я изучил архитектурные работы многих проектов.
Обязательно верьте, что благодаря вам что-то изменилось. На самом деле большинство людей находятся в пассивном состоянии, не зная, для чего их используют, каково их положение в коллективе и каковы их обязанности. На работе я хочу, чтобы все поверили, что свое полезно, а потом искали точку, где можно внести настоящие изменения. Если вы ищете работу, хорошенько подумайте, для чего вы на самом деле работаете в команде.
Интервью: моменты, на которые следует обратить внимание
В чем суть интервью? Помните, что это общение! А у нас вообще технология, на самом деле самый большой недостаток, в основном коммуникация, по крайней мере для меня есть эта проблема.
Смысл общения, с одной стороны, в том, что вы хотите, чтобы другие поняли то, что вы выражаете, с другой стороны, вам нужно понимать, что говорят другие.
1, чтобы говорить, нужно обращать внимание, чтобы другие знали вас
Приведу прямой пример, когда я проходил собеседование для Meituan, я все время заикался. На самом деле, я не знаю почему. Обычно я говорю нормально. В особых случаях возникает эта проблема. На первой стороне группы я прошел . В то время это было видеоинтервью дома, мой сосед по комнате стеснялся сказать мне прямо, поэтому он записал его для меня, я слушал его около 10 минут, что было очень неудовлетворительно. .
Я прослушал 10-минутную запись, и моя оценка была такова, что говорить было тяжело, и совместная работа в будущем не утомит меня до смерти.
В будущем во всех интервью я буду концентрироваться на том, как я говорю, на том, как сделать так, чтобы другие поняли то, что я говорю, в приятной форме.
Во-первых, все, что я сказал интервьюеру, было систематическим.
Во-вторых, все, что я говорил интервьюеру, было логично и понятно.
В-третьих, все слова, которые я говорил интервьюеру, я сначала делал с паузой более двух секунд, тщательно думал, прежде чем говорить.
Конечно, это может быть мой частный случай, но основные утверждения ровные и логически понятные, среди программистов должно быть не так много дел.
2. Научитесь слушать и позвольте себе понять других
На самом деле во многих случаях, когда интервьюер высказывается, очень вероятно, что мы не понимаем смысла интервьюера, и в это время это будет особенно неловко.
Я обычно так делаю, скажу, опишу только что упомянутую вами проблему, ххххххх. После описания вы еще раз спрашиваете интервьюера, это то, что вы имеете в виду? Вообще говоря, интервьюер будет давать более подробные примеры и описания.
Когда я проходил собеседование для Ele.me, интервьюер со второй стороны вначале задал более сложный деловой вопрос, поэтому в начале я на самом деле не понял, что сказал интервьюер, но я пошел своим путем, направляя интервьюер, чтобы сказать больше, а затем достичь консенсуса в определенной степени, что является более приятным общением.
Научиться ли говорить или научиться слушать, на самом деле основная проблема состоит в том, чтобы позволить двум сторонам общаться по одному каналу, потому что для лидеров собеседования на самом деле ищут похожих людей!
Обязательные вопросы на собеседовании
Некоторые основные классические проблемы на фронтенде чувствуют, что они никогда не устареют, во всяком случае, я лично сталкиваюсь с ними очень часто, но я не буду подробно интерпретировать эти проблемы, а лишь сделаю предложение.
1. Что происходит после того, как интерфейсный браузер вводит URL-адрес?
Ответит обычный интерфейс, парсинг dns, получение html файлов, парсинг DOM и рендеринг страницы такой процесс.
На самом деле процесс очень сложный, например этап парсинга dns, на какие этапы он делится? Должен ли анализируемый IP-адрес быть одинаковым? Днс разрешается каждый раз? Также могут быть некоторые проблемы с хостингом cdn, которые необходимо понимать.
Например, получение файла html, как он передается? Как устанавливается ссылка? Что такое три рукопожатия и четыре волны? Что такое порт протокола http? Почему я могу получить прямой доступ к html-файлу?
....
2. Оптимизация производительности интерфейса?
Большинство интерфейсов, в основном, сокращают http-запросы, сжимают и объединяют js и css, используют технологию ленивой загрузки изображений, предотвращают перекомпоновку и перерисовку, помещают css в начало, а js — в конец.
Верно ли приведенное выше утверждение? Совершенно верно! Но в этом процессе я чувствую, что не хватает мышления.
Например, чтобы уменьшить http-запросы, какие размеры можно уменьшить? Нравится слияние http-запросов? Нравится объединение ресурсов? Например, ленивая загрузка картинок? Существуют ли другие оптимизации для http? Оптимизация файлов cookie? Дифференцированная оптимизация http-запроса и загрузки ресурсов? А в веб-просмотре? Чем она отличается от технологии оптимизации обычных браузеров?
......
3. Как внешний интерфейс выполняет мониторинг производительности и мониторинг исключений?
Мониторинг производительности и мониторинг исключений в основном в небольших компаниях и не имеют практической основы, но на подобных крупных фабриках на эту проблему будут обращать внимание.
Во-первых, это мониторинг производительности, который следует рассматривать с нескольких точек зрения: одна из них — аспект http, журналы журналов в бэкэнде, потоки в кафку, а затем потребление данных в кафке, какие интерфейсы можно точно отслеживать на предмет исключений? Какова частота исключений? Другим аспектом является внешний интерфейс Performance API, который будет генерировать данные во время использования пользователем в режиме реального времени, чтобы можно было обеспечить мониторинг производительности страницы.
Для внешнего мониторинга исключений вы должны сначала понять, что такое исключение. HTML и CSS — это не более чем проблема с отображением, и это не приведет к появлению белого экрана на странице. Так называемый мониторинг исключений на самом деле является мониторингом исключений js. Во внешнем интерфейсе window.onerror — это событие мониторинга исключений js. И вы должны знать, что это не поддерживается в IE, поэтому мониторинг IE должен быть захвачен с помощью try catch, Например, мы также можем заметить, что при обнаружении асинхронности, как выполнить захват исключения из try catch .
Последний — похоронить интерфейсный SDK, напрямую разработать js-файл, подсчитать пользовательский анализ UV/PV и т. д., например коэффициент конверсии пользователя.
4. Фронтальная безопасность
Это вопрос, который должен задавать продвинутый внешний интерфейс, который относится к систематическому познанию внешнего интерфейса всей безопасности внешнего интерфейса.
Мы должны понимать несколько аспектов: внедрение sql, xss, csrf, безопасность файлов cookie, безопасность паролей и т. д.
SQL-инъекция, чтобы понять сценарий SQL-инъекции, каков ее принцип и какое решение для текущей базы данных?
XSS-атака, распространенные сценарии атак, какой тип веб-сайтов легко подвергается атаке XSS и каков принцип всего процесса?
Атака csrf на самом деле является фишинговым веб-сайтом, поэтому необходимо понимать, почему он подвергается атаке и какие стратегии следует использовать для защиты от него.
Файлы cookie безопасны, чтобы понять, почему используются токены, преимущества и т. д.
Безопасность паролей — это в основном весь процесс входа пользователя в систему, отправки пользовательских данных, шифрования и хранения в базе данных.
Во-вторых, на самом деле есть проблемы с http и https и так далее.
5. Разница между http, https, http1.0, 1.1, 2.0 и 3.0
Эта часть http на самом деле очень сложная система, и есть много вещей, которые нужно копать глубоко.
HTTP выполняет асимметричное шифрование для получения https, на что похож этот процесс? Что такое сертификат ЦС? Каков процесс проверки всего веб-сайта?
В чем разница между разными версиями http? Какие проблемы были решены? Например, оптимизация уменьшения напора, знаете ли вы конкретную стратегию этой оптимизации? Что сократили? Что было добавлено? Копайте глубже в детали.
Базовый протокол http? Трехстороннее рукопожатие протокола tcp/ip и четыре взмаха рук — как общаться? Что такое полный старт? Даже распространяясь на область всего сетевого протокола, что такое сокет? для чего нужен удп? разрешение DNS? фтп? И другие протоколы, которые обычно не используются?
Если расширить компьютерную сеть семислойной структуры? Каждый слой что-нибудь делать? Принцип компоновки компьютера, как интерпретировать наш код и так далее.
......
Углубленная интерпретация
В этой части я грубо разделил на несколько модулей, исходный код, визуализация, кроссплатформенность, инжиниринг, взаимодействие с гибридным приложением, режим проектирования, по сути, каждый из них достоин фронтенд-исследования.
Как личность, это на самом деле место, где я определил несколько направлений, и я буду усердно работать в будущем.
1. Исходный код
Лучше всего читать исходный код определенного фреймворка, худшее — смотреть статьи по интерпретации исходного кода, написанные другими, текущий тренд в основном основан на React и Vue.
Взяв за пример Vue, вам нужно понять весь цикл фреймворка Vue, например, инициализацию Vue, что произошло? Как работает парсинг шаблонов vue? Как сформировать АСТ? Генерация функции рендеринга? Что такое сбор зависимостей? Что такое патч? Стратегия обновления данных и т. д.
Вам также нужно понять, как смешивать миксины, $options, vuex и маршрутизатор через эти API для достижения их собственных функций?
Что касается размера исходного кода, вы можете попробовать начать с системы vue, системы реагирования, loadash, zepto и этих библиотек, потому что мы пришли из этих фреймворков и библиотек js.
2. Визуализация
Карты, эчаты, холст, webgl, d3.js, three.js!
Выше приведены темы, связанные с визуализацией, которые я хочу изучить.Хотя визуализация не является моей специализацией, поскольку я раньше работал в компании, связанной с картами, я могу считаться немного визуализацией. В процессе интервью с Ele.me был упомянут специальный сценарий использования, связанный с линейным рисунком карты, отправкой крупномасштабных данных и проблемами, связанными с производительностью.
В будущем всем будут доступны обычные навыки фронтенда, такие как vue, react и т. д. Дифференцированной конкуренции не будет, рынок фронтенда будет иметь тенденцию к насыщению. специализируются на определенных аспектах.
3. Кроссплатформенность
флаттер, реактивный, weex, электрон
Вот несколько кроссплатформенных решений, представленных в настоящее время на рынке.Каждый фреймворк в общем направлении решает определенную степень многоцелевых возможностей разработки.
Первое, что нужно понять, это то, что многотерминальная разработка не является панацеей, и в нашей разработке также есть некоторые болевые точки.Будь то rn или weex, мы предоставляем некоторые специальные компоненты для интерфейса для реализации возможностей разработки. Однако бизнес разнообразен, и потребности тоже изменчивы, для компонентов, которые не предоставляются, или API, некоторые функции не могут быть реализованы нашими фронтенд-разработчиками.
Для многотерминальных фреймворков важнее понимать вещи на уровне, например, электрон, то есть понимать его суть, то есть использовать node для формирования контейнера для десктопного приложения, а затем вебвью внутри.
С точки зрения интервью, интервьюер не обращает внимания на вопрос, как пользоваться этой штукой, а вообще задает какие-то внутренние принципы, типа сравнения апплета и официального аккаунта? Основная реализация? Например, каков процесс компиляции и разбора rn? Как скомпилировать js в настоящие приложения для ios и android. Например, механизм рендеринга флаттера отличается от методов рендеринга rn? Чем он отличается от обычных веб-страниц?
Как кросс-платформенная технология флаттер относительно популярен в последнее время, и с точки зрения трудоустройства ему действительно можно научиться. Настольные приложения электрона сами по себе не сложны, но обучение и не обучение на самом деле сами по себе являются разницей.
4. Инжиниринг
Инжиниринг — это направление, которое меня больше интересует. Я сам немного попрактиковался, но можно сказать, что это только верхушка айсберга в технике.
Давайте поговорим о некоторых моментах, которые мы можем обсудить.
1. Стандарты фронтенд-проекта?
Проявляется как выбор библиотеки? Правила разделения файлов на каталоги? ПК, мобильная многотерминальная практика? интеграция программы ssr?
2. Интеграция библиотеки компонентов?
Цель построения библиотеки компонентов? Выпуск пакетов npm?
3. Инструменты для строительных лесов?
оптимизация компиляции webpack? Оптимизация сборки упаковки Webpack? Инструменты для самостоятельной сборки?
4. git commit спецификация commit-msg? Спецификация проверки кода eslint?
5. Мониторинг производительности интерфейса? Внешний мониторинг исключений? Front-end пользователи похоронили sdk?
6. рэп? Дженкинс?
5. Взаимодействие с гибридным приложением
jsBridge, улучшение производительности, ядро x5
Это небольшой модуль, мы должны понять, как jsBridge обеспечивает взаимодействие между h5 и нативными приложениями?
Интерактивное общение между ios и h5? Синхронизируется ли window.webkit?
Взаимодействие андроида и h5? В чем разница между деталями и ios?
Что может сделать webview для повышения производительности? Что такое офлайн-пакет?
Каковы преимущества ядра Tencent x5? Мы используем ядра x5, каких проблем можно избежать?
6. Шаблоны проектирования
Наконец, давайте поговорим о шаблонах проектирования, которые часто задают на собеседованиях.
Мы должны как минимум знать функции, реализацию кода и сценарии использования следующих шаблонов проектирования.
Шаблон синглтона, шаблон прототипа, шаблон фабрики, шаблон наблюдателя, шаблон стратегии, шаблон прокси и так далее.
Наконец, я желаю всем счастливого интервью.