Aquí hay una respuesta dada por nuestro súper senior Sr. Rahul Gulati:
Google, Facebook y algunas otras compañías me contactaron, principalmente debido a mis logros en competencias de programación. Estuve entre los primeros 500 en cada uno de Google CodeJam (Ronda II), TopCoder Open (Ronda II) y Facebook HackerCup (Ronda III) en el año en que estas compañías me contactaron. Estas compañías llegan a candidatos potenciales para oportunidades de trabajo si les va bien en las competencias de programación organizadas por ellas. Me preparé mucho para estas entrevistas y te daré mi consejo sobre cómo puedes hacer lo mismo.
Literatura de programación Debería desarrollar una buena cantidad de experiencia en el lenguaje de programación que elija. Los lenguajes más utilizados son C / C ++ y Java, por lo que recomendaré literatura solo para estos. Para C / C ++, recomendaría C ++ Primer Plus y C ++ Primer (este último es un poco más avanzado). Para Java, recomendaría Java: la referencia completa.
- ¿Cuál debería ser el mapa de ruta para un estudiante de B.Tech CSE durante los 4 años de licenciatura?
- ¿Cuáles son las mejores universidades para la ingeniería informática en India?
- Si los extraterrestres encontraran una unidad flash, ¿podrían leer el contenido? Si es así, ¿qué tendrían que hacer para mostrar el contenido del archivo?
- Aunque India es rica en ingenieros, tiene la mayoría de los usuarios de Wikipedia, Facebook, Quora y Twitter, todavía ningún indio posee tales sitios sociales. ¿Por qué?
- ¿Cuál es el futuro de mainframe? ¿Cuánto tiempo estará allí esta tecnología?
Algoritmos y estructuras de datos Literatura y cursos Para programar entrevistas y programas competitivos, necesitaría tener una sólida comprensión de los diversos algoritmos y estructuras de datos comunes, paradigmas de diseño de algoritmos y la capacidad de analizar algoritmos. recomendar Introducción a los algoritmos. Este es un gran libro para teoría, ejercicios y problemas, y cubre la mayoría de las cosas que necesitará. Para los cursos, recomendaría lo siguiente: Introducción a los algoritmos Algoritmos: Parte de diseño y análisis IA Parte de algoritmos: Diseño y análisis II Algoritmos Parte IA Algoritmos Parte I Esto debería servir como una lista bastante exhaustiva de algoritmos y estructuras de datos que se utilizan comúnmente para resolver problemas de programación competitivos. Debe leer sobre estos, el código y usarlo como biblioteca para resolver sus problemas.
Literatura sobre resolución de problemas Además de tener conocimiento sobre varios algoritmos y estructuras de datos, también necesitaría desarrollar una capacidad de resolución de problemas realmente fuerte. Problemas como los que aparecen en las Olimpiadas realmente ayudan con eso. Algunos de los textos que recomendaría para esto son: El arte y el oficio de la resolución de problemas Cómo resolverlo Estrategias de resolución de problemas Un camino hacia la combinatoria para estudiantes universitarios
Jueces y concursos en línea Aquí hay una lista de algunos concursos en los que puede participar. Aprenderá resolviendo problemas nuevos, mirando el código de otros participantes y leyendo editoriales para aprender múltiples soluciones a estos problemas.
Google CodeJam: la competencia se realiza anualmente. Hay varias rondas (Calificación, Ronda 1, Ronda 2, Ronda 3 y Finales Mundiales) y los 25 mejores concursantes para la Ronda de Finales Mundiales se presentan en el sitio, y el ganador recibe un premio en metálico de 15,000 $. Generalmente se llega a los mejores finalistas para una posible oportunidad de trabajo. Los problemas que han aparecido antes están disponibles en el sitio web con soluciones y archivos de entrada y salida.
Facebook HackerCup – Otra competencia anual de programación mundial con múltiples rondas. El ganador recibe un premio en efectivo de 10,000 $. Al igual que con CodeJam, se llega a los mejores finalistas para una posible oportunidad de trabajo. Debería poder encontrar los problemas que aparecieron anteriormente en el sitio web.
ACM ICPC (International Collegiate Programming Contest): un concurso anual de programación para estudiantes universitarios. La participación es en equipos de tres. Hay múltiples rondas (en línea, rondas regionales en el sitio y finales mundiales). Las universidades de todo el mundo organizan competiciones en línea y regionales en el sitio, y los ganadores de estas avanzan a las Finales Mundiales. Los problemas anteriores están disponibles en el sitio web y son la mejor fuente de práctica para prepararse para esta competencia.
Codeforces: las rondas de Codeforces se llevan a cabo casi todas las semanas, y también se llevan a cabo muchas más competiciones. Puedes practicar para resolver problemas que han aparecido en rondas anteriores de Codeforces y otras competiciones.
TopCoder: los SRM de TopCoder se llevan a cabo casi todas las semanas. Y TopCoder Open se celebra una vez al año. También puedes practicar para resolver problemas anteriores en TopCoder Arena. En los SRM, hay dos divisiones; División I y División II. Empiezas compitiendo en la División II y, si lo haces bien, asciendes a la División I. Hay 3 problemas, cada uno en la División I y II, y así es como los clasificaría en orden de dificultad: Div. II Nivel I <Div II Nivel II ~ Div I Nivel I <Div II Nivel III ~ Div I Nivel II <Div I Nivel III. También hay una sección para tutoriales de programación competitiva que recomiendo encarecidamente. Los mejores finalistas generalmente son contactados por patrocinadores (Google, Facebook, etc.) para posibles oportunidades de trabajo. Incluso puedes usar sus foros para discutir los problemas que tienes atascados, o para conocer las competencias de programación que están sucediendo, y mucho más.
CodeChef: hay una competencia realmente desafiante de 10 días que ocurre una vez al mes. También hay dos concursos más cortos (de 2.5 a 3 horas de duración) que tienen lugar cada mes. También hay muchas otras competiciones que tienen lugar en esta plataforma que generalmente están organizadas por diferentes entidades.
Proyecto Euler: como dice el sitio web, una serie de problemas matemáticos / informáticos desafiantes. Los amantes de las matemáticas realmente disfrutarían resolviendo problemas en este sitio web.
HackerRank: hay muchas competencias y problemas de programación disponibles en este sitio web. Y hay muchos más dominios además de los algoritmos.
Concurso de resolución de problemas de Internet: esta es otra competencia anual de programación de equipos. Solo hay una ronda. Los problemas varían de muy fáciles a muy difíciles y no todos requieren las habilidades que generalmente se usan en las competencias de programación.
Textos y fuentes de la entrevista Para prepararse específicamente para la parte de la entrevista, recomendaría lo siguiente:
Descifrando la entrevista de codificación y los elementos de las entrevistas de programación: creo que estos son libros increíbles que contienen muchos problemas para codificar entrevistas, consejos sobre entrevistas culturales, cómo debería ser su currículum, resolución de problemas de pizarra y mucho más.
InterviewBit: un sitio web increíble cofundado por mi amigo Anshuman Singh (había seguido su consejo para prepararme para las competiciones de programación mientras estaba en la universidad, lo conocí en las competiciones ACM ICPC y también trabajamos en Facebook al mismo tiempo). Contiene una variedad de problemas que serían excelentes para su preparación. También han lanzado recientemente un curso de diseño de sistemas. Si lo hace realmente bien, lo contactarán y lo referirán a algunas de las principales empresas que existen y también lo ayudarán a prepararse para las entrevistas realizando simulacros.
Fuente: Rahul Gulati