¿Qué debo practicar para tener éxito en las entrevistas algorítmicas de empresas como Google, Facebook, Amazon, etc.?

Un breve resumen del proceso de preparación:

  1. Aprenda los fundamentos de CS importantes para la ingeniería de software
  2. Resolver muchos problemas de práctica para algoritmos y estructuras de datos.
  3. Haz algunas preguntas de diseño del sistema
  4. Practica entrevistas reales
  5. Que alguien experimentado te dé retroalimentación
    Y solo entonces:
  6. Comience a solicitar trabajo

Como estamos hablando de ingeniería de software, estas compañías no solo le darán problemas algorítmicos, sino que también recibirá preguntas sobre el diseño del sistema.

Tenga en cuenta que el conocimiento de algoritmos y otros fundamentos de CS no solo es necesario para la entrevista, sino también para su trabajo diario, especialmente en las empresas que mencionó. Así que no solo se prepare para la entrevista, prepárese para el trabajo.

¿Cómo haces eso?

(parte de lo que sigue es lo que escribí en respuesta a las entrevistas de programación: ¿Cuáles son los principales sitios para la preparación de entrevistas de ingenieros de software?)

  • Aprenda los fundamentos de CS para la ingeniería de software: cuando se trata de trabajar como ingeniero de software en los “cuatro grandes” y otras grandes compañías tecnológicas, es fundamental comprender los fundamentos de la informática.

    Estas empresas crean productos que son utilizados por miles de millones de personas. No basta con que su software “simplemente funcione”, debe estar bien diseñado. Tiene que ser escalable, tanto horizontal como verticalmente. Debe estar escrito en un código limpio, fácil de mantener y documentado.

    Esto no es algo que pueda lograr al mirar un par de tutoriales en YouTube. Toda persona que trabaje en esos productos debe comprender cómo funciona bajo el capó y cómo todo se combina en un todo.

    Si no comprende algunos de los conceptos clave de ingeniería de software, será una señal de alerta. Dijiste en los detalles que de alguna manera olvidaste todos esos árboles y mapas hash … bueno, eso es un problema si quieres trabajar en las compañías mencionadas. Pero no se preocupe, puede tomar cursos gratuitos sobre temas importantes de ingeniería de software. El curso abierto del MIT es un buen lugar para comenzar. Algunos de sus cursos que pueden ser útiles:

    • Introducción a la informática y programación
    • Estructura e interpretación de programas de computadora
    • Introducción a los algoritmos
    • Diseño y Análisis de Algoritmos
    • Ingeniería de sistemas informáticos

Teach Yourself Computer Science tiene una gran lista de recursos para cualquier ingeniero de software que busque profundizar su conocimiento sobre temas relevantes de informática.

  • Practique problemas de algoritmos y estructuras de datos: las empresas usan estos problemas para evaluar sus habilidades de resolución de problemas, ver cómo piensa y evaluar su conocimiento de algoritmos (duh). Una vez que comprenda los fundamentos (paso 1), todo se reduce a mucha práctica.

    Hay muchos sitios web excelentes donde puedes practicar, como Codechef, SPOJ y Project Euler. Asegúrese de aprender las técnicas para resolver estos problemas: la comunidad de programación competitiva puede ayudarlo con eso.

    Aprenda cómo a) Identificar el tipo de problema con el que está lidiando b) construir rápidamente una solución de fuerza bruta c) optimizarla yd) analizar la complejidad de su solución (Guía para principiantes de notación Big-O). Además, aprenda a hacer preguntas significativas y piense en voz alta mientras resuelve problemas, ya que puede necesitarlo en algunas entrevistas.

    Puede comenzar practicando algunos problemas generales, pero con el tiempo debe cambiar a problemas específicos de la empresa que está solicitando. Puede encontrar problemas específicos de la empresa para practicar en Geeks For Geeks. Las compañías que mencionó en su pregunta también se enumeran allí:
    – Preguntas de la entrevista de Google
    – Preguntas de la entrevista de Facebook
    – Preguntas de la entrevista de Amazon

  • Practique problemas de diseño del sistema: esto es lo que distingue a los ingenieros experimentados y a los no tan experimentados. La clave aquí es comprender los conceptos y las ideas principales del diseño del sistema, y ​​luego podrá abordar casi cualquier problema que un entrevistador pueda darle. Tenga en cuenta que estas preguntas rara vez tienen una respuesta correcta u óptima. Sitio web superior para aprender y practicar:
    • Grokking la entrevista de diseño del sistema
    • Sistema de cebado de diseño
  • Practique entrevistas y obtenga retroalimentación: una vez que tenga lo básico, es hora de practicar la entrevista real. Siempre puede pedirle a su madre o un amigo que actúe como entrevistador mientras practica, pero es mucho mejor si puede encontrar un ingeniero experimentado que pueda evaluarlo.

    Deje que su “compañero” haga algunas preguntas y actúe como entrevistador. Trate de mantenerlo realista con limitaciones de tiempo e intente usar los mismos medios o medios similares a los que usará en la entrevista real (pizarra, papel, IDE, depende de la compañía).

    Para tener una idea de cómo son las entrevistas en compañías específicas, puede consultar Glassdoor donde las personas comparten sus experiencias de entrevistas. Las grandes compañías tecnológicas incluyen:
    – Experiencias de entrevistas en Google
    – Experiencias de entrevistas en Facebook
    – Experiencias de entrevistas en Amazon

    Después de cada entrevista de práctica, pídale a su compañero que le brinde comentarios sobre cómo lo hizo. Esto será fácil si él o ella es un ingeniero experimentado, pero a menudo no tendrás acceso a ellos mientras practicas.

    Por eso hemos construido Refdash – una plataforma donde puede hacer entrevistas gratuitas con ingenieros superiores de compañías como Google, Palantir y Facebook, solo por nombrar algunas. Le proporcionarán comentarios verbales y escritos detallados que puede utilizar para trabajar en sus habilidades y aumentar sus posibilidades de ser contratado. Si lo haces bien, incluso pueden ayudarte a saltarte algunas rondas de entrevistas en algunas grandes compañías tecnológicas.

Para recapitular, una vez que actualice su memoria sobre los fundamentos (o los aprenda por primera vez), comience a hacer muchos problemas de práctica. Una vez que empiece a sentirse cómodo con ellos, practique entrevistas y haga que alguien le dé su opinión.

Dependiendo de los comentarios, aprenda / practique un poco más o, si se siente listo, comience a solicitar trabajo. ¡Buena suerte con la búsqueda de empleo!

El hecho es que en Google, Facebook, las entrevistas de Amazon las personas tienden a hacerle una combinación de preguntas algorítmicas y de diseño del sistema . Con menos frecuencia obtendría algo más.

Basado en eso, creo que es absolutamente crucial ser bueno para resolverlos adecuadamente. Y como alguien más ya mencionó, estas compañías solo contratan a los mejores talentos, por lo que debe comprometerse y hacer la mejor preparación posible . De lo contrario, tal vez no mereces un lugar allí.

Si ya es bueno con algoritmos, estructuras de datos, arquitectura de sistemas, entonces no necesita más que solo mirar cómo son las entrevistas reales, tal vez intente hacer algunas ejecuciones en seco con preguntas reales dentro de un límite de tiempo.

Sin embargo, si, como usted dice, sus habilidades en algoritmos y estructuras de datos están oxidadas, entonces necesita trabajar duro si desea obtener un trabajo superior. No hay otra manera a menos que tengas mucha suerte de alguna manera.

Dicho esto, creo que es extremadamente importante actualizar sus conocimientos teóricos . Y la gente en este hilo ya citó muchos sitios y libros que lo ayudarían a hacerlo.

Agregaré solo un recurso más que comparto con todos los que me hagan una pregunta similar. TopCoder no se trata solo de resolver problemas, también tienen tutoriales maravillosos, que cubren la mayoría de los temas importantes sobre algoritmos. En HiredInTech hemos reunido una lista de temas algorítmicos cubiertos principalmente por los tutoriales de TopCoder. Aquí está la página: http://www.hiredintech.com/learn… .

Ahora, la teoría es necesaria, pero no es suficiente para pasar una entrevista técnica. ¿Porqué es eso? Primero que nada porque estas entrevistas requieren que escribas código. ¿Cómo se ve una entrevista típica de Google? Digamos que le dan una pregunta algorítmica. Esperemos que diseñe una solución, muestre su corrección, analice su complejidad y parezca que esta es una solución lo suficientemente buena. Aquí ha utilizado su conocimiento teórico y su capacidad de utilizar este conocimiento para resolver problemas reales. Luego viene la parte donde implementa todo eso. Y todo esto debería suceder en 30-40 minutos.

Para borrar la parte de codificación, debe practicar convertir rápidamente sus soluciones algorítmicas en programas de trabajo bien estructurados. Y para empeorar las cosas, esto generalmente ocurre en una pizarra. O durante entrevistas telefónicas, en un documento compartido.

Es por eso que necesitas practicar escribir código y resolver muchos problemas. Una vez que tenga confianza en su conocimiento de algún algoritmo o una estructura de datos, comience a resolver problemas que requieren el uso de este conocimiento. Te sorprenderá la cantidad de habilidad que necesitas adquirir antes de lograr producir rápidamente programas de trabajo escritos con buen estilo.

Hay una cosa más. El simple hecho de conocer los algoritmos no significa que sepa cómo aplicarlos a los problemas. Las preguntas en las entrevistas tecnológicas no suelen pedirle directamente que haga un DFS de un gráfico. A veces pueden ser así, pero la declaración oculta la intención real.

Con todo esto en mente, creo que no puedes escapar de resolver problemas. No importa si haces eso en TopCoder, Codechef, Codeforces o algo más. Es posible que encuentre problemas en un sitio web como GeeksForGeeks y no use un calificador en línea, sino que los resuelva localmente. Lo importante es practicar. Y por cierto, TopCoder tiene soluciones para todos los problemas que contiene, además de que estos problemas están etiquetados por el tipo de enfoque algorítmico que requieren en sus soluciones. Para hacerlo aún mejor, tienen dificultades, por lo que los problemas de la División 2 son muy apropiados para la preparación de entrevistas para una empresa como Google o Facebook.

Un pensamiento final … Incluso si eres un profesional en resolver todo tipo de problemas, puedes terminar siendo rechazado. Una de las posibles razones es la mala suerte, pero también hay algo más. Necesita construir algo así como una estrategia para realizar la entrevista. Por ejemplo:

  • ¿Qué preguntas hago cuando escucho el enunciado del problema?
  • ¿Qué hago si no puedo resolver el problema rápidamente? ¿Cómo actúo?
  • ¿Cómo debo probar mis soluciones?

Esto es algo que también necesita pasar tiempo practicando. Una de las mejores maneras de hacerlo es haciendo entrevistas simuladas o yendo a entrevistas con otras compañías, solo para ganar experiencia.

¡Mucha suerte y feliz practicando! 🙂

Amigo, lo siento mucho, voy a comenzar esto con una queja. No se trata de ti sino de la opinión general que se ha creado.

Sitios como Topcoder, SPOJ, CodeChef no son la única forma de conseguir un buen trabajo en una buena compañía. La mayoría de la multitud en estos sitios web practica problemas por diversión y no para conseguir trabajo. Pueden ayudarlo a conseguir trabajo, pero no debe decepcionarse si no se desempeña bien en ellos o si no tiene suficiente tiempo con ellos. Los problemas de programación son a menudo más difíciles que las preguntas de la entrevista.

Ahora a la respuesta real, lo que necesita hacer es esto:

  1. Revise las videoconferencias MIT-OCW sobre Introducción a los algoritmos de Lieserson y Demaine. Servirán como una buena revisión. Aquí: Introducción a los algoritmos (SMA 5503)
  2. Pase a leer la entrevista de Cracking the Coding (Entrevista de Cracking the Coding). Esto te ayudará a resolver los problemas. No solo leas el libro; Resuelva las preguntas, intente resolverlas, codifíquelas y luego consulte las soluciones para ver qué tan acertado tenía
  3. Estás trabajando como profesional en la industria. Optimiza las cosas que estás escribiendo. Vea si puede llegar a algo más rápido, calcule complejidades para cada cosa que está escribiendo. Vea si puede encontrar optimizaciones para cualquier código que esté escribiendo. Vea lo que sucederá si aumenta el tamaño de la entrada: ¿puede usar gráficos en su lugar o programación dinámica? ¿Qué puede hacer con los datos que tiene? Todo esto es análisis y cosas que debes hacer en tu cabeza. Al igual que ahora, estoy trabajando en un esquema de estrella y estaba tratando de descubrir cómo esta forma de datos es mejor sobre el modelo relacional común para las consultas que estoy obteniendo. ¿Qué va a ser más rápido? ¿Puedo hacer esto mejor? ¿Cuál es la complejidad en ambos casos? ¿Cuál es la probabilidad de que una consulta ocurra sobre todas las demás consultas? ¿Qué estructuras de datos serían mejores? Por supuesto, puede hacer tales cosas solo si ha hecho las dos primeras que se dan arriba.
  4. Intenta escribir cosas básicas. Los siguientes son algunos algoritmos que debería poder codificar cómodamente de principio a fin sin hacer referencia a nada:
    • Amplitud primera búsqueda / profundidad primera búsqueda
    • Enfoque de arriba hacia abajo para escribir un problema dando su ecuación de recurrencia: para algunas cosas sería posible, para algunas no lo será, solo busque en Internet las ecuaciones de recurrencia básicas que puede cambiar de arriba hacia abajo.
  5. ¡Todo lo mejor! 🙂

Empresas como Google, Facebook, Amazon, etc. son muy críticas con los candidatos, ya que hay miles de solicitantes para cada puesto. Por lo tanto, es necesario estar listo para la entrevista. He escrito una respuesta para una pregunta similar:
¿Cómo debo prepararme para mi entrevista en Google si me queda 1 mes y solicito un puesto de ingeniero de software?

Además de revisar lo básico y resolver algunos problemas

HackerRank, Project Euler, etc. son muy buenos recursos para practicar el manejo de problemas difíciles. No es más que una buena práctica. Si practica resolver problemas difíciles, podrá obtener buenos resultados en las entrevistas (al menos, con respecto a mantener la calma frente a un problema difícil). Se desempeña bien cuando está tranquilo. Cuando estas tranquilo Cuando tienes confianza ¿Cómo se obtiene la confianza? Práctica. Practique lidiar con tipos de problemas desconocidos para usted. Es realmente difícil encontrar una solución de programación dinámica de la nada. Ninguno de los recursos académicos le enseña a dominar la técnica de llegar a una solución DP. Se necesita tiempo, no se puede enseñar cómo abordar algo.

Una típica entrevista telefónica / skype. Se le pide que abra Google Docs o Collabedit y el entrevistador le hace la pregunta y comienza a resolverla frente a él. El entrevistador te está escuchando y observando lo que escribes. Es realmente incomodo. No tienes todo el tiempo del mundo. Al mismo tiempo, la solución tiene que ser decente. Si tienen la más mínima duda acerca de tus habilidades en estas rondas, no estás llegando. Estas empresas tienen procesos de contratación que son notoriamente propensos a falsos negativos. Por qué ? Porque les funciona.

El hecho de que TopCoder, SPOJ, etc. existan, no significa que las empresas impongan su buen desempeño en esos acertijos. Depende de usted aprovechar esos recursos para desarrollar su habilidad. TopCoder tiene algunos buenos recursos sobre algunos problemas que se encuentran con frecuencia, como las pruebas de primalidad, etc. Los problemas de Hackerrank realmente me molestan. Paso 2 horas codificando una buena solución, y entierran mi solución con algunos casos de prueba ocultos. Estas cosas me ayudan indirectamente. Me ayuda a escribir un buen código la primera vez.

Una buena forma de realizar entrevistas en GFA es ser metódico en su preparación. De lo contrario, lo dejará a merced del entrevistador. ¡Utiliza todos los recursos posibles!

Buena suerte !

Concéntrese en las siguientes áreas para descifrar casi cualquier entrevista de programación.

Estructuras de datos: matriz, lista vinculada, pila, cola, tabla hash, BST, mapa (hash vs árbol), conjunto, trie, gráfico. Aplicaciones y pros y contras de aquellos.

Algoritmos: complejidad de tiempo, complejidad de espacio, clasificación, búsqueda, BFS y DFS, programación dinámica, recursión, división y conquista, manipulaciones de bits.

Matemáticas: permutaciones, combinaciones, medianas, logaritmos, probabilidad, geometría, …

Resolución de problemas: cómo reducir cualquier problema dado a un problema conocido de Matemáticas o DS o DS + algo dado suficientes pistas.

Codificación: escriba código elegante, correcto y eficiente en 25–45 minutos.

Consejos para codificar entrevistas:

  1. hacer preguntas relevantes antes de intentar resolver
  2. dividir el problema en problemas conocidos similares / más pequeños
  3. Discuta brevemente el enfoque de la fuerza bruta, si es necesario
  4. donde corresponda, use
  1. matemáticas
  2. clasificación
  3. buscando
  4. el recorrido
  5. recursividad
  6. manipulación de bits
  7. programación dinámica
  • antes de implementar su algoritmo
    1. discutirlo con el entrevistador
    2. discutir su complejidad de tiempo y espacio
    3. ver si se puede mejorar en base a la discusión anterior
  • escribir casos de prueba (antes del código!)
  • comience con poco, pruebe inmediatamente
  • escribir funciones que son
    1. reutilizable
    2. débilmente acoplado
    3. pequeño y haz solo una cosa!
  • evitar
    1. ve a S
    2. variables innecesarias
    3. innecesarios / muchos / anidados if-elses
  • siempre
    1. validar entrada
    2. verificar códigos de retorno
    3. manejar cajas de esquina
    4. rastree su código con casos de prueba antes de decirle al entrevistador: ¡listo!

    Así es como puedes aprender cosas por tu cuenta:

    La respuesta de Imtiaz Mohammad a ¿Cómo aprendo codificación competitiva por mi cuenta? ¿Dónde puedo aprender los conceptos básicos?

    O, si desea someterse a una capacitación para descifrar entrevistas, envíeme un mensaje (no comente esta respuesta).

    Soy un poco escéptico si encuentra que Topcoder está bien, pero es difícil encontrar una solución óptima para las preguntas normales de entrevistas de codificación. Por lo general, es al revés. Las preguntas de topcoder son generalmente mucho más difíciles que las preguntas de la entrevista. Así que supongo que estás practicando en la división fácil. Pero de todos modos, Topcoder no es necesario para preparar una entrevista de codificación, ya que es un poco exagerado. Aquí hay algunos consejos:

    1. Centrarse en estructuras de datos básicos / algoritmos
    No puedo enfatizar este punto lo suficiente. Las estructuras / algoritmos de datos básicos son la base de todas las entrevistas de codificación. Si no los comprende bien, seguramente fracasará. Una pregunta de entrevista real es como pedirle que resuelva un problema con la combinación de habilidades que aprendió de estos conocimientos básicos, también debe ser bastante rápido al analizar la complejidad de tiempo / espacio, que también se trata en este tema. Libros como Cracking the Coding Interview, Introduction to Algorithms y su libro de texto en la escuela son los mejores recursos.

    2. Estar familiarizado con las preguntas de codificación
    La regla común es que cuanto más practiques, mejor serás. Muchas personas buscan atajos en este paso, sin embargo, el atajo real es solo practicar.

    Es importante tener en cuenta aquí que cuando digo práctica, será mejor que escriba un código sólido con límite de tiempo. Resolver un problema en tu mente no cuenta y tampoco gasta 30 minutos con una simple pregunta. La idea es tener exactamente la misma configuración que una entrevista real, de lo contrario, la práctica no tiene ningún sentido. Hay innumerables recursos en línea y recomendaría:

    • Codificación de preguntas y análisis de entrevistas
    • Entrevista de descifrar la codificación: muchas preguntas de práctica, con explicaciones cortas en la parte posterior.
    • LeetCode (muy recomendado): le permite codificar y ser juzgado en línea.

    3. Sigue practicando
    La entrevista técnica no solo evalúa su capacidad de codificación, sino una variedad de habilidades y habilidades como habilidades de comunicación, capacidad de análisis, etc. También muchas personas se sentirán nerviosas al resolver un problema cuando alguien mira por encima del hombro, por lo que incluso puede fallar Las preguntas más simples.

    Si desea obtener comentarios de buena calidad de entrevistadores experimentados. Tener una entrevista simulada con ingenieros de Google / Facebook es una gran opción y puedes consultar a Gainlo.

    Recursos:

    • Gainlo: obtenga una entrevista simulada de entrevistadores experimentados y reciba comentarios

    >> Recientemente respondí a una pregunta similar sobre quora y esta es una copia de eso.

    Si no está oxidado con el código, esperaría dos o tres meses para preparar las entrevistas de Google. Esto requeriría revisar libros, aplicaciones y recursos en línea disponibles. Aquí va la lista:

    Libros:
    – Manual de diseño de algoritmos: es un libro difícil de seguir pero el contenido es realmente bueno. Si usted es alguien como yo a quien le resulta difícil leer libros con mucha teoría, le recomiendo comenzar con preguntas de la entrevista y resolver un par todos los días. Lea selectivamente los conceptos según sea necesario para cada pregunta que esté resolviendo. También otra cosa que ayuda a lo grande es tener un compañero de preparación para la entrevista. Divida las preguntas y discuta las soluciones diariamente / dos veces por semana. También hagan un poco de pizarra juntos sobre las preguntas que discutan.

    – Cómo descifrar la entrevista de codificación: tiene un buen conjunto de problemas, pero no espero que se haga ninguna de estas preguntas exactas ya que este libro ha existido por un tiempo y es probablemente el recurso más conocido para la preparación.

    – Cómo pensar en algoritmos y entrevistas de programación expuestas son buenos libros también.

    Aplicaciones:
    – Coderust: buen conjunto de preguntas de entrevistas más recientes con explicaciones y soluciones de calidad. Recomiendo resolver estas preguntas usted mismo y luego comparar las respuestas.

    Sitios web:
    – GeeksforGeeks: Verifique los problemas resueltos en el sitio. También tienen muy buenas explicaciones de soluciones optimizadas que han sido verificadas por una audiencia bastante grande.

    – Careercup: buenas colecciones de preguntas. Tenga en cuenta que son solo preguntas: no confiaré en las respuestas en el sitio de la carrera, ya que he visto muchas respuestas vagas / incompletas.

    Recientemente hice una publicación en el blog sobre lo que se pregunta en la entrevista a los ICs senior. Recomiendo pasar por eso también.

    He estado en mi trabajo actual por un tiempo y quiero mudarme. ¿Qué debo esperar en mis entrevistas? por Soban Hameed

    Creo que elegir los libros / sitios web correctos ciertamente puede ahorrarle mucho tiempo a las personas. Solía ​​tener exactamente la misma confusión y había probado todas las fuentes diferentes. Más tarde, descubrí que es mucho mejor enfocarse en pocos recursos realmente buenos que mirar aleatoriamente muchos sitios web.

    Dado que su objetivo es obtener entrevistas de Google / Facebook / Amazon, las competencias de programación son excesivas. Por lo tanto, no necesita pasar tiempo en sitios como TopCoder, aunque si puede resolver ese tipo de problemas, codificar entrevistas será pan comido.

    Aquí hay algunos sitios recomendados por Practice Coding Questions: la guía completa para la preparación de entrevistas de Google, ¡y los encuentro muy útiles!

    • Preguntas de la entrevista de Gainlo Coding: cubrió muchas preguntas que han sido formuladas recientemente por las principales empresas como Google y Uber con un análisis detallado. Creo que el proceso de análisis es mucho más valioso que la respuesta.
    • Leetcode: no te sugiero que termines todas las preguntas en Leetcode. Sin embargo, marca preguntas con diferentes niveles y es genial tener una idea de dónde estás.
    • Glassdoor – Me gustaría usar este sitio en la etapa final de preparación. Digamos que vas a entrevistar a Google en dos semanas. Definitivamente puede encontrar preguntas recientes allí.

    Vale la pena señalar que sin duda necesita practicar muchas preguntas de codificación antes de poder pasar fácilmente la entrevista. Sin embargo, esto no significa que deba seleccionar al azar y resolver preguntas de programación sin pensar. Recomiendo encarecidamente que lea este artículo, ya que tiene toneladas de consejos sobre cómo prepararse de manera inteligente.

    Le garantizo que practicar preguntas solo por entrevistas es una pérdida de tiempo colosal. La competencia con estas preguntas tiene poco que ver con la capacidad de ingeniería de software.

    Si está interesado en aprender sobre árboles y mapas de hash, por ejemplo, escriba un programa decente que los destaque. No solo aprenderá sobre estas estructuras de datos, también aprenderá cómo aplicarlas a problemas reales y tal vez también termine con algún software útil.

    En pocas palabras, cuando entrevisto a los candidatos, la mayoría de ellos PUEDE responder a los desafíos algorítmicos. Sin embargo, es dolorosamente obvio cuando un candidato está recitando una respuesta memorizada. Los ejemplares son aquellos que están familiarizados con detalles que solo pueden engendrarse a través de la práctica real.

    Los recursos / procedimientos mencionados a continuación son para Técnico / Programación Entrevistas, aplicables a la mayoría de las empresas basadas en productos / Startups tecnológicas (Google y los 4 grandes)

    1. Codificación competitiva: –
    • Topcoder:
    • Div. 2 – 250, 500.
    • Div 1 – 250.

    Nota : Div 2 500 y Div 1 250 son casi equivalentes.

    • Fuerzas de código:
    • Div 2 – A, B, C.
    • Div 1 – A.

    Nota : Div 2 C y Div 1 A son casi equivalentes.

    • CodeChef :
    • Principiante
    • Fácil
    • Medio

    Nota :

    • Topcoder – Div 2 250 = CodeForces – Div 2 A, B = Codechef – Principiante, Fácil . (Respectivamente)
    • Topcoder – Div 2 500 = CodeForces – Div 2 C = Codechef – Medio .
    • Topcoder – Div 1 250 = CodeForces – Div 1 A = Codechef – Medio .

    2. Libros: –

    • Cracking The Coding Interview (CtCI) – Compre el libro de entrevistas Cracking the Coding en línea a precios bajos en India
    • Entrevista de programación expuesta (PIE) – Compre entrevistas de programación expuestas: secretos para conseguir su próximo trabajo, libro 3ed (WROX) en línea a precios bajos en India
    • Elementos de entrevistas de programación (EPI) – Compre en línea el libro Elementos de entrevistas de programación a precios bajos en India
    • Estructuras de datos y algoritmos de forma fácil – Compre estructuras de datos y algoritmos de manera fácil: estructuras de datos y rompecabezas de algoritmos Reserve en línea a precios bajos en India

    3. Sitios web: –

    • Bit de entrevista – Cursos de InterviewBit – InterviewBit
    • Código Leet – Juez en línea LeetCode
    • Career Cup – Preguntas de la entrevista de programación | CareerCup
    • Geeks para Geeks – GeeksforGeeks | Un portal informático para geeks
    • Hacker Rank – HackerRank
    • Hacker Earth – HackerEarth – Desafíos de programación y trabajo de desarrollador

    Resuelve problemas por tu cuenta. Para comenzar, puede comenzar a resolver problemas desde “Preguntas de la entrevista de codificación: análisis y soluciones” de Apress. Además, comience a resolver problemas dados en geeksforgeeks. Mire la carrera profesional para ver el tipo de problemas que se le preguntan en las entrevistas y resuélvalos usted mismo, nunca mire la solución. Si toma tiempo, déjelo tomar pero resuelva por su cuenta.

    Comience con la solución más simple que pueda encontrar, luego intente pensar en cómo puede optimizarla.

    Además, mientras tanto, comience a resolver problemas en TopCoder. En TopCoder, puede comenzar con coincidencias de ronda única (SRM). Comience a resolver problemas en HackerRank.

    Participe en la programación competitiva (competiciones), tal vez no para ganar, pero al menos para mejorar a tiempo la solución de boxeo, la implementación para la cantidad de problemas dados.

    Y por último, pero no menos importante, resuelve tantos problemas como puedas; esto ayudará con un proceso de pensamiento claro sobre cualquier otro problema complejo que encuentres.

    Practique muchas de las preguntas “estándar”. Se reciclan una y otra vez, ya que los entrevistadores no tienen demasiado tiempo para crear nuevas preguntas con tanta frecuencia.

    Puede encontrar algunas de estas preguntas útiles:

    Preguntas de la entrevista de programación – Microsoft, Amazon, Google, Facebook – Programas, Código, Rompecabezas, Pruebas de ubicación – Respuestas / Consejos al final – el punto de aprendizaje

    Una colección de preguntas de entrevistas de Amazon, Microsoft, Google, entrevistas de Facebook. La mayoría de ellos son reciclados y utilizados por todos ellos.

    Descargo de responsabilidad: un pequeño proyecto mío

    Probablemente no sea la mejor persona para responder esto, pero de todos modos daré algunos consejos generales …

    Hay dos lados para esto. Una es conocer las diversas estructuras de datos comunes, API, etc., para que pueda decidir rápidamente cuáles usar y recordar cómo usarlos. Para esto, hay una serie de buenos libros por ahí. Uno que me recomendaron es Cormen, Introducción a los algoritmos , MIT Press. En realidad, casi cualquier libro de texto de algoritmos debería estar bien para comenzar. Al principio, evitaría a Knuth: es un maestro, pero muy intimidante.

    El otro lado es tener la mente analítica necesaria para analizar rápidamente un problema, descubrir un truco para ver el problema de una manera diferente para hacerlo más fácil, o notar un truco que podría haber usado antes. No sé cómo mejorar esta habilidad, excepto con mucha práctica en ese tipo de problemas.

    Por lo tanto, recomendaría primero sumergirse en un libro de texto por un tiempo, y luego probar algunos problemas antiguos de SPOJ, TopCoder o Google Code Jam, de forma iterativa. Si encuentra uno que lo ha dejado perplejo, no se preocupe, solo busque otro, tal vez comience con uno más fácil al principio. Además, no se preocupe por los límites de tiempo al principio, solo trate de encontrar alguna solución. ¡Entonces trata de encontrar una mejor solución!

    He leído muchos libros, he escuchado charlas o entrevistas reales, pero no hay mejor manera que la codificación real y la solución por ti mismo. Establecí una hora todos los días para resolver y codificar solo una pregunta de entrevista y después de un par de meses sentí lo ejercitado que estaba mi cerebro. Créame, mientras su cerebro esté bien ejercitado, puede sobresalir cualquier pregunta de la entrevista, incluso si nunca escuchó la pregunta. De esa manera, solo tendrá que aprender y luchar una vez, pero recuerde toda su vida.

    Tome el libro de Gayle y comience a resolver un problema todos los días.

    ¡¡Puedes hacerlo!!

    Este conjunto particular de conferencias:
    Algoritmos de Shai Simonson

    No busques más, solo comienza a verlos.
    Ellos son los mejores.

    Yo era un ex gerente de contratación de Amazon y había pasado por el proceso de ayudar a muchos candidatos en los últimos años.

    Esto es lo que haría si tuviera una entrevista:

    1. Actualizar la estructura de datos y el conocimiento del algoritmo. Revisaría el libro de texto de tu universidad o escuela de posgrado. El más famoso es Introducción al algoritmo.
    2. Lea un par de guías de preparación:
    1. Cómo conseguir un trabajo en amazon
    2. Cómo descifrar la entrevista de código
  • Practica, practica y practica. Recomiendo leetcode o hackerrank.
  • GeeksforGeeks: un portal informático para geeks y preguntas de la entrevista de programación | CareerCup. lo haré para preguntas de entrevistas … Para problemas más avanzados, puede ir a TopCoder, Inc., Competencia de programación, Concurso de programación, Programación en línea, etc.

    Dirígete a GeeksForGeeks

    TL; DR

    Aquí hay dos cosas: entrar en las grandes empresas y convertirse en un codificador algorítmico de primer nivel. Si bien ser un codificador algorítmico puede garantizarle que borre las entrevistas con facilidad, ¡alguien que haya borrado las entrevistas no puede considerarse un codificador de primer nivel! La simple razón es que las personas con poca experiencia están realizando entrevistas y las preguntas se repiten. Un mes de estudio sobre geeksforgeeks puede hacerte ver como un genio para el entrevistador. Dirígete a geekforgeeks u obtén el libro Cracking the Coding Interview (libro de 2011)

    Los consejos publicados en Obtener ese trabajo en Google son los mejores que he visto con respecto a este tema.

    Hace poco tuve una entrevista con Amazon. Se trataba principalmente de preguntas técnicas y algo de codificación en tiempo real con un ingeniero actual. Adjunto un enlace al paquete de revisión que me enviaron. Espero que ayude y buena suerte!

    SDEPSPREP.pdf

    More Interesting

    ¿Cómo debo prepararme para poder pasar por IIM, Ahmedabad?

    Dejé mi último trabajo porque estaba sobrecargado de trabajo y mal pagado, no progresaba en mi carrera y quería hacer otra cosa. ¿Cómo puedo responder la pregunta de la entrevista de trabajo "por qué dejó su último trabajo"?

    ¿Debería ser honesto con su empleador cuando busca otro trabajo?

    ¿Cómo debo prepararme para una entrevista para ser admitido en IIM y en las mejores escuelas B?

    Soy una tolva de trabajo. ¿Cómo obtengo entrevistas ahora que tengo mala reputación?

    ¿Qué debe responder cuando el personal de recursos humanos le pregunta cuál es su salario esperado?

    Al buscar empleo, ¿los empleadores lo mantendrán en su contra si no tiene un perfil de LinkedIn?

    ¿Es mi currículum lo suficientemente bueno como para obtener una entrevista con una empresa de tecnología de primer nivel como Google, Microsoft o Facebook?

    El proceso de entrevista de trabajo es lento y me estoy endeudando por eso. ¿Cómo puedo ser contratado más rápido?

    ¿Por qué siempre me rechazan en la segunda o tercera ronda en organizaciones como Google y Nvidia?

    Cómo mencionar los cursos en currículum sin certificación

    ¿Cuáles son los mejores sitios para la preparación de entrevistas?

    Cómo hablar sobre gestión poco ética en una entrevista de trabajo

    Entrevistas de recursos humanos: en una entrevista de recursos humanos, me preguntaron por qué quiero cambiar mi carrera. En respuesta a eso, les conté mi historia anterior por qué estoy en el campo actual y expresé mi interés en la oportunidad presente. ¿He hecho algo mal en la entrevista?

    ¿Alguien ha sido entrevistado para el Programa ACE de Marketing de Microsoft? ¿Cómo fue la entrevista y qué tipo de preguntas debería esperar recibir?