¿Cómo se puede estar bien preparado para responder preguntas sobre estructura de datos / algoritmos en entrevistas?

Le sugeriré el siguiente enfoque: –

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

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

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 el 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 acerca de usted mismo”, “Sus habilidades relacionadas con un mayor interés positivo / negativo”, 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, 50 horas 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)

El mejor primer lugar para comenzar es leyendo el ABC de David Byttow: Always Be Coding. Hay muchos recursos de un tipo que ha entrevistado a un montón de candidatos técnicos. El tema principal: Olvídese de las bibliotecas y el código desde cero. Este es un enfoque poderoso sobre cómo superar las entrevistas tecnológicas. Nadie va a pedirle que codifique una aplicación en el acto, se trata de que se sientan cómodos con su forma de trabajar y su comprensión de los conceptos clave o fundamentales. Durante una entrevista, todos están impresionados por la persona que puede hacer que los tiros libres parezcan fáciles.

A continuación, obtenga un poco más técnico con la Entrevista sobre cómo mover un algoritmo proporcionada por nuestros amigos en Palantir. Palantir es conocido por su riguroso proceso de entrevistas, y este artículo le brinda un excelente marco para comenzar a pensar en todo tipo de preguntas de entrevistas basadas en algoritmos.

Luego tenemos la respuesta expuesta de William Shields, Problemas de programación de entrevistas hechas correctamente, al artículo de 37 Signals ‘Parlor Tricks. Mucho antes de que Google descubriera por qué los Brainteasers no pertenecen a las entrevistas de trabajo, William escribió esta publicación de blog que obtuvo una gran cantidad de respuestas en Hacker News.

Finalmente, como golpe de estado, puede elegir la excelente publicación de blog de Steve Yegge Cómo conseguir ese trabajo en Google. (Vaya a la sección “El calentamiento”, que es donde las cosas obtienen menos trabajo de ventas de Ir a Google) o Cómo pasar una entrevista de ingeniería de software de Silicon Valley de Paul Tyma. Ambos artículos ofrecen amplios consejos estratégicos para entrevistar en el valle.

Video en entrevistas de pizarra
Si bien no es el video más bonito, Gayle Laakmann de Dice profundiza en la entrevista de Whiteboard en YouTube. Si no has abordado en una entrevista por un tiempo, ese es un buen lugar para comenzar.

Jodido? No ha terminado
¿Terminó su entrevista y sintió que podría haberlo hecho mejor? Todavía es posible la recuperación, consulte “No sé” – Recuperación de una respuesta técnica de entrevista fallida, postmortem “.

A2A.

1) Romper la entrevista de codificación.
2) http://geeksforgeeks.org
3) carrera

Estos tres serían sus mejores recursos.

Ahora llegando a la parte práctica, NO PRACTICAR EN SU COMPUTADORA.
Escriba su código en papel o en una pizarra. Una vez que termine de escribir un fragmento de código, compárelo con la solución que se encuentra en su libro / internet y vea qué casos se perdió y cómo su algoritmo difiere del de ellos.

No intente ver la respuesta a una pregunta tan pronto como crea que no sabe la respuesta. Tratar. Escribe algo. Mira hasta dónde te lleva tu imaginación. Finalmente, una vez que crees que has alcanzado un nivel de saturación, mira la respuesta y sorpréndete.

Prepare los temas uno por uno. Toma notas, toma notas. Muchos de mis amigos cometieron este error: al preparar preguntas para la compañía y no para el tema. Esta técnica PODRÍA ayudarlo solo cuando tenga la entrevista de esa compañía en particular mañana y no tenga idea de qué prepararse hoy. En todos los demás casos, es un estricto no-no.

Finalmente, es posible que desee hacer una revisión de todo lo que preparó un par de días antes de las ubicaciones para recuperar los conceptos en su caché.

Bueno, eso es todo. Buena suerte.

PD: Supongo que Quora está inundada de estas preguntas: “¿Cómo debo prepararme para las ubicaciones / qué debo preparar para las entrevistas”, etc. Parece que Quora necesita un mod como SO para evitar la repetición de las mismas preguntas.

Definitivamente no necesitas un coeficiente intelectual de más de 140 para descifrar la entrevista. Las preguntas generales de codificación son bastante predecibles y hay ciertos patrones que definitivamente pueden hacer que el proceso de preparación sea menos doloroso.

  • Si ya está bastante familiarizado con la estructura de datos y el algoritmo, puede omitir este punto. De lo contrario, dedique suficiente tiempo a esto. No puedo enfatizar más sobre este punto, ya que es lo más fundamental para una entrevista de ingeniero de software. Si no logras comprender bien esas estructuras de datos básicas que aprendiste en la escuela, simplemente fallaste en toda la entrevista. No estoy exagerando, una vez que haya pasado por varias entrevistas técnicas, se dará cuenta de lo importante que es. Los libros sobre la estructura de datos y el algoritmo están en todas partes, asegúrese de tener muy claros los elementos básicos como el árbol binario, la cola, la pila, la lista vinculada, etc.
  • Sumérgete en las preguntas de la entrevista real tanto como puedas. Hay toneladas de recursos en línea, como http://www.glassdoor.com, donde puede acceder a innumerables preguntas de entrevistas reales de empresas. No espere tener la misma pregunta de entrevista que preparó (aunque es posible), pero practicar con preguntas de entrevista reales lo ayudará a ser consciente de la dificultad, el estilo de cada empresa y lo que realmente les importa.
  • Practica escribir código en la pizarra. Esto es lo que la mayoría de la gente ignora. Parece bastante simple a primera vista, ¿verdad? Pero no es una vez que lo intentas. Echarás mucho de menos esos atajos sofisticados en tus editores de texto e IDE favoritos y, lo que es más, es muy inconveniente modificar el código como insertar otra pieza de código en el medio. Pero debe superarlo, ya que la mayoría de las entrevistas reales le pedirán que escriba un código SOLIDO en la pizarra. No necesita ser compilado, pero debería estar casi allí. ¡Sin pseudocódigo!
  • Practica con entrevistas simuladas . Es una gran experiencia para ti practicar de una manera en la que no puedes fallar. Puedes hacer esto con tus amigos y volver a entrevistarlos. También obtuve mi entrevista simulada de http://www.gainlo.co cuyos entrevistadores están trabajando en Google, Facebook, etc. y me dieron toneladas de comentarios.

La entrevista simulada personal es el enfoque más efectivo que he tenido porque tendrás sentimientos totalmente diferentes al pensar y resolver problemas frente a una persona. Estarás nervioso y puedes fallar incluso ante la pregunta más simple.

Además, los entrevistadores de una entrevista real no le darán ningún comentario auténtico, solo pueden decirle la respuesta oficial, que no es otra que una mierda. Sin embargo, un entrevistador simulado lo ayudará a mejorar en todos los aspectos, especialmente si tiene experiencia.

En resumen, con suficientes prácticas, ¡definitivamente puedes descifrar la entrevista!

Las preguntas dependen de su nivel de experiencia y posición para la que está entrevistando. En general, las empresas intentan evaluar qué tan bueno eres en cosas que afirmas saber.

Si está asumiendo un trabajo en software, hay varios tipos de preguntas

  • Preguntas de programación estándar: operaciones en listas vinculadas, recorridos en árbol, etc. Se espera que escriba código en la pizarra (o en un editor compartido) y corrija los errores que pueda cometer al principio.
  • Material estándar sobre algoritmos, estructuras de datos y su complejidad. Por ejemplo, se le puede pedir que discuta algoritmos para encontrar la mediana en una matriz, decida cuál es más práctico y por qué.
  • Preguntas de resolución de problemas que no implican codificación, al menos al principio. Por ejemplo, desarrolle un algoritmo que acceda a una matriz en la que un valor se repite en más del 50% de los elementos de la matriz y encuentre este valor en tiempo lineal con una memoria adicional mínima.
  • Diseñe preguntas, en las que se le presente alguna situación y necesite esbozar una estrategia o una estructura de datos. Por ejemplo, ¿cómo diseñaría un carrito de compras de Amazon?
  • Preguntas sobre la sintaxis o el tiempo de ejecución de Java o C ++. A veces preguntas poco convincentes o demasiado limitadas.
  • Preguntas relacionadas con matemática discreta o probabilidad.

Las dos últimas categorías son menos comunes, pero ocurren.

Hay varios libros excelentes sobre entrevistas de codificación, con muchos ejemplos. Algunos incluso discuten las diferencias entre las empresas. Puede encontrarlos fácilmente en Amazon. Los libros de Gayle Laakmann McDowell son muy populares, especialmente Cracking the Coding Interview. Además, vea Elementos de las entrevistas de programación: Guía de información privilegiada: Adnan Aziz, Tsung-Hsien Lee, Amit Prakash.

La preparación de la entrevista de codificación es fácil

Puede probar InterviewBit, un nuevo sitio de preparación de entrevistas para personas mayores de IIIT-H y ex empleado de Facebook. Este sitio tiene todos los problemas y conceptos en un formato y estructura adecuados que le brindarán una experiencia de entrevista, como dar pistas y el enfoque de la solución.
Lo he intentado y realmente me gusta la forma en que se han ocupado incluso de los detalles más minuciosos. ¡Darle una oportunidad! Definitivamente debería ayudarte a largo plazo.
Y también, si lo haces bien, te referirán a las mejores compañías para entrevistas.
¡Salud!

Puede consultar el fundador de InterviewBit, la respuesta de Anshuman Singh aquí en el enlace que figura a continuación:
¿Cómo puedo conseguir un trabajo en Facebook o Google en 6 meses? Necesito un plan de trabajo conciso para construir un conjunto de habilidades lo suficientemente bueno. ¿Debo unirme a alguna otra startup o construir mis propios proyectos / start-ups? ¿Debería centrarme en practicar estructuras de datos y algoritmos?

Esos problemas pueden parecer aterradores ahora, pero no te preocupes, puedes aprender cómo resolverlos.

En Refdash, ayudamos a los ingenieros a practicar entrevistas técnicas de forma anónima con entrevistadores experimentados y les ayudamos a encontrar trabajos que se adapten a sus habilidades e intereses.

Nuestras entrevistas se centran mucho en estructuras de datos y algoritmos, entre otros aspectos. Como puede imaginar, su pregunta es una de las preguntas más comunes que recibimos de nuestros candidatos.

Dijiste que cuando ves un problema, lo miras, parece simple, pero parece que no lo entiendes.

Existen métodos aprendibles y replicables para resolver problemas algorítmicos. Después de aprenderlos, sabrá cómo abordar los problemas sistemáticamente.

Entonces, en lugar de solo hacer problemas de práctica en Codechef y Codeforces, tengo una mejor propuesta para ti …

(Parte de esto es lo que escribí en respuesta a: ¿Qué debería practicar para tener éxito en las entrevistas algorítmicas de empresas como Google, Facebook, Amazon, etc.?)

  1. Aprenda los fundamentos de CS para la ingeniería de software: si no comprende algunos de los conceptos clave de ingeniería de software, eso será una señal de alerta. Dijiste en los detalles que no te sientes muy cómodo con los algoritmos y las estructuras de datos … bueno, eso tiene que cambiar. Tal vez parezca un poco aterrador en este momento, pero no se preocupe: puede tomar cursos gratuitos de clase mundial 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.

    1. 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 lo necesitará en algunas entrevistas.

      Puedes encontrar un montón de problemas interesantes para practicar en Geeks For Geeks.

    2. 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
      1. 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.

        Es por eso que creamos Refdash, una plataforma donde puedes 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.

      Aparentemente, no todos los ingenieros de Google / Facebook tienen más de 140 IQ, pero todos son buenos en la estructura / algoritmo de datos de alguna manera. Aunque un alto coeficiente intelectual, un mejor sentido de las matemáticas y la informática puede facilitar la adquisición de estas habilidades, el aprendizaje y la práctica constantes son muy importantes para la mayoría de las personas.

      No necesita un título de PHD en matemáticas para comprender ninguno de los algoritmos básicos porque la mayoría de ellos son bastante sencillos.

      Luego me gustaría responder a sus preguntas sobre cómo mejorar en este tipo de preguntas:

      1. Construye una base vendida. Todas esas preguntas de la entrevista se basan en los conocimientos básicos que aprendiste en la escuela y sin una comprensión clara de ellas, no hay posibilidad de que seas bueno para resolver esas preguntas. Puede consultar Introducción a los algoritmos y, en función de lo familiarizado que esté con estos conocimientos, algunas personas optan por leer el libro desde el principio, algunas pueden simplemente repasar esos capítulos y conceptos importantes. La hoja de trucos de la entrevista técnica tiene una lista de estructuras / algoritmos de datos básicos que son importantes y populares para una entrevista técnica.
      2. Escriba el código para resolver la pregunta de la entrevista. El segundo paso es practicar con tantas preguntas de entrevista como sea posible. Hay tantos recursos en línea y es casi seguro que no podrá terminarlos todos. Aquí hay una breve lista de recursos que creo que son más útiles. Pocas cosas es mejor tener en cuenta. En primer lugar, intente escribir su solución en lugar de pensar en su solución en mente. La mayoría de las entrevistas le pedirán que escriba su código y notará lo diferente que es. En segundo lugar, siempre refine su solución, incluso si funciona. Puede hacer que el algoritmo sea más rápido o usar menos memoria, también puede hacer que su código sea más limpio. Por último, trate de hablar mientras piensa. Es importante en una entrevista seguir comunicándose con su entrevistador y requiere mucha práctica sentirse cómodo con eso.
      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. Te sugiero que encuentres un amigo que también se esté preparando para una entrevista, ustedes pueden realizar entrevistas simuladas entre sí e intentar familiarizarse con este tipo de atmósfera intensa.

      Mucha gente también quiere recibir comentarios de buena calidad de entrevistadores experimentados. Con eso en mente, trabajamos en la construcción de Gainlo – Entrevista simulada con profesionales, que permite a los candidatos realizar entrevistas simuladas con entrevistadores experimentados de las principales empresas como Google, Amazon, Linkedin, etc. y obtendremos comentarios reales para ayudarlos a mejorar.

      Obviamente, ciertas formas pueden facilitarle ser mejor en las preguntas de la entrevista y la clave es realmente dedicar tiempo y esfuerzo para seguir aprendiendo y practicando. He visto a muchas personas que son más inteligentes que el promedio pero que no son súper inteligentes pueden ser extremadamente buenas en la estructura / algoritmo de datos, y también hicieron un gran trabajo en el trabajo. Creo que el coeficiente intelectual nunca debería ser un problema para nadie en esta industria, y mucho menos 110-120 ya es bastante alto.

      Entrevisto a muchas personas día a día. También he recibido ofertas de algunas compañías muy difíciles. Recomendaría leer Entrevista sobre descifrar la codificación: 150 preguntas y soluciones de programación: Gayle Laakmann McDowell: 9780984782802: Amazon.com: Libros

      Me refiero a que realmente lo leí. Siéntate con un editor de texto y escribe código. Hazlo sin internet. Luego lea las respuestas e intente responder las preguntas nuevamente sin ayuda. Gayle Laakmann McDowell también está en Quora.

      Además, no creo que necesite tener un coeficiente intelectual anormalmente alto para resolver estas preguntas. Después de un poco de práctica, te volverás bueno para descubrir un enfoque común. Simplemente no quieres estar atrapado. Siempre piensa en

      1. ¿Cuál es una manera ingenua de resolver el problema?
      2. ¿Puedo mejorar la respuesta usando diferentes estructuras de datos?
      3. ¿Dónde está la deficiencia? ¿Está obteniendo datos, puede usar el mapa, la lista, la matriz?
      4. ¿Qué tal un algoritmo diferente? Divide y conquistaras. Programación dinámica. Recurrencias

      amigo, es simple

      estás completamente equivocado con mucha suposición

      el hecho, eres tan bueno como los demás

      No fui nada el año pasado, este año estoy en el Top 116 en el trabajo en un sitio web de programación competitivo, en 1 año, he pasado por múltiples entrevistas: Amazon, Microsoft, Google, algunas fallaron, otras no me gusta el trabajo

      ¿Crees que no fui mejor el año pasado? ¿No era la misma persona?

      Yo era literalmente la misma persona.

      La diferencia entre mí hoy y el año pasado es el conocimiento.

      IQ es sobre conocimiento y su aplicación

      DS & Algorithms trata sobre el conocimiento y su aplicación

      la aplicación implica conocimiento, nuevamente el conocimiento implica la aplicación del conocimiento

      si lo anterior es confuso, entonces todo lo que significa es, continuamente aprender y aplicar / probar su conocimiento

      hay algo más: resolución de problemas, esto implica varios conocimientos que se aplicarán, por lo que cuanto más sepa (conocimiento), mejor será el solucionador de problemas

      Una nota importante de todas: trabajo duro y determinación para completar lo que comenzaste, simplemente no des en lugar de pedir ayuda para obtener recursos de donde estudias y aumentar el conocimiento.

      eres tan bueno como los demás, la diferencia es que quien intentó y triunfó es mejor que tú: cuando lo intentas y triunfas, vuelves a ser igual a los demás en ese nivel, nadie es el mejor

      Una nota más importante de todas: no copie y pegue otras, de lo contrario estará en 0 por un tiempo infinito.

      Escribí algunas cosas aquí que ayudarán: Recursos de CS y CP todo en uno por Manohar Reddy Poreddy en ProblemSolvingAndMore

      Estoy haciendo ping si necesita ayuda sobre lo que escribí aquí: Manohar Reddy Poreddy

      la mejor de las suertes

      El primer nombre que viene a mi mente y los profesionales exitosos que ya han dado su entrevista en las principales empresas como Google, Amazon, Microsoft, Yahoo, Cisco, Adobe, Facebook, Nvidia, Oracle, Dell es sin duda GeeksforGeeks | Un portal informático para geeks.

      GeeksforGeeks es la mejor opción para prepararse para entrevistas porque

      • Es la colección de preguntas de entrevistas más grande del mundo.
      • Se actualiza diariamente, con nuevas preguntas de entrevista y experiencia.
      • Tiene un rincón de entrevistas: GeeksforGeeks, una pregunta para la entrevista COMPANY WISE y una preparación para la entrevista para el desarrollador de software: GeeksforGeeks TOPIC WISE .
      • Archivos experimentados – GeeksforGeeks , Experiencias de entrevistas
      • Una guía completa para su entrevista, una guía paso a paso para la preparación de la colocación | Conjunto 1 – GeeksforGeeks
      • La página discute cada pregunta con diferentes enfoques y con la mejor complejidad de espacio y tiempo .
      • Tener algunos recursos increíbles, que todo buscador de trabajo debería ver , como
      • Los 10 mejores algoritmos en las preguntas de la entrevista – GeeksforGeeks
      • Los 10 algoritmos y estructuras de datos más importantes para la programación competitiva – GeeksforGeeks
      • Las 25 preguntas principales de la entrevista – GeeksforGeeks
      • ¿Cómo prepararse para ACM – ICPC? – GeeksforGeeks
    • También tenga compiladores en línea donde cualquiera pueda practicar, ya sea
      • Tema sabio, práctica | GeeksforGeeks
      • Empresa sabia, práctica | GeeksforGeeks
    • Tener un conjunto de algoritmos muy extenso que uno debe Algoritmos: GeeksforGeeks.
    • Incluso si usted es NUEVO en el mundo de la codificación, no se preocupe, GeeksforGeeks se encargará de usted. ¿Cómo comenzar con la programación competitiva? – GeeksforGeeks.
    • GeeksforGeeks debería ser tu AMIGO si quieres tener un buen desempeño en las entrevistas y obtener conocimiento y si eres de antecedentes en Informática , definitivamente es un verdadero MEJOR AMIGO.

      Oh, me olvido de mencionar, una cosa principal.

      ES GRATIS

      GeeksforGeeks, ahora también está en QUORA , sígalo para obtener más actualizaciones.

      Mira, lo que las personas exitosas tienen que decir sobre GeeksforGeeks

      La respuesta de Pratibha Sharma a mí me hizo creer que la compañía a la que me uní fue increíble. Ahora, después de 1 año y 6 meses aquí, odio mi trabajo. No hay codificación, no les importan mis ideas, todo eran mentiras. ¿Cómo salgo de esta compañía de TI y me uno a una compañía de software real?

      ¿Qué es mejor, HackerRank o GeeksForGeeks para la preparación de la entrevista?

      Esos libros deberían ser suficientes en lo que respecta a la comprensión del espacio problemático de la entrevista, pero agregaré algunas advertencias:

      1. Debe resolver los problemas sistemáticamente y escribir código para ellos. Será muy tentador simplemente leer los problemas, pero eso no será muy útil.
      2. Para las entrevistas más difíciles (Google, FB …) esos libros no son suficientes. Para aquellos, tienes que hacer una mayor variedad de problemas con más profundidad. Algo así como LeetCode, UVA Online Judge sería el camino a seguir. Para esas empresas, te enfrentas a personas que se han estado preparando durante 6-9 meses.
      3. La mitad del énfasis en cualquier entrevista, es habilidades de comunicación y confianza. Esos vendrán de tu trabajo duro e inteligencia.
      4. Es importante recibir comentarios sobre cómo está progresando. En general, lo haces con entrevistas de práctica en diferentes compañías para las que no quieres trabajar. Pero las empresas no suelen dar retroalimentación. Por lo tanto, es muy difícil saber dónde puede estar yendo mal. Para eso, debe hacer suficientes entrevistas simuladas con entrevistadores experimentados. “Sazonado” es la palabra clave. Realizar entrevistas es una habilidad y no quieres prepararte con alguien que no las haya hecho lo suficiente. De lo contrario, solo obtendrá comentarios a nivel de superficie.
      5. Recuerde que entrevistar es una habilidad, que es más análoga a las citas que a la preparación de exámenes. es decir, es la persona, usted, lo que más importará al final.

      Según mi experiencia, he sentido que, en lugar de buscar arbitrariamente en la web varios algoritmos y conceptos, organizar su estudio siguiendo un libro ayuda mucho. Hágase un favor, obtenga un buen libro y organice su estudio en base a diferentes capítulos que podrían ser relevantes para usted. Remití el Manual de diseño del algoritmo: Steven S Skiena: 9781848000698: Amazon.com: Libros que son increíbles, especialmente historias de guerra. Una vez que esté listo, intente resolver tantos problemas como sea posible, no hay reemplazo para la práctica. Sitios como HackerRank y CodeEval – Evaluaciones simplificadas ofrecen una excelente plataforma para practicar.

      Dicho esto, creo que comprender las estructuras básicas de datos, su relevancia y visualizarlas es de suma importancia. Sin eso, se perderá en este laberinto de varios problemas que puede encontrar en la web. He tratado de responder esto como parte de la pregunta aquí, le sugiero que se refiera a ella: la respuesta de Pawan Bhadauria a ¿Cómo fortalezco mi conocimiento de las estructuras de datos y algoritmos? Ambos me han dejado con un conocimiento fracturado del tema con muchas lagunas en el medio. ¿Cuál sería una buena manera de llenar los vacíos y progresar?

      Realiza concursos TopCoder, GCJ, Hacker Cup o ACM. No requiere que seas particularmente inteligente, pero debes ser capaz de improvisar soluciones sobre la marcha.

      Eventualmente, tendrás una intuición que te indicará la forma correcta de resolver el problema. Inmediatamente “sabrá” qué estructura de datos usar, o si es un problema de programación dinámica, y tendrá que usar la memorización.

      ¿En cuanto a su caso específico? Parece que ya logras obtener la solución, pero no la más óptima. Cuando encuentre una solución que sospeche que no es la más óptima, busque algunas cosas:

      • ¿Estoy haciendo trabajo repetido? ¿Puedo guardar subresultados? Si es así, use la memorización / programación dinámica.
      • ¿Estoy buscando algo en una matriz? Si es así, use una tabla hash y aproveche las búsquedas de tiempo constante.
      • Asegúrese de que sus estructuras de datos sean las correctas y aprenda cuáles son las mejores para cualquier situación. ¿Estás haciendo muchas búsquedas clave: valor? Usa una tabla hash. ¿Estás tratando de representar un conjunto? Use un filtro HashSet o Bloom. ¿Estás tratando de implementar algún tipo de cola? Use una lista doblemente vinculada.

      Al final, sin embargo, solo necesita más práctica, y eventualmente podrá hacer esto extremadamente rápido sin pensarlo conscientemente.

      Mi amigo, no es necesario tener IQ 140 ++, déjame contarte mi historia personal (puedes leer mi historia aquí)

      Cuando estudiaba en B.Tech (era la universidad muy normal de la India, como NPU es de EE. UU.) Pude escribir código con herencia normal, imprimir Diamond en C, etc. y estaba entre los mejores estudiantes. En el código de Binary Tree de mi universidad, solo mi HOD podía escribir y ni siquiera los otros profesores de DSA.

      Ahora comprenda que proviene de esos antecedentes para convertirse en el mentor de DSA que ha guiado a los estudiantes a ingresar a Microsoft. Y mi propio trabajo para Flipkart, la principal empresa de comercio electrónico de la India, por lo que mi punto es que no es para nada ciencia espacial, solo necesita práctica y un objetivo.

      Permíteme compartir contigo desde donde puedes comenzar. Puede comenzar con el Curso en línea de Data Structures: GoHired, donde puede comenzar con preguntas de Array, Árbol binario, comprender los conceptos básicos de las preguntas y luego ir a la codificación. Una vez que complete la mayoría de las preguntas de este sitio en 10–20 días, vaya a GeeksforGeeks aquí, puede tener tantas preguntas y respuestas directas para esto, así que antes de verificar la respuesta, intente crear su propia solución o al menos desarrolle su patrón de pensamiento para resuelve tales preguntas.

      Una vez que haya completado este sitio, en 2–3 meses, comience con HackerRank o HackerEarth. A través de esta plataforma, puede estar listo para la entrevista de cualquier empresa.

      Si desea ganar la mejor copa de codificador, etc. en la práctica de competencia en línea en SPOJ, TopCoder y CodeChef.

      Tener una codificación feliz 🙂

      Y para desarrollar un patrón de pensamiento en el primer paso, contácteme en el Curso en línea de Data Structures: GoHired, puedo guiarlo hasta que pueda crear su propio ejemplo de soluciones. Vea este video:

      Aunque un coeficiente intelectual alto podría ayudar, definitivamente no necesita un coeficiente intelectual de más de 140 para realmente sobresalir en esas preguntas de codificación. Creo que la mayoría de mis colegas son súper inteligentes, pero muy pocos de ellos (tal vez ninguno de ellos) son de ese tipo de genio con un coeficiente intelectual extremadamente alto. El trabajo duro más la experiencia también son importantes.

      Volviendo a su pregunta, creo que Build a Solid Foundation: la guía completa para la preparación de la entrevista de Google tiene un excelente resumen de esta pregunta.

      Desde mi experiencia personal, lo más importante es estar extremadamente familiarizado con las estructuras de datos y algoritmos básicos.

      Lo que la mayoría de la gente hace

      Al prepararse para las entrevistas de codificación, la mayoría de las personas comenzará a practicar preguntas de codificación sin tener una buena comprensión de las estructuras de datos / algoritmos. Esto parece ser un atajo, pero en esencia es una trampa.

      Una buena metáfora es el partido de tenis. No puedes mejorar mucho solo jugando. Los jugadores profesionales pasarán la mayor parte de su tiempo perforando habilidades básicas.

      Habilidades básicas

      Practicar preguntas es una forma de ayudarnos a comprender mejor nuestras fortalezas y debilidades. Cuando te das cuenta de que no eres bueno en un tipo de preguntas, es mejor dar un paso atrás y verificar si no tienes claro ciertas estructuras de datos o algoritmos.

      Además, cuando hablamos de estructuras de datos y algoritmos, creo que deberíamos hacer más que solo conocer su definición. Como recomienda la publicación, muchos candidatos tienden a ignorar las siguientes dos cosas:

      • Pros contras. Me resulta muy útil comparar estructuras / algoritmos de datos relevantes. Por ejemplo, saber cuándo debemos usar el árbol / lista de linkedin / cola / pila para almacenar objetos me ayuda a comprender mejor esas estructuras de datos, lo que resulta útil para resolver problemas reales.
      • Complejidad. Estoy sorprendido de cómo los entrevistadores comunes me preguntaron sobre la complejidad de mi algoritmo y solo esperan que se me ocurra la respuesta de inmediato.

      No menciono la práctica de las preguntas de codificación porque la mayoría de las personas saben cómo hacerlo y dedicarán mucho tiempo a ello. Creo que vale la pena enfatizar la importancia de las habilidades básicas, que realmente hacen una gran diferencia.

      Aquí hay algunas sugerencias geniales en otras respuestas, que incluyen muchos libros para ayudarlo. Pero no te pongas demasiado tenso al entrar en la entrevista. Al final, desea que lo vean cómodo trabajando en la resolución de problemas, consciente de dónde puede haber problemas de rendimiento que necesiten más estudio y conocedor de los recursos que puede consultar para refinar una solución.

      En términos generales, le sugiero que sepa sobre hashing, almacenamiento en caché, indexación y el concepto de dividir y conquistar (por ejemplo, búsqueda binaria). No esperaría que codificaras un optimizador de programación lineal en el acto, pero seré capaz de reconocer cuándo tales técnicas conocidas serán o no aplicables. Reinventar un DBMS en la pizarra es menos impresionante para mí que mostrar cómo organizar los datos para que se pueda esperar que una base de datos relacional estándar se encargue del trabajo. Tenga en cuenta los problemas de escala (por ejemplo, las limitaciones de memoria y las demandas de la CPU. Un Gigabyte sigue siendo una gran parte de la memoria. Si su solución quiere 100 de ellos en RAM, tiene algunas explicaciones que hacer).

      Lo que quiero ver durante la entrevista es un bosquejo de un enfoque prometedor que no tiene ningún paso que básicamente diga “y luego ocurre un milagro”. ¿Qué prototiparía y mediría para confirmar la viabilidad de la solución?
      ¿Qué es el Plan B si el prototipo y la evaluación comparativa de la solución inicial no confirman la viabilidad de su plan? Obviamente, no vas a crear prototipos y puntos de referencia durante la entrevista. Pero desea demostrar que está preocupado por las cosas correctas y tiene ideas sobre qué hacer con ellas si dificultan el cumplimiento de los requisitos.

      Desde un punto de vista más novedoso, debe estar bien versado en matrices, pilas, colas, listas enlazadas y árboles binarios.

      Arreglos: – One-D, Two-D, Dinámico. Lógica + Algoritmo.

      Pilas: – ¿Cómo implementa recursiom la pila? Algoritmo.

      Cola: – Cola, cola prioritaria usando el montón.

      Lista vinculada: – Simple, doble, circular. Lógica + Algoritmo.

      Árbol binario: – Todos los tipos junto con la definición básica. Junto con AVL, Binary Search Tree, B Tree, B + Tree, etc. Algoritmo.

      Junto con eso, debes estar bien versado con los montones.

      También debe conocer los algoritmos de búsqueda y los algoritmos de clasificación.

      Algoritmos de búsqueda: – Lineal, Binario. Concepto de búsqueda por interpolación.

      Clasificación: – Burbuja, Selección, Montón, Rápido, Fusionar, Clasificación por inserción. Lógica + Algoritmo.

      Y los árboles de expansión mínima como Djikstra, Floyd Warshall, Bellman Ford, Max Flow-Min Cut, Vendedor ambulante, etc.

      Estos temas deberían ser suficientes para enfrentar la entrevista.

      Mis consejos para prepararse bien para las preguntas de DS
      – Compre un buen libro para Estructura de datos y Algoritmos, puede elegir cualquiera de estos libros principales de las listas Libros de estructura de datos y Libros de algoritmos buenos
      – Practica muchas y pierde preguntas
      hay muchos sitios buenos para eso, por ejemplo
      1. código leet
      2. geeksforgeek
      3. spoj
      4. TopCoder

      También puede ver algunas Estructuras de datos y Preguntas de entrevista de algoritmos para tener una idea, especialmente para los programadores de Java.

      ÁRBOL

      Ø

      Recorrido de orden en zig / zag (espiral) usando << Usar dos pilas >>

      Ø

      Vista derecha / Vista izquierda de un árbol binario

      Ø

      Altura / ancho de un árbol binario

      Ø

      Vista superior de un árbol binario << Usar cola para BFS >>

      Ø

      BFS – Recorrido de orden de nivel (usando QUEUE)

      Ø

      DFS: en orden, preordenar, posordenar (usando recursión o apilamiento)

      Ø

      Imprima todos los nodos a K distancia de la raíz. (Usar recursividad)

      Ø

      Imprima todos los nodos de hoja (utilizando cualquier BFS / DFS transversal): igual que la vista inferior de un árbol

      Ø

      Diámetro de un árbol (opcional)

      Ø

      BST, árbol binario completo, árbol sesgado, árbol BST equilibrado

      Ø

      Cree un árbol a partir del recorrido en orden y en preorden.

      Ø

      Compruebe que todos los nodos de hoja estén al mismo nivel o no

      Ø

      Verifique que el árbol dado esté equilibrado o NO

      Ø

      Verifique que el árbol dado sea BST o no.

      Formación

      Ø

      Todos los pares cuya suma recibe ‘K’ (Do in O (N))

      Ø

      Todos los pares cuya suma es divisible por “K” dada (Hacer en O (N) usando espacio adicional un Mapa de Hash)

      Ø

      Gire la matriz ordenada en el índice dado ‘k’ y luego encuentre la ‘Clave’ dada (Usando la Búsqueda Binaria solo O (LogN))

      Ø

      Clasificación de inserción (el mejor caso puede ser O (N) si las entradas ya están ordenadas)

      Ø

      Clasificación rápida (el peor de los casos puede ser O (N * N) si las entradas ya están ordenadas)

      Ø

      Ordenar fusión (siempre dar O (N logN) (Usa dividir y conquistar)

      Ø

      Búsqueda binaria (O (LogN) siempre solo si la entrada está ordenada) (Si hay duplicado, devolverá cualquier índice aleatorio de todos los duplicados de la clave dada)

      Ø

      Realice una búsqueda lineal O (N) para una matriz no ordenada pero con menos número de comparación utilizando una entrada vacía vacía al final de la matriz (muy famosa)

      Ø

      Invierta una entrada de matriz en el bloque en ‘K’ (igual que la lista vinculada inversa con un bloque de nodos de tamaño “k” dado)

      Lista enlazada

      Ø

      Encuentre el centro de la lista vinculada

      Ø

      Encuentre si hay un bucle en la lista vinculada o no.

      Ø

      Invertir la lista vinculada (recursiva e iterativa)

      Ø

      Encuentre el punto común de dos listas vinculadas (si se fusiona en algún momento)

      Apilar

      Ø

      Diseñe una estructura de datos para hacer PUSH, POP, MIN en O (1) tiempo (Use Two Stack)

      Ø

      Invierta la pila dada (ya sea usando una cola adicional o use doble recursión para un espacio constante)

      Ø

      Ordenar una pila dada (usar doble recursión con espacio constante)

      Hash-Map

      Ø

      Uso de Hash-Map (clave, valor) (resolverá muchos problemas complejos en O (1) complejidad de tiempo pero espacio extra)

      Montón

      Ø

      MIN Heap, MAX Heap (el árbol / matriz binarios completos, ambos pueden representar un montón)

      Ø

      Encuentra Kth Min / Max de un flujo de números dado.

      Ø

      Heap-Sort Basic

      Pregunta específica de Amazon

      GeekForGeek: http://www.geeksforgeeks.org/tra

      Relacionado con la matriz 2D Pocas preguntas Encuentre la fila con un máximo de 1s, encuentre un número dado en una matriz 2D ordenada

      Esto es suficiente. Solo cuide algunas cosas:

      No use ningún nombre aleatorio de variables I, j, x, y

      No uses ningún nombre de método irrelevante

      Intenta hacer una carrera en seco con todos los casos de prueba.

      Pregunte todo el tipo de entrada posible antes de comenzar a codificar.

      Al final, debe preguntar qué equipo está entrevistando y qué tipo de tecnología tienen.

      More Interesting

      ¿Qué debo hacer cuando me quedo atrapado en una entrevista de codificación?

      ¿Cuál según usted debería ser una buena manera de contratar programadores?

      Diseñe un contador web para dar cuántos hits por segundo, por minuto y por hora (es decir, ¿qué tipo de estructura de datos y algoritmo usaría para hacer esto?

      Subprocesamiento (informática): ¿cómo se puede implementar un bloqueo de grano grueso en una estructura de datos de lista enlazada individualmente?

      Cómo escribir un programa para los siguientes criterios

      ¿Qué debo decir cuando mi entrevistador pregunta las diferencias entre actividad y fragmento?

      ¿Cuánto tiempo lleva aprender a codificar una aplicación?

      ¿Qué se cumple en el medio algoritmo wrt programación competitiva?

      ¿Existe una parte de codificación remota o entrevista en el lugar para el puesto de pasantía de ingeniero de calidad de producto en Palantir Technologies?

      Se le da una lista de N intervalos. ¿Encuentra la longitud del subconjunto más grande de intervalos de modo que no haya tres intervalos en el subconjunto que compartan un punto común?

      ¿Qué tipo de preguntas se hacen en la entrevista IOCL de los ingenieros químicos?

      ¿Cuál es la lógica para aplicar la gravedad a un vector?

      ¿Cuál es la mejor manera de prepararse para las entrevistas de Java?

      ¿Cómo puedo programar una entrevista tecnológica para una empresa de tecnología de élite (Amazon / Google / Facebook)?

      ¿Qué tipo de preguntas se hacen en entrevistas para ingenieros electrónicos?