Como soy alguien que recientemente participó en el proceso de entrevistas en el campus, considero que soy capaz de responder esta pregunta.
Primero dividamos todo C / C ++ en cuatro partes principales:
- C: esto tendrá todo lo que es común entre C y C ++. Esto incluiría cosas como estructuras, punteros, matrices, precedencia de operadores, puntos de secuencia y declaraciones complicadas. El método apropiado para estudiar esta sección es estudiar Dennis Ritchie y Brian Kernighan’s The C Programming Language de principio a fin. Puede referirse solo a la parte subrayada / resaltada. Alternativamente, podrías pasar por geeksforgeeks. Esto tomará alrededor de 4 días.
- Elementos internos de C / C ++: esto incluiría procedimientos de compilación (compilación adecuada, vinculación, archivos de objetos, preprocesamiento), endian grande / pequeño, archivos de objetos, llamadas a funciones en el nivel de ensamblaje y otras cosas de bajo nivel. Puede consultar comp.lang.c Preguntas frecuentes o el sitio web de GCC para esto. La página del preprocesador C en Stanford es un buen recurso. Esto tomará alrededor de 2 días.
- C ++: incluye conceptos de OOPS como herencia, polimorfismo, sobrecarga de operadores, herencia múltiple, palabras clave como amigo, volátil. Para esto, recomendaría pasar por los capítulos relevantes del texto C ++ de Bruce Eckel, Volumen 1. También puede considerar leer el texto de Herbert Schildt, pero eso es algo genérico y menos detallado. Esta es la parte más importante, y las preguntas se hacen principalmente en esta sección; funciones virtuales / mecanismo virtual es una pregunta frecuente. Esto tomará alrededor de 4-5 días.
- C ++ STL: como usted afirma que ha estado programando en C ++, supongo que se siente cómodo con STL. Para mejorar su conocimiento de STL, puede consultar C Programación.com o cppreference.com. Recuerde que ciertas compañías pueden no preferir candidatos que usan STL para preguntas en papel y lápiz, pero otras como Amazon podrían preferir eso. Considere aprender mapa, conjunto, vector, lista, par, pila, cola, algoritmo. Además de la API STL, sería mejor si tiene conocimiento de las implementaciones internas de vectores y mapas (por ejemplo, el mapa se implementa utilizando Red Black Trees); es posible que se le pregunte cuáles son las complejidades de estas funciones STL y cómo implementarlas en papel. Las complejidades para las funciones STL están disponibles en cppreference. Si está interesado en practicar algunos programas STL, puede resolver algunos problemas de LeetCode Online Judge. Esto tomará alrededor de 2-3 días.
- Varios: como las diferencias entre C y C ++ y C ++ / Java. Estos se pueden encontrar en GeeksforGeeks en la sección C / C ++. Esto será alrededor de un día de trabajo.
Temas que debes hacer primero:
- Mecanismo virtual y funciones virtuales.
- Sobrecarga del operador
- Implementación manual de funciones STL
- volátil, externo, estático, mutable, clases de almacenamiento en C
- Cálculo del tamaño de la estructura; estructura vs unión
Eso sería suficiente para una revisión de 14 días.
- ¿Cuándo puedes calificarte 8/10 en lenguaje C?
- ¿Qué son las preventas técnicas y cuál sería su proceso de entrevista de selección? ¿Qué tipo de habilidades debe tener un candidato para este tipo de trabajo?
- ¿Cómo debo prepararme para la entrevista de Morgan Stanley en Java?
- Cómo pensar en voz alta durante la entrevista técnica
- ¿Cómo y cuándo implementas Comparator en Java?