Naturalmente, depende de qué tan preparado esté usted. A continuación, trataré de enumerar las principales cosas para prepararse y las formas de verificar dónde se encuentra.
En la mayoría de los casos, pasará por una entrevista en la pantalla del teléfono y posiblemente después
eso a través de varias entrevistas técnicas en el sitio.
Es casi seguro que habrá preguntas algorítmicas en estas entrevistas y también tendrá que codificar soluciones para ellas. Esto puede ser en un editor (para la pantalla del teléfono) o en una pizarra (para los sitios).
- ¿Cuáles son los errores comunes cometidos al responder preguntas de la entrevista Java?
- Cómo superar mi miedo al rechazo al asistir a entrevistas técnicas de codificación
- Estoy escribiendo un programa para crear un árbol de búsqueda binario y mostrar datos ordenados. ¿Cómo puedo hacer eso en la programación en C fácilmente me da el código completo?
- Si me estoy preparando para una entrevista tecnológica, ¿cuál sería el mayor beneficio: HackerRank, LeetCode o InterviewBit? ¿Qué distingue estos tres sitios?
- Cómo calcular de manera óptima la carga máxima en cada paso de tiempo, dada una lista de procesos y cargas asociadas
Además de eso, es muy probable que también se le hagan preguntas de diseño del sistema.
Algoritmos – teoría y práctica
En primer lugar, la preparación que he hecho y recomendaría es aprender los algoritmos básicos y las estructuras de datos y aprender a usarlos muy bien en código. No es suficiente solo conocer los algoritmos. Debe poder diseñar soluciones utilizándolas y convertirlas rápidamente en código fuente de trabajo. Un gran lugar para practicar es TopCoder.com. Los reclutadores de Google también lo recomiendan.
En caso de que piense que es difícil comenzar con TopCoder, puede consultar nuestro tutorial sobre eso en HiredInTech: http://www.hiredintech.com/topco….
TopCoder también ofrece una gran variedad de tutoriales de preparación. He hecho una lista de temas para leer y resolver problemas mientras me preparo para las entrevistas de Google. La lista se divide en tres grupos:
Absolutamente crítico:
- Cómo diseccionar una declaración de problema de TopCoder
- Cómo encontrar una solución
- Planificación de un enfoque para un problema de TopCoder, Parte 1
- Planificación de un enfoque para un problema de TopCoder, Parte 2
- Las mejores preguntas para los posibles programadores de C ++, Parte 1
- Las mejores preguntas para los posibles programadores de C ++, Parte 2
Prioridad 1 (Debe hacer):
- Matemáticas para TopCoders
- Programación dinámica: de principiante a avanzado
- Estructuras de datos
- Clasificación
- Búsqueda binaria
- Introducción a los algoritmos de búsqueda de cadenas
- Encienda C ++ con la Biblioteca de plantillas estándar: Parte I
- Introducción a los gráficos y sus estructuras de datos: Sección 1
- Introducción a los gráficos y sus estructuras de datos: Sección 2
- Complejidad computacional: sección 1
- Complejidad computacional: sección 2
Prioridad 2 (Agradable de leer):
- Un poco de diversión: diversión con pedacitos
- La importancia de los algoritmos
- Introducción a los gráficos y sus estructuras de datos: Sección 3
- Juegos de algoritmos
- Codicioso es bueno
Si haces los dos primeros grupos y resuelves algunos de los problemas recomendados, ya estarás en muy buena forma para la entrevista de Google, en mi opinión.
Una vez más: la codificación también es muy importante. Haga mucho de eso hasta que se sienta seguro de que puede escribir un programa de trabajo en solo 10-20 minutos. Y recuerde, debe hacer eso en la pizarra durante las entrevistas. Más sobre eso a continuación.
En el curso de preparación gratuita de HiredInTech también tenemos un capítulo completo sobre Algoritmos para entrevistas. No dude en consultarlo: http://www.hiredintech.com/algor…
Diseño de sistemas
Estas preguntas son igualmente importantes en mi opinión. Algunos ejemplos son:
- Diseña un motor de búsqueda como el que tiene Google
- ¿Cómo implementaría la función de búsqueda en YouTube?
- Discuta cómo diseñaría una función en Google+ donde un usuario puede ver a los amigos de sus amigos que compartieron la misma publicación
- Diseña una clase, que hace X
… y muchos otros.
La cuestión es que, por lo general, son preguntas abiertas. Puede hablar sobre el tema durante horas, si no semanas, y puede que no haya una respuesta correcta única.
El propósito es verificar si puede ver el panorama general, hacer las preguntas correctas y encontrar una solución de alto nivel. Debe tener en cuenta los cuellos de botella, los recursos críticos, las diversas restricciones en el sistema, etc.
Para prepararme para eso, leía tantas preguntas en línea como fuera posible. Entonces trataría de pensar en soluciones para algunos de ellos. Si conoce experiencias de ingenieros dispuestos a discutirlas, eso también podría ser muy útil.
Para obtener más información sobre las preguntas de diseño del sistema y cómo mejorarlas, puede consultar este capítulo en HiredInTech: http://www.hiredintech.com/syste…
Codificación
Como se mencionó anteriormente, la codificación está en la pizarra para los sitios. Por teléfono, generalmente ocurre en un documento compartido. Entonces, esto no será lo mismo que usar un editor.
Por eso, asegúrese de practicar este tipo de codificación. Es muy diferente y tienes que estar seguro de poder manejarlo. ¡La práctica lo es todo aquí!
Tenemos una sección dedicada a la codificación en HiredInTech: http://www.hiredintech.com/writi…
Preguntas no técnicas
Puede parecer que no son importantes, pero muestran mucho sobre su actitud y personalidad. También puedes prepararte para ellos. Definitivamente esté listo para hablar sobre cualquier cosa que esté en su currículum. Además, tenga en cuenta preguntas estándar como:
- ¿Cuál fue su proyecto más difícil / más interesante / más desafiante?
- ¿Qué cursos disfrutaste más en la universidad?
- ¿Qué cambiarías de un producto de Google?
Entrevistas simuladas
En mi opinión, las entrevistas simuladas son muy importantes, pero a menudo se pasan por alto durante su preparación.
Si tiene una persona que puede hacerle preguntas de entrevistas en un entorno similar al de las entrevistas reales, sería genial. Este tipo de experiencia realmente entrena tu mente, por lo que cuando vayas a las entrevistas reales de Google te sentirás mucho más seguro y preparado.
Si suponemos una entrevista de 45 minutos, no hay mucho tiempo para pensar y codificar. Por lo tanto, es muy útil haber entrenado muy bien toda esta experiencia. Debe desarrollar su estrategia para abordar todo tipo de problemas, de modo que pueda aprovechar al máximo la entrevista.
Estoy seguro de que hay muchos otros consejos, pero este es un buen comienzo. En resumen, la práctica hace la perfección y la cantidad de trabajo que debes realizar depende de dónde te encuentres en este momento. Las entrevistas simuladas son una buena manera de juzgar si estás listo o no.
¡Buena suerte!