¿Cómo prepararse para las rondas de entrevistas técnicas y de codificación?

Comenzaré dando una breve introducción sobre mí.

Estoy cursando mi B. Tech en Ingeniería Informática de NIET, Greater Noida y soy un estudiante de tercer año. Actualmente soy pasante en SAPIO ANALYTIC como pasante asociado de base de datos.  

Comencé con la programación competitiva en 2-1 (segundo año, primer semestre). Así que tenía alrededor de 1,5 años de experiencia en programación competitiva mientras realizaba las pruebas de ubicación. Tener una sólida formación en programación competitiva realmente te salva el trasero mientras otros siguen leyendo GeeksforGeeks para prepararse.

¿Cómo descifrar las entrevistas y conseguir un trabajo decente?

Por lo tanto, las organizaciones llegarán pronto a muchas universidades y realizarán sus pruebas de preselección. Ahora, voy a estar hablando muy corto y al punto. Cada punto es importante.

Conjunto de habilidades básicas (BSS):  

  1. Rápida implementación y depuración (practique preguntas sobre codeforces, hackerrank, participe en concursos)
  2. Coincidencia de strings (importante, KMP, algoritmo Z, etc.)
  3. Búsqueda binaria, clasificación, STL (conjuntos, mapas, conjunto/mapa desordenado, vector, clasificación): muy, muy útil
  4. Estructuras de datos: (Listas enlazadas, pilas, colas, BIT útiles, Árbol de segmentos – solicitado en Google)
  5. Programación Dinámica: Muy importante (problemas de nivel medio, preguntan todas las empresas)
  6. Árboles binarios y BST: ¡Muy importante! (Todas las empresas preguntan esto)
  7. Preguntas DFS/BFS sobre gráficos (rara vez se preguntan Dijsktra y flujos)
  8. DP sobre árboles (sí, un tema importante)
  9. Greedy, Backtracking: (Importante, puede ser complicado)
  10. Conceptos matemáticos como Prime Sieve: no tan importantes
  11. Bitmask DP: A veces se le pregunta en las entrevistas, cúbralo más tarde.

Creo que esto es suficiente para superar la mayoría de las pruebas de reclutamiento. Aunque siempre hay muchos otros temas que se pueden cubrir, sugiero que no se sienta abrumado y se concentre en estos primero. Una vez que esté listo con estos conceptos básicos, debe pasar a estudiar otras estructuras de datos y algoritmos. Saber más y en detalle siempre te hará más interesante y sorprendente.

Muchos problemas de reclutamiento se basan en el uso de conjuntos, mapas. Haz muchos problemas de práctica basados ​​en ellos. Por ejemplo: ver esto, y la solución.

Las personas que no hacen CP deben hacer lo siguiente inmediatamente:

  1. Necesidad de mejorar la implementación, las habilidades de depuración.
  2. Aprenda el conjunto básico de estructuras de datos y algoritmos como se mencionó anteriormente.
  3. Comience por resolver los 37 problemas en GeeksforGeeks en la categoría de array.
  4. Pase a DP en GeeksforGeeks.
  5. Para conjuntos, mapas, creo que los problemas en CodeForces como mencioné anteriormente serán mejores.
  6. Cubre otros temas como greedy, DFS/BFS de GeeksForGeeks.
  7. Lista enlazada, árboles binarios y sus recorridos. (¡Importante!)

Esto debería tomar alrededor de 2 semanas. No creo que las personas que hacen CP de manera constante enfrenten la necesidad de hacer listas enlazadas, pilas, etc. de GeeksforGeeks. Pero es bueno si le das una lectura rápida.

¿Qué sigue?

Ahora comience con la parte de la entrevista y resuelva los problemas allí para que se familiarice con veredictos como WA, AC, etc. y también cómo responder en caso de TLE o WA. Esto mejorará sus habilidades de implementación y depuración. Esto claramente lo ayudará a comprender los diversos conceptos como DP, árboles, etc.

También debe participar en los desafíos en curso en sitios como CodeChef, CodeForces, Hackerrank, etc. Una vez que esté estable en azul en CF alrededor de 1700, puede pasar fácilmente las pruebas de reclutamiento. Luego, todo lo que tiene que hacer es repasar sus habilidades de explicación para que también pueda despejar las rondas de entrevistas.

Nota: La velocidad es importante. Muchas veces las personas fallan por 10-15 minutos en implementar el algoritmo correctamente. Esto realmente te apagará. ¡Así que sigue practicando todos los días!

Consejos para las pruebas de reclutamiento:

  1. Sé rápido. No se quede esperando a encontrar la solución.
  2. Si está atascado en un problema, continúe con el siguiente. Primero resuelve todas las que sean fáciles.
  3. Al final, SIEMPRE envíe la peor solución de fuerza bruta sin importar la complejidad. ¡SÍ! Los casos de prueba son muchas veces débiles y obtienes una puntuación bastante alta.
  4. Debe estar familiarizado con las funciones incorporadas de Python que involucran combinatoria, permutaciones y funcionalidades de strings también. Puede resultar muy beneficioso 😉
  5. Este consejo es más una experiencia personal. En una de las pruebas, solo obtuve una puntuación de 25. Pronto me di cuenta de que las condiciones del bucle for no eran ciertas y simplemente estaba imprimiendo 0. Cuando lo corregí, obtuve una puntuación de 75. ¡Sí! Básicamente, tenía que ver que si obtenía un WA en algún caso de prueba, necesitaba imprimir 0 allí. Finalmente, usé la búsqueda binaria en los valores de las variables (tamaño de la array, primer elemento de la array) para identificar esos casos de prueba y simplemente imprimí 0. Básicamente, lo que hice fue usar un ciclo while infinito con alguna condición como 100<n y n<500 para que obtenga el veredicto TLE, y pueda descifrar esos casos de prueba en los que estaba obteniendo WA.

Consejos para las entrevistas:

  1. Se humilde. No des la más mínima vibra de exceso de confianza o arrogancia.
  2. No rendirse nunca. Si el problema planteado parece difícil a primera vista, no pierda la confianza. Vea lo que se da, lo que tiene que encontrar, e intente hacerlo para casos de prueba pequeños. Entonces tal vez encuentres un patrón.
  3. Habla como piensas. No se limite a seguir garabateando en el papel. Hágale saber al entrevistador cómo está abordando el problema.
  4. Si el problema parece difícil, dé la solución de fuerza bruta y su complejidad. Luego intente optimizarlo, tal vez usando programación dinámica o alguna solución codiciosa.

No creas que no tienes tiempo 😀

¡Empieza a hacerlo ya! Siéntase libre de escribir sus consultas, siempre estoy ahí para ayudar 🙂

Publicación traducida automáticamente

Artículo escrito por imprjgupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *