¿Conocer solo las estructuras de datos básicos y los algoritmos no es suficiente para descifrar las entrevistas más técnicas en las grandes empresas?

¡No, no es suficiente! Me entrevisté en Microsoft, Facebook, Google y Amazon. Una cosa a tener en cuenta, las entrevistas técnicas no significan solo preguntas de codificación, sino que también incluyen preguntas de diseño. Primero, analicemos las preguntas de codificación que se hacen en estas grandes empresas. Aquí están mis observaciones sobre estas preguntas:

  1. Todas las preguntas implican algún truco que debes resolver primero. Por ejemplo, responda a esta pregunta ‘Escriba un iterador en orden de un árbol de búsqueda binario (BST)’. Conocer la estructura de datos (o algoritmo) por sí solo no es suficiente aquí. Como sabemos, podemos usar una pila para desarrollar la solución iterativa para el recorrido recursivo de BST, pero el truco es qué nodo debe empujarse en la pila y cómo / cuándo debemos hacer estallar un nodo.
  2. Encontrar una solución de extremo a extremo: conocer las estructuras de datos le permitirá descubrirlo, pero debe resolver un problema por completo, resolviendo todos los escenarios, condiciones finales, procesando entradas, etc.
  3. Decidir qué estructura (s) de datos se adapta mejor a su solución. Múltiples estructuras de datos y algoritmos pueden resolver un problema, decidir cuál será el mejor es crítico, por ejemplo, a veces optimizas para la memoria y a veces trabajas para optimizar el tiempo de ejecución general o ambos.

En segundo lugar, las preguntas de diseño evalúan sus habilidades de diseño; Todos los puntos anteriores se aplican también a los problemas de diseño. Además de eso, trabajas en dividir el sistema en componentes más pequeños, diseñando qué hará cada componente y cómo funcionarán entre sí los diferentes componentes, etc.

Encontré los siguientes sitios muy útiles para la preparación de entrevistas técnicas:

  1. Codificador
  2. LeetCode
  3. Grokking la entrevista de diseño del sistema

¿Tener un rifle es suficiente para convertirse en un tirador profesional?

Me gusta pensar en las estructuras de datos como herramientas, que nos ayudan a encontrar soluciones a los problemas en lugar de ser la solución en sí mismas.

Las empresas no buscan candidatos que puedan recitar cientos de estructuras de datos. En cambio, lo que buscan es experiencia en el uso de estas herramientas (estructuras de datos).

Claramente, la respuesta a su pregunta sería “No, el conocimiento de estructuras básicas de datos no es suficiente” . Debe resolver problemas desafiantes que implican el uso de,

  1. Estructuras de datos populares: listas, gráficos, árboles de búsqueda, mapas hash, etc.
  2. Algoritmos clásicos: la ruta más corta de Dijkstra, Max-Flow, Transformada rápida de Fourier, Árbol de expansión mínima, etc.
  3. Variantes: sus propias variantes basadas en estructuras de datos familiares y algoritmos clásicos. Idealmente, querrá sentirse cómodo usándolos.

Resolver estos problemas lo ayuda a desarrollar lo más importante para un desarrollador de software, que es cómo usar su conocimiento para llegar a la solución.

El diseño de algoritmos es un arte. Dominar el pincel es lo que te convierte en el artista.

Solo conocer los conceptos básicos de las estructuras y algoritmos de datos no es suficiente para descifrar entrevistas. Es necesario practicar varios problemas que se plantean en las entrevistas.

Los requisitos previos para descifrar la entrevista de codificación son:

  1. Cualquier lenguaje orientado a objetos.
  2. Estructuras de datos y algoritmos.
  3. Diseño de sistemas.

“Estructuras de datos y algoritmos” es el tema favorito de las empresas entrevistadas. A medida que aumenta su experiencia, más de 4 años luego el Diseño del sistema se vuelve importante.

Si buscas preparación para la entrevista. Puede comenzar con “ Resolución de problemas en estructuras de datos y algoritmos ” escrito en varios lenguajes como C, C ++, Java, C #, Python, etc. Estos libros son fáciles de seguir y están escritos para el punto de vista de la entrevista . Además, estos libros tienen el último capítulo sobre Diseño de sistemas , que también se requiere en las entrevistas.

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

6. Estructuras de datos y algoritmos en Go

Descargo de responsabilidad: soy autor de todos los libros anteriores.

Depende de tu “gran” y trabajo, realmente.

Pero en cuanto a mi “grande” será suficiente.

Además, “descifrar entrevistas” no se trata solo de algo y ds. También incluye pensamiento de ingeniería, creatividad y algunas habilidades blandas. A quién le importa si eres “UN TIBURÓN REAL EN EL LAGO” cuando apenas te comunicas con tus compañeros.

Me gustaría agregar un poco de ángulo a las otras respuestas (bastante correctas). Una vez fui entrevistado por un tipo que dijo que tenía tres preguntas en mente:

  1. ¿Puedes hacer el trabajo para el que te están reclutando? (Modificaría esta pregunta a ‘¿puedes sobresalir en el trabajo?’)
  2. ¿Puedo trabajar contigo?
  3. ¿Puedo seguir contigo?

Lo clavó por completo: estas son realmente las preguntas clave que los entrevistadores intentan responder al entrevistar a un candidato.

En otras palabras, incluso en una entrevista técnica, no solo tiene que parecer excelente en el trabajo, tiene que adaptarse a la personalidad de la organización y la persona que lo entrevista (y cuanto más cerca estará trabajando con esa persona) cuanto más importa la cercanía de ese ajuste).

PD: En aras de la exhaustividad, probablemente debería agregar mi propio pensamiento de que las preguntas 2 y 3 podrían combinarse y la tercera se convertiría en ‘¿Puedes trabajar bien en el equipo?’.

No, no es suficiente con diferencia: grandes empresas o pequeñas empresas. La expectativa de referencia es que conozca los conceptos básicos. Sin embargo, se evalúa la probabilidad de que realmente pueda hacer cosas.

La pantalla de codificación es principalmente un filtro mecánico para eliminar a los desarrolladores “experimentados” que nunca han tocado un teclado. Lo que lo hará notar son cosas como proyectos importantes en Github, respuestas publicadas en Stack Overflow, proyectos que puede traer y demostrar en la entrevista.

Respuesta corta: tal vez.

Realmente importa lo que quieres decir con ‘gran empresa’. Trabajo en una empresa muy grande, pero nuestros estándares de entrevista no son tan estrictos como los de Google y Google tiene aproximadamente una quinta parte de nuestros empleados totales.

More Interesting

Dada una matriz de n elementos ordenados por el valor absoluto, ¿cómo encuentra dos elementos a + b que se suman a k {1, 3, -4, 6, -8, 12} K = 4 O (n)?

Por lo general, no apruebo las entrevistas en la pizarra, ya que no tengo memoria enciclopédica / diccionario del marco .net. ¿Cómo puedo tener más éxito durante la parte técnica del proceso de la entrevista?

¿Dónde debo practicar para estructuras de datos y algoritmos? ¿Debería preferir GeeksforGeeks o el libro Coding Interview Questions de Narasimha Karumanchi?

¿Puedes sintaxis de Google durante una entrevista telefónica de codificación?

¿Para qué sirve el algoritmo: "Dada una gran cantidad de matrices, imprima una lista de cada par de matrices y el tamaño de su intersección"?

¿Cuál es la respuesta a la pregunta de la entrevista de Google: (use Python) implementar un mapa, que se derrama en el disco cuando excede el montón o un límite especificado?

¿Cuánto cuestan las preguntas formuladas en la entrevista relacionadas con el perfil del trabajo? ¿Preguntas sobre estructuras algorítmicas y de datos especialmente?

¿Qué sitio de codificación competitivo tiene la mejor oportunidad de obtener una entrevista para un puesto de Ingeniería de Software?

Si soy ecológico en TopCoder, ¿puedo pasar entrevistas a las principales empresas tecnológicas? ¿La mayoría de las personas que aprueban las entrevistas tienen la capacidad de salir bien en las competencias de TopCoder? Si me fuera mejor en los concursos de TopCoder, ¿se transferirían las habilidades a las entrevistas?

Sigo fallando las entrevistas de programación para pasantías de ingeniería de software. ¿Qué tengo que hacer?

¿Por qué las compañías de software, durante las entrevistas, se preocupan si los candidatos conocen la sintaxis exacta del código?

¿Cómo son las entrevistas de ingeniería de software de Google Hyderabad?

¿Qué preguntas se hacen en las entrevistas de pasantías de diseño UX?

Los entrevistadores me dicen que mis habilidades de programación en C ++ son buenas, pero no lo suficientemente buenas. ¿Qué métricas / herramientas usan los entrevistadores al evaluar el desempeño?

Cómo calcular de manera óptima la carga máxima en cada paso de tiempo, dada una lista de procesos y cargas asociadas