¿Cuáles son los algoritmos populares que se preguntan en las entrevistas tecnológicas?

Si la expectativa es ver una enciclopedia de algoritmos o técnicas enumeradas como respuestas aquí, probablemente te decepcionará. Hay realmente infinitas posibilidades de preguntas en entrevistas tecnológicas en empresas de todo el mundo. Una gran cantidad de nuevas preguntas se inventan todos los días. No hay nada como una ‘lista de preguntas’ que, cuando se filtró aquí, está garantizado para ayudarlo a as mediante entrevistas.

La mejor apuesta para descifrar entrevistas tecnológicas sería ‘intentar y comprender’ los fundamentos de algoritmos, estructuras de datos y cálculos de complejidad, e intentar y ‘aplicar’ este conocimiento a problemas en entrevistas tecnológicas. También traduzca esto en código y pruébelo. Definitivamente familiarizarse con las técnicas básicas (dividir y conquistar, programación dinámica, algos gráficos, etc.) y las estructuras de datos fundamentales (árboles de búsqueda, listas, apilar, gráficos, etc.). Intenta resolver tantos problemas como puedas. ¡La mejor de las suertes!

(Es posible que no sugiera ningún sitio web en particular / o las preguntas más difíciles para prepararse para la preparación de la entrevista, sin embargo, la mayoría de las preguntas incluyen el truco, la presencia mental y qué tan bien comprende los conceptos más necesarios de la informática, y el más importante es : Algoritmos y estructuras de datos. Las preguntas pueden ser diferentes, pero todas utilizan los conceptos básicos de DS / Algo para resolverlo)

(Ejemplo: puede usar el siguiente enfoque, para un plan de dos meses, alrededor de 250 horas)

Debe seguir un enfoque muy organizado y disciplinado para prepararse para el trabajo de ingeniería de software en Facebook / Google / Amazon / Microsoft, etc.

En realidad, todas estas empresas, por ejemplo, MS, Google, Amazon, Facebook, Apple, siguen un enfoque en el que miden el proceso de pensamiento de un candidato.

Y usan diferentes medios para evaluar eso, pero sí, la mayoría de ellos usa Algoritmos / Estructuras de datos / Preguntas abiertas (si ha solicitado un trabajo de ingeniería de software) como uno de los enfoques para evaluar el talento. base para desarrollar las tecnologías).

Para estar acostumbrado a algos / estructura de datos / codificación, debe haber entendido / practicado el mínimo, por ejemplo:

(Paso 1): debe tener una comprensión práctica de los algoritmos (por ejemplo, cuándo usar BackTracking, cuándo usar Divide and Conquer, ¿por qué se requiere doble hashing ?, ¿dónde se puede aplicar el concepto de fuerza bruta?) ( 50 horas).

(Paso-2): debe tener una comprensión práctica de las estructuras de datos, por ejemplo (casos de uso prácticos relacionados con: cuándo usar un búfer circular, o cuándo usar una lista adyacente o la combinación de ambos o algo más para resolver el problema).
(50 horas)

(Paso 3): debe practicar varios problemas de codificación para implementar las cosas que aprenden del Paso 1 y del Paso 2 (puede hacer lo siguiente para elegir cualquier lenguaje de codificación para elegir el suyo (C, C ++ o Java o Python o PHP o cualquier otro).
(50 horas)

(Paso 4): Resolver el problema no significa solo resolverlo, sino comprender la mejor manera de resolverlo, por ejemplo, el problema técnico dado puede usar varias formas para llegar a una solución, y es posible que desee utilizar la solución óptima. . (Cómo se conecta la solución dada con los recursos informáticos / de memoria, por ejemplo, Memoria / Potencia de procesamiento)
(50 horas)

El más importante.

Sin embargo, aparte de la programación, es posible que deba comprender que el concepto principal para la entrevista es mantener la entrevista activa y esto requiere algunas acciones de su parte, como las siguientes:

Necesitas hablar.

Necesitas explicarlo.

Necesitas discutirlo.

Necesitas expresar tus puntos de vista.

Debe comprender claramente las preguntas que se le hacen.

Debe comprender la expresión y la mentalidad del entrevistador para comprender esas preguntas.

Es posible que deba hacer las preguntas adecuadas para comprender la pregunta o cualquier otro elemento de discusión. (50 horas)

Y también :

Prepárese: “Cuénteme sobre usted mismo”, “Sus habilidades relacionadas con el interés positivo / negativo adicional”, Conceptos básicos para los conceptos informáticos más necesarios o cualquier cosa que haya presentado en su “CV / Currículum”.
(10 horas)

Lo anterior es solo un plan de muestra, puede personalizar la forma que desee (por ejemplo, de 50 a 10 horas o algo más). Haga clic en Amazon para encontrar los mejores libros que pueda necesitar (por ejemplo, algoritmos de Cormen)

(Aquí Google no significa Google, significa cualquier compañía que sea muy creativa para presentar los productos relacionados con la informática).

(Suponiendo que pasas 4 horas todos los días)

Los problemas gráficos y los algoritmos parecen ser populares, creo que en gran parte debido a las publicaciones de blog de Yegge sobre “cómo ser contratado por Google”, que dice que debe aprenderlos.

Y realmente, es importante comprenderlos, pero en general para que sepa que existen y puede reconocer cuándo usarlos, pero en realidad no se usan tanto como algunos puristas creen (aunque podría ser que lo sean). usado con menos frecuencia de lo que debería ser, también).

Por razones que deberían ser obvias, “computar” tiene menos que ver con la computación real que con mover grandes cantidades de datos rápidamente, y muchos algoritmos simplemente no son necesarios para eso desde el punto de vista de * un desarrollador de aplicaciones *.

En lugar de enfocarse en algoritmos específicos, enfóquese en las técnicas algorítmicas como dividir y conquistar, enfoque codicioso, programación dinámica y ramificación y enlace … También familiarícese con qué técnica enfocarse para tipos de problemas específicos, análisis de algoritmos usando relaciones de recurrencia etc., Esto debe ser más que suficiente para descifrar cualquier pregunta basada en algoritmos en las entrevistas técnicas …

En su mayoría, se solicitan DS, particularmente listas enlazadas y árboles.

Listas vinculadas Inversión, detección de ciclos, etc. No sé por qué, pero me han preguntado más que ninguna otra.