¿Cuánto tiempo pasaste preparándote para las entrevistas de Google? ¿Todos los que se metieron en Facebook, Google, etc. realmente son tan buenos para resolver o entender cada algoritmo o problema clásico?

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).

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!

Pasé seis semanas preparándome. Google era el único lugar donde quería trabajar. Nunca había usado construcciones informáticas reales en mis 30 años de experiencia laboral.

Obtuve una pizarra y marcadores y pasé todos los días trabajando en los problemas de Cracking the Code Interview. Resolví los problemas usando plantillas de C ++, para obligarme a centrarme en los algoritmos y notar qué suposiciones estaba haciendo sobre los tipos de datos subyacentes.

Tenía dos semanas para prepararme para la entrevista telefónica. Después de eso, solicité un mes para prepararme para las entrevistas in situ.

Comprender el análisis de complejidad de tiempo / espacio. Conozca la complejidad temporal de las estructuras de datos básicas, especialmente las tablas hash. Aprenda a administrar el espacio en la pizarra. Piense en dónde la computadora repetirá el mismo trabajo dos veces, ya que es allí donde probablemente pueda optimizar.

Las entrevistas no son realmente muy difíciles. No entres en pánico.

ps me contrataron.

Recientemente me entrevisté para un puesto de Ingeniero de Software en Mountain View. Mi situación era similar a la suya en el sentido de que no he estado utilizando muchos algoritmos clásicos o programación durante un tiempo (he estado investigando principalmente durante los últimos 6 años).

Entonces, también preparé mucho (puede encontrar algunos detalles sobre mi preparación en mi respuesta a ¿Qué debo esperar en una entrevista de Ingeniero de Software en Google y cómo debo prepararme?) Y al final las cosas salieron bien.

No se preocupe si no puede resolver todos los problemas de inmediato. Siempre que tenga algunas ideas para tratar con cada problema, el entrevistador lo ayudará a reducir sus opciones. E, incluso si se queda atascado, lo más probable es que su entrevistador le dé una buena pista para ayudarlo a seguir adelante con el problema. Además, incluso si una o dos entrevistas no salen tan bien como cabría esperar, aún podría obtener una oferta de trabajo: la clave parece ser que uno o dos entrevistadores REALMENTE le gusten (incluso si algunos de los otros entrevistadores fueran No estoy impresionado contigo).

Ahora, con respecto a la preparación, le aconsejaría que practique la resolución de ejercicios tanto como sea posible. Intenta conseguir amigos que te ayuden con esto, las entrevistas simuladas son muy útiles (también puedes comprar entrevistas simuladas con entrevistadores “reales” en carreracup.com). Esto le dará una mejor idea de cómo serán las entrevistas reales (y también es más divertido tener a alguien que le haga las preguntas y pruebe sus respuestas que simplemente hacerlo solo :)). Otra cosa que considero muy importante es practicar en la pizarra o en el papel (no con su computadora). Finalmente, sería realmente útil si pudiera tener algunas entrevistas con otras compañías: esta sería una muy buena prueba para descubrir qué tan preparado está y también lo ayudará a estar más relajado durante sus entrevistas en Google.

Espero que esto ayude, ¡buena suerte con tus entrevistas!

More Interesting

¿Por qué solo las preguntas relacionadas con algoritmos se hacen principalmente en entrevistas a los grandes?

¿Por qué las empresas tecnológicas no realizan entrevistas de codificación en una computadora portátil o una PC?

Cómo prepararse para la ronda de entrevistas de Oracle OFSS

¿Qué tipo de preguntas se hacen en la entrevista para la admisión a AFMC Pune?

¿Cómo podemos encontrar el número de subsecuencias consecutivas en una matriz, con la propiedad de que la suma de las subsecuencias es menor que un número k?

¿Cuál es el mejor algoritmo para invertir la lista circular vinculada?

Una matriz int arr [10] = {}, la dirección de arr es 100, en una máquina de 32 bits, entonces & arr + 4 =? 116 o 260 u otros?

¿Qué es una subcadena?

¿Cómo puede uno prepararse para la entrevista de Amazon SDE 2 en 3 semanas para habilidades relacionadas con c ++?

Dada una matriz de 'n' enteros. ¿Encuentra los números 'k' de manera que la diferencia mínima de todos los pares posibles de números 'k' sea máxima (máxima entre otras diferencias mínimas para varias posibles selecciones de números k)?

¿Qué debo sacar de una entrevista si el entrevistador me hace preguntas de trivia en C ++ como, por ejemplo, constructores de copia, destructores virtuales, diferencia entre una referencia y un puntero?

Cómo destacar en una entrevista técnica cuando no soy el mejor

¿Cómo corrijo un error que cometió mi entrevistador en una entrevista telefónica con Google?

Constantemente me quedo atascado en las preguntas de la entrevista de programación técnica incapaz de progresar. ¿Hay alguna forma de practicar y mejorar?

Cómo completar esta tarea de programación