Tabla de contenido
PalancaPrefacio
Antes de escribir esta experiencia de entrevista para ingenieros de software, en primer lugar, me gustaría expresar mi agradecimiento especial. KyleMo, está dispuesto a dejarme referirme a la estructura de su artículo.
2023 Experiencia de búsqueda de empleo de ingeniero web Full-Stack y FEEste artículo sobre la experiencia de la entrevista está muy bien escrito y recomiendo a todos que lo lean detenidamente.
fondo
- El trabajo de tiempo completo anterior duró un año y ocho meses. Como ingeniero completo, trabajé en el equipo de aplicaciones en la primera mitad del año y usé Flutter para desarrollar aplicaciones para IOS y Android. Usé React y ASP.Net para el desarrollo.
- Comencé a asumir proyectos cuando estaba en la universidad. Después de graduarme, también me uní a un equipo de nueva creación como ingeniero de front-end durante un tiempo.
- La proporción entre habilidades de front-end y back-end es de 7:3
- Durante la entrevista, estaba desnudo y preparado para la entrevista con todas mis fuerzas.
- Leetcode tiene casi 300 preguntas, más de la mitad de las cuales son medianas.
- Graduado del Departamento de Ingeniería Eléctrica de la Universidad de Chengdu.
Objetivo
- Únete a un equipo multinacional y comunícate en inglés.
- Trabajo remoto flexible (aunque personalmente prefiero trabajar físicamente)
Entrevista al ingeniero de software de Yahoo!
El puesto de trabajo de Yahoo! es Ingeniero de software, un ingeniero de software de front-end que, además del desarrollo de front-end, también necesita estar expuesto al desarrollo de back-end y a la gestión de proyectos.
Cuando vi la información sobre la vacante de empleo en LinkedIn, le pedí a un amigo que lo recomendara. A través de mi amigo, entendí aproximadamente que este puesto es para un equipo multinacional, que se requiere inglés para las reuniones diarias y que puede haber una diferencia horaria.
Proceso de entrevista de Yahoo!
Llamada telefónica de RR.HH. de nivel 0 → Entrevista en línea de nivel 1 (2 horas) → Entrevista in situ de nivel 2 (4,5 horas) → Notificación de RR.HH. de haber superado la entrevista → Oferta verbal en Taiwán → Oferta física desde la sede de EE. UU.
La experiencia general de la entrevista fue muy buena. RR.HH. también presentará en detalle en qué partes de cada entrevista se centrará antes de la misma.
Por lo tanto, en términos de preparación, primero me preparé de acuerdo con el artículo sobre la experiencia de la entrevista de Silicon Valley Company y también leí el artículo "Un tercio de acre de tierra" para evitar que la dirección de mi preparación fuera tan divergente.
El intervalo entre cada nivel es de casi un mes. Antes de pasar al siguiente nivel, RR.HH. volverá a preguntar sobre la disposición actual y si hay otras entrevistas en curso. Realmente se puede sentir la dedicación y el profesionalismo de RR.HH. en el reclutamiento.
Nivel 0 D + 14
Llamé a Recursos Humanos y entendí a grandes rasgos que el puesto era para un equipo multinacional que utilizaba lenguajes de programación nativos.
Los niveles posteriores evaluarán inglés, programación nativa, diseño de sistemas, algoritmos de estructura de datos y conocimientos profesionales.
Nivel 1D+33
Hubo tres entrevistadores en total, cada uno de los cuales hizo preguntas sobre mi experiencia pasada, conocimientos de front-end y back-end, seguridad de la información y conocimientos del navegador.
primera parte:Reanudar experiencia
Realice consultas detalladas sobre la experiencia en el currículum, por ejemplo:
¿Por qué elegir la tecnología Flutter en lugar de React Native?
¿Por qué elegir utilizar Tailwind? ¿Cuáles son las ventajas y desventajas?
¿Por qué utilizar MonoRepo y qué dificultades ha encontrado?
El entrevistador también preguntará sobre diversas tecnologías según la experiencia laboral y hará preguntas detalladas. Se recomienda analizar las ventajas y desventajas de cada método técnico durante el proceso de respuesta de ida y vuelta.
Una vez escuché un dicho que me parece muy útil: "Si no piensas en más de tres soluciones a un problema, significa que aún no sabes cuál es el problema. Por lo tanto, cualquier experiencia y habilidad que figuran en mi lista". currículum, tengo otros Si se toma el tiempo para complementar sus conocimientos, también repensará la situación en la que se utilizó la tecnología y si existen otras soluciones.
Aquí están los conocimientos que se enumeran en el currículum y luego se complementan, como: Kubernetes, Docker, TypeScript, PHP, Flutter, GCP...
Segunda parte: experiencia
Realice preguntas y respuestas sobre el conocimiento del front-end y del back-end.
Las personas interesadas en JavaScript Async Await pueden consultar Este artículo.
Las personas interesadas en la función de orden superior de JavaScript pueden consultar Este artículo.
Nivel 2D+64
Hay cuatro entrevistadores en total, divididos en varias partes, incluida la entrevista en inglés, la investigación de experiencias y la implementación del programa.
Parte 1: Autopresentación en inglés y entrevista conductual
Te llevará aproximadamente media hora presentarte y conocer tu experiencia en inglés para la entrevista.
Sin embargo, he estado practicando inglés, por lo que no hice ninguna preparación especial para esta entrevista en inglés.
Parte 2: comprensión profunda del currículum
Esta vez, el nivel plantea preguntas más profundas sobre su currículum, incluidos los principios subyacentes de Flutter. ¿Alguna vez ha resuelto el problema de la incompatibilidad entre dispositivos y paquetes de Android?
Parte 3: HTML, corte CSS
CodePen se utiliza aquí para realizar una entrevista de codificación in situ, pero existen algunos inconvenientes.
En ese momento, escribir cualquier código HTML generaría automáticamente código redundante. Me tomó otros diez minutos resolver este error y finalmente tuve que abrir rápidamente el Código VS al que estaba acostumbrado para completar la pregunta.
En esta parte, lo más difícil para mí es reaccionar en el acto, porque también usé CodePen para practicar mi mano el día anterior, pero no esperaba encontrarme con un error y no poder hacerlo. escribe el programa, jaja.
Parte 4: estructura de datos y algoritmo
Tengo la costumbre de responder preguntas. Normalmente uso Python para responder preguntas, pero para preguntas más simples que se pueden escribir de manera intuitiva, uso JavaScript.
Hay tres preguntas en total. Mi experiencia personal es una pregunta fácil y dos preguntas medianas. La pregunta preliminar para la primera pregunta es una pregunta clásica. Aquí daré dos soluciones directas y rápidas.
Me olvidé de la segunda y tercera pregunta, pero ambas usaban funciones recursivas. La tercera pregunta también me dio la impresión de que era una pregunta de retroceso cuando vi la pregunta, porque estaba más familiarizado con Python cuando escribí las preguntas. También le pregunté al entrevistador si podía usar Python. Finalmente, también escribí la segunda y tercera pregunta con anticipación.
Parte 5: operaciones Dom de JavaScript
Esta parte es un nivel para el que pasé mucho tiempo preparándome, porque sabía que el equipo usaba Vanilla JavaScript (JavaScript puro), así que pasé mucho tiempo viendo FAANG y tomando la experiencia de la entrevista frontal de Vanilla JavaScript.
Aunque este nivel fue un poco apresurado, el control del teclado no se implementó al final. Sin embargo, nos comunicamos con el entrevistador y le explicamos cómo implementar la función de operación del teclado, y también se implementaron los puntos de bonificación finales.
Parte 6: Pregunta de comportamiento
Los otros entrevistadores se desconectaron primero y realizaron la parte final de la entrevista con el Gerente Técnico. De hecho, yo mismo preparé la Pregunta de Comportamiento.
Aunque mucha gente piensa que las entrevistas conductuales sólo plantean algunas preguntas muy básicas, como por ejemplo: ¿Ha encontrado alguna dificultad en el trabajo y cómo la solucionó?
Pero, de hecho, además de utilizar el método STAR para responder este tipo de preguntas, también puede permitirle al entrevistador saber si existen diferencias entre equipos, entre departamentos o incluso singularidades del entrevistador. Por lo tanto, me he preparado para lo común. Responda las preguntas de dos o tres maneras.
Al final charlé con el entrevistador durante 30 minutos más y le presenté la empresa, el equipo, la tecnología, etc. Cuando estaba haciendo esta parte, personalmente sentí que el ambiente era agradable.
Notificación de RR.HH. pasó la entrevista D+77
Se le notificará durante la entrevista y los resultados de la entrevista se le informarán dentro de una a tres semanas. Pero tuve mucha suerte aquí, me dijeron que pasé la entrevista en una semana y también me dijeron que después de pasar la entrevista, me tomaría una o dos semanas más discutir el seguimiento, incluido el salario, los beneficios, etc.
Yahoo! Taiwán Oferta Oral D + 80
De hecho, solo unos días después de pasar la entrevista recibí otra oferta verbal de Yahoo! Creo que puede deberse a que el salario aprobado ya está en línea con el salario ideal y no es necesario. Haz una Oferta Competida en el momento, así la velocidad es más rápida.
Después de recibir una oferta verbal de la empresa taiwanesa, RR.HH. también ayudó a enviarla a la sede de EE. UU. para ejecutar el proceso y también me dijo que tomaría casi un mes recibir una oferta formal.
Oferta de sede de Yahoo! EE. UU. D + 84
Sólo cuatro días después recibimos otra notificación diciendo que la oferta de Estados Unidos había sido enviada. ¡Tenemos mucha suerte aquí!
Porque también calculo que la entrevista estará terminada a finales de octubre, la oferta se firmará cerca de diciembre y la inscripción no será hasta enero del próximo año.
Pero no esperaba que el cronograma se adelantara un mes y recibí una oferta formal a principios de noviembre.
método de preparación
La forma de prepararse aquí es en realidad prepararse de acuerdo con el contenido que originalmente se esperaba probar.
Para programar entrevistas, también se recomienda echar un vistazo primero a cómo se llevan a cabo las entrevistas en el extranjero. Se recomienda comunicarse más con el entrevistador para confirmar los requisitos antes de comenzar a escribir el programa.
Considero la programación de entrevistas como escenarios de trabajo y la etapa de codificación de entrevistas como programación en pareja. Nos comunicamos de un lado a otro para asegurarnos de que el entrevistador comprenda sus pensamientos y usted también pueda ordenar el proceso y el pensamiento de escribir programas.
Aunque la parte del diseño del sistema no se probó durante la entrevista, dediqué mucho tiempo a prepararla, así que la compartiré con ustedes.
Estructuras de datos y algoritmos.
En realidad, esto se conoce comúnmente como preguntas de cepillado. Durante la entrevista, respondí casi 300 preguntas, incluidas: JavaScript 30, Blind 75, Neetcode y SQL. Sin embargo, seleccioné específicamente los algoritmos y estructuras de datos más comunes.
estructura de datos
Matriz y hash, pila, árbol, intentos, montón, cola, gráfico
algoritmo
Dos punteros, ventana deslizante, búsqueda binaria, retroceso, programación dinámica, codicioso
Pero tenemos que ser honestos aquí, la programación dinámica es realmente difícil de preparar, por lo que la mayoría de ellos están preparados para los tipos de preguntas que son comunes en las grandes empresas.
Recomendación especial
código neto,ciego 75,Un tercio de acre,algoritmo javaScript
Si hay lectores que lo necesitan, aquí está mi respuesta de Github Leetcode solución leetcode
Se seguirá actualizando periódicamente, ¡bienvenido a darle me gusta y coleccionarlo!
Conocimiento del dominio
Interfaz
JavaScript, HTML, CSS, Vue, React, todas las preguntas comunes y poco comunes están preparadas. Soy tan competente que puedo responder directa y reflexivamente cuando encuentro preguntas 80%. También incluye tecnologías relativamente nuevas y optimización del rendimiento. y arquitectura front-end.
extremo posterior
Los métodos de preparación aquí no son tan profundos. Después de todo, hay demasiadas cosas para preparar. Optimización de API. Una serie de artículos.
Terminal móvil
Flutter y React Native, estos dos son los dos a los que he dedicado tiempo para estudiar sus operaciones subyacentes. Tengo el presentimiento de que me harán muchas preguntas relacionadas, por lo que cuando me preparo para la entrevista, entiendo bien sus. Implementación subyacente, diferencias, pros y contras.
Codificación frontal
Operaciones Dom de JavaScript
He implementado varios gadgets usando JavaScript puro, por ejemplo: Lista de tareas pendientes, escritura anticipada, formulario de validación, cacluador, temporizador, tres en raya, desplazamiento infinito, lista de arrastrar y soltar.
CSS rígido
Como nací en front-end y a menudo cortaba patrones, practiqué las partes más problemáticas del corte de patrones y también practiqué Flex & Grid.
Mi propio ajuste preestablecido aquí es que si uso Flex para completar una página hoy, también debería poder usar Grid para completar el diseño, y también debería poder analizar las ventajas y desventajas de dos o tres métodos de escritura diferentes.
Implementación de JavaScript
El alcance de la implementación aquí es realmente muy amplio, por lo que tengo un método general e implemento todas las funciones comunes yo mismo.
Curry, Acelerador, Antirrebote, DeepEqual, Memoize, Promise, Flatten, Polyfill, PromiseAll, Promisify, ShallowClone, DeepClone, Aplicar, Generador.
También hay otra práctica aquí. Reducir, Bucle de eventos, Promesa, Proto Una gran cantidad de preguntas de programación.
Recursos recomendados
KyleMo Medio & Gran parche de optimización del rendimiento front-end
Yii|Flutter|Desarrollador multiplataforma
entrevista conductual
Aquí he preparado casi diez preguntas de comportamiento que son comunes en Silicon Valley y he practicado cada pregunta para poder responderla de forma reflexiva. Te recomiendo especialmente que eches un vistazo a One Third Acre. Hay muchos artículos excelentes escritos por chinos en Silicon Valley. A través de sus artículos, realmente puedes saber que tienes muchas deficiencias.
Además de utilizar el método STAR como pregunta de comportamiento, también optimicé y revisé mis respuestas en función de la descripción del puesto y la cultura corporativa de Yahoo! para evitar perder demasiado tiempo en páginas sin importancia.
Recursos recomendados
diseño de sistemas
Cuando estaba en la llamada telefónica de Recursos Humanos, cuando escuché que iba a tomar el examen de diseño de sistemas, en realidad estaba muy nervioso. Después de todo, era una entrevista para la que nunca me había preparado y de inmediato leí muchos artículos. Comparó muchos tipos diferentes de diseños de sistemas. Finalmente, elija entre ByteByteGo y Grokking Modern System Design Interview. Al final, utilicé la entrevista de diseño de sistemas modernos de Grokking con el conocido Repo para preparar el diseño del sistema.
reglas de diseño del sistema
Cuando preparé por primera vez el diseño del sistema, comencé con las reglas, que incluyen:
Disponibilidad, Fiabilidad, Escalabilidad, Mantenibilidad,Tolerancia a fallos, cálculos detallados
componentes de diseño del sistema
Comencemos con amplitud y comprendamos cada componente del sistema, incluyendo:
Sistema de nombres de dominio, equilibradores de carga, base de datos, almacén de valores clave,Red de entrega de contenido, secuenciador, monitoreo,Caché, cola de mensajería, Pub-sub, Blob Store, búsqueda distribuida
Ejercicio de diseño del sistema
Luego practique diseños de sistemas comunes, que incluyen:
Youtube, Uber, rastreador web
Sin embargo, cuando terminé todos los ejercicios, me di cuenta de que realmente había muchas deficiencias. Afortunadamente, durante la entrevista, no encontré el nivel de diseño del sistema. Debo escribir lentamente el diseño del sistema como un artículo. Por un lado, compenso mis defectos y, por otro, comparto mi tecnología con todos.
Recursos recomendados
Entrevista sobre el diseño del sistema moderno de Grokking
cartilla-de-diseño-de-sistemas
posdata
Esta experiencia de entrevista ha llegado a su fin y realmente hay muchas personas a las que puedo agradecer.
También consulté a muchos expertos sobre métodos de entrevista y simulacros de entrevista.
Esta entrevista también me hizo sentir muy afortunada, ya que me hicieron preguntas para las que me había preparado.
Y el proceso de seguimiento fue realmente bendecido por la diosa de la suerte, y la oferta se pudo firmar sin problemas.
Finalmente, permítanme poner un anuncio aquí. Estoy publicando mis propios medios. hogan.tech¡Los amigos interesados pueden seguirnos!
Actualmente, todas las preguntas y respuestas relacionadas con la entrevista se publicarán en el área de suscriptores.
¡Todos son bienvenidos a suscribirse y apoyar!