¿Cuáles son los mejores recursos (sitios web, libros, etc.) para preparar entrevistas con Microsoft, Amazon y Google como compañías de TI?

“Estructuras de datos y algoritmos” es el tema favorito de las empresas entrevistadas. Puede comenzar con la resolución de problemas en estructuras de datos y libros de algoritmos.

Los enlaces de los libros en Amazon están abajo:

1. Resolución de problemas en estructuras de datos y algoritmos utilizando C

2. Resolución de problemas en estructuras de datos y algoritmos usando C ++

3. Resolución de problemas en estructuras de datos y algoritmos utilizando Java

4. Resolución de problemas en estructuras de datos y algoritmos con C #

5. Resolución de problemas en estructuras de datos y algoritmos usando Python

“Resolución de problemas en estructuras de datos y algoritmos” es una serie de libros sobre el uso de estructuras de datos y algoritmos en la programación de computadoras. El libro es fácil de seguir y está escrito para el punto de vista de preparación de la entrevista . En varios libros, los ejemplos se resuelven en varios lenguajes como C, C ++, Java, C #, Python, VB, JavaScript y PHP.

Composición del libro
Este libro está diseñado para entrevistas, por lo que en el Capítulo 0 se proponen varios planes de preparación. Luego, en los capítulos 1, se explica una breve introducción del lenguaje de programación y el concepto de recursión. Se explican varios problemas basados ​​en recursividad y matriz.

Luego, en el próximo capítulo, analizaremos el análisis de complejidad. Luego analizaremos las técnicas de clasificación y búsqueda.

Luego estudiará las diversas estructuras de datos y sus algoritmos. Buscaremos en una lista vinculada, pila, cola, árboles, montón, tabla hash y gráficos.

Luego analizaremos el algoritmo de análisis, analizaremos los algoritmos de fuerza bruta, los algoritmos de codicia, los algoritmos de división y conquista, la programación dinámica y el retroceso.

Al final, analizaremos el diseño del sistema, que proporcionará un enfoque sistemático para resolver los problemas de diseño en una entrevista.

Tabla de contenido
Capítulo 0: Cómo usar este libro.
Capítulo 1: Introducción – Descripción general de la programación
Capítulo 2: Análisis de Algoritmos
Capítulo 3: Enfoque para resolver problemas de diseño de algoritmos
Capítulo 4: Tipo de datos abstractos
Capítulo 5: Búsqueda
Capítulo 6: Clasificación
Capítulo 7: Lista vinculada
Capítulo 8: Pila
Capítulo 9: Cola
Capítulo 10: Árbol
Capítulo 11: Cola prioritaria
Capítulo 12: Hash-Table
Capítulo 13: Gráficos
Capítulo 14: Algoritmos de cadena
Capítulo 15: Técnicas de diseño de algoritmos
Capítulo 16: Algoritmo de fuerza bruta
Capítulo 17: Algoritmo codicioso
Capítulo 18: Divide y vencerás
Capítulo 19: Programación dinámica
Capítulo 20: Retroceso
Capítulo 21: Teoría de la complejidad
Capítulo 22: Estrategia de entrevista
Capítulo 23: Diseño del sistema

Sugeriría comenzar a leer la entrevista Cracking the Code (las soluciones están principalmente en Java y algunas en C ++). Al hacer los ejercicios de codificación del libro, cubrirá la estructura de datos básica (matrices, cadenas, listas, pilas, colas, árboles y gráficos) y algoritmos (manipulación de bits, recursión y programación dinámica, clasificación y búsqueda, escalabilidad y límites de memoria) Necesitas saber.

Hay algunos buenos sitios donde puedes practicar y encontrar preguntas para la entrevista:

  • LeetCode
  • GeeksForGeeks
  • HackerRank
  • CareerCup
  • Puerta de cristal.

Mi favorito es LeetCode. Hay muchos ejercicios y también, si se suscribe, puede ver las preguntas de la entrevista de compañías específicas.

Cuando se sienta listo para postularse a trabajos de ingenieros de software, le recomendaría hacer algunas entrevistas simuladas. Echa un vistazo a las entrevistas simuladas. Los ingenieros con experiencia en empresas como Twitter / Google, etc., lo prepararán para la entrevista real. Posteriormente recibirá comentarios con detalles sobre lo que salió bien y qué necesita mejorar.

Hay muchos recursos como libros, sitios web que pueden ayudarlo a preparar su entrevista en código. En lugar de darle una lista de 100 elementos, me gustaría sugerir solo unos pocos recursos que vale la pena verificar cada uno de ellos, incluso en un breve cronograma.

Para los libros, recomendaría Introducción a los algoritmos y descifrar la entrevista de codificación. El primero le brinda una excelente introducción a todos los conocimientos básicos que necesita para una entrevista en código y más que eso. Esto último es bastante útil para comenzar a codificar preguntas en entrevistas.

Para los sitios web, le recomiendo que visite http://www.gainlo.co/ . Creamos este sitio web para permitir que las personas tengan entrevistas simuladas con entrevistadores experimentados de Google, Amazon, Microsoft, etc. y obtengan comentarios reales para mejorar. El blog http://blog.gainlo.co también tiene muchos consejos prácticos y trucos.

También los sitios web como glassdoor.com y leetcode.com también son muy interesantes donde puedes practicar con muchas preguntas interesantes para entrevistas (algunas son preguntas de entrevistas anteriores de diferentes compañías).

Me entrevisté con Google, Facebook, Microsoft, Amazon (y recibí ofertas de ellos) y durante los últimos cinco años me he sentado al otro lado de la mesa y estoy haciendo entrevistas. Actualmente, la mayoría de los bucles de entrevistas constan de cuatro partes:

  1. Entrevista de codificación: Ya sea en una pizarra o en una computadora real. Esto se ha convertido en un requisito previo para obtener una oferta. Si no puede codificar / resolver el problema (o tiene algunos errores graves en su código), es bastante difícil obtener una oferta. Buen recurso para prepararse para este tipo de entrevista: Coderust 2.0
  2. Entrevista de diseño del sistema: prueba sus habilidades de diseño y su capacidad para trabajar con servicios complejos y escalables. Su desempeño en estas entrevistas determina qué puesto y salario se le ofrecerá. Si tiene habilidades de diseño encomiables, obtendrá una oferta más alta. Un buen recurso para prepararse para esta entrevista: Grokking the System Design Interview
  3. Entrevista de diseño de OO: como diseñar un estacionamiento, un sistema de reserva aérea, etc.
  4. Entrevista cultural en forma . Durante esta entrevista, las empresas ven si un candidato sería un buen candidato para su cultura. El candidato no debe mostrar ninguna bandera roja.

Recientemente he realizado muchas entrevistas de diseño de sistemas (SDI) y me gusta codificar entrevistas a candidatos que no han pasado suficiente tiempo preparándose para SDI, en su mayoría tienen un mal desempeño. Esto se agrava cuando estás entrevistando a las principales empresas como Google, Facebook o Amazon. En estas empresas, si un candidato no se desempeña por encima del promedio, tiene una probabilidad limitada de obtener una oferta. Además, un buen desempeño en tales entrevistas siempre resulta en una mejor oferta (financieramente), ya que su desempeño se refleja en su capacidad para trabajar con sistemas complejos.

Además, a todas estas grandes empresas les gustan los candidatos que están familiarizados con los conceptos de sistemas distribuidos como Hashing consistente, Particionamiento de datos, Equilibrio de carga, Redundancia y Replicación, Teorema CAP, etc.

Algunos problemas de diseño de muestra son:

  • Diseño de un servicio de acortamiento de URL como TinyURL
  • Diseñando Instagram
  • Diseñando Twitter
  • Diseñando Youtube
  • Diseñando Facebook Messenger
  • Diseñando Dropbox
  • Diseño de sugerencia Typeahead
  • Diseño de la fuente de noticias de Facebook
  • Diseñando Yelp
  • Diseñando Uber

Espero que esto haya ayudado.

Suponiendo que sea una entrevista técnica, recomendaría estos dos sitios web: topcoder y Project Euler

Puedo enumerar algunos, de los cuales puede estar al tanto: descifrar la entrevista de codificación, programar entrevistas expuestas y CarrerCup.com