¿Cómo se pueden descifrar las entrevistas de codificación de Facebook, Google y otras grandes compañías de software? Tengo un currículum muy normal y por debajo del par CGPA. Conseguí un trabajo en una startup. ¿Dónde debo hacer más proyectos (desafiantes) para construir mi currículum?

En primer lugar, diría que a la mayoría de los entrevistadores no les importará su currículum vitae y su GPA, siempre y cuando no sea tan terrible porque he visto a muchas personas con un currículum increíble pero que fracasaron con la pregunta más fácil y no tengo forma de verificar Si el currículum es real. Entonces, para su primera pregunta, diría que puede hacer más proyectos para mejorar sus habilidades técnicas y ganar experiencias, pero si el propósito es tener un mejor currículum, no creo que sea necesario.

Luego me gustaría responder a su segunda pregunta sobre cómo prepararse para las entrevistas de esas grandes empresas.

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

Mucha gente también quiere recibir comentarios de buena calidad de entrevistadores experimentados. Con eso en mente, trabajamos en la construcción de http://www.gainlo.co
, lo que permite a las personas tener entrevistas simuladas con entrevistadores experimentados de las principales compañías como Google, Linkedin, etc. y recibirán 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. No prestes demasiada atención a tu currículum vitae y GAP, ya que difícilmente se pueden mejorar a corto plazo, en cambio, dedica la mayor parte de tu esfuerzo y tiempo a la preparación, lo que puede marcar una gran diferencia.

No es necesario que conozca todos los algoritmos y estructuras de datos. Todo lo que esperan es bastante rudimentario, pero requiere un poco de pensamiento inteligente para optimizar o terminar los detalles y las esquinas. He realizado más de 60 entrevistas durante mi tiempo en Google. Al entrevistar a los candidatos de nivel de entrada que están fuera de la universidad, se esperan 4 tipos de preguntas. Antes de esto, hay una evaluación sobre cómo verificar lo que ha escrito en su currículum. Algunos entrevistadores, especialmente yo, esperan que sepa más sobre su proyecto de investigación de lo que recuerdo 10 años después de que abandoné la universidad. Pero no importa mucho si el entrevistador está convencido de que ha trabajado en detalle sobre esos temas.

Para estudiantes de primer año, puede obtener más de (1) y (2).

  1. Algoritmo y estructuras de datos. Principalmente, un problema de programación dinámica simple que puede optimizarse varias veces. Como comenzar desde O (n ^ 4) hasta O (n). Algunos problemas se reducen a la búsqueda binaria si sabe qué buscar, por lo tanto, O (log (n)). Algunas personas otorgan puntos de bonificación si puede reducir aún más el uso de exponenciaciones matriciales. Prefiero problemas que tienen varias soluciones y niveles variables. Los problemas generalmente están bien calificados porque un entrevistador repite el problema con bastante frecuencia y sabe lo que se espera que sepa un buen candidato. Puede obtener una buena puntuación si realiza muchos ejercicios en lugar de aprender muchos algoritmos. La reducción a algoritmos más simples es más importante que conocer algoritmos avanzados.
  2. Un problema relacionado con la codificación. Este es un trabajo real, tengo que obtener los detalles correctos. Por lo general, solo comparto mi computadora portátil para que los candidatos la codifiquen. El problema suele ser un poco complicado, pero nada que requiera demasiado proceso de pensamiento. Porque el objetivo aquí es solo verificar si puedes poner los pensamientos en acción y no perderte en detalles.
  3. Diseño orientado. Se presenta un sistema bastante grande y se le pide que discuta qué componentes elegiría uno y por qué. Cómo cada uno de ellos habla entre sí, etc., para una vida más fresca, no esperamos mucho de esta ronda. Cuanto mejor lo haga, mayores serán las posibilidades de ser seleccionado. Siempre y cuando no se equivoque en esta etapa (si está más fresco) como si no supiera de qué hablar, estará bien.
  4. Discusión abierta. Asegúrese de seguir hablando y expresando ideas sobre cómo resolver un problema difícil. Así es como construirías un sistema de reserva de boletos de tren. Nos gusta saber cuánto sabes, qué tan obstinado eres. Qué tipo de fortalezas aportas al equipo, etc.

1 año es más que suficiente para prepararse para las entrevistas. La clave es que debes ser persistente y trabajar duro.

1.Trabaja un horario para codificar y resolver problemas algorítmicos durante al menos 1 hora al día

2. Pasando al aspecto técnico, recomendaría practicar los problemas de descifrar las entrevistas de codificación primero. Tiene algunos problemas realmente buenos. Intente resolverlo usted mismo primero. Intente optimizar su solución tanto como pueda. Cuando haya terminado con el problema, vea las soluciones que han dado al final y compare sus soluciones.

3. Ahora intenta practicar los problemas de cualquier juez de codificación en línea, no importa cuál sea. Mis favoritos personales son Hackerrank, Leetcode, GeeksforGeeks.

4. Un consejo más, codifique tanto como pueda. A veces puede pensar que ha encontrado el algoritmo correcto e implementarlo sería fácil, pero a veces es muy difícil implementar algunos. Por lo tanto, practique la codificación preferiblemente en algunos editores básicos como Vim, Gedit, etc. También practique la codificación de pizarrón, ayuda mucho durante las rondas en el sitio.

Lo que notará al final es que la mayoría de las preguntas de la entrevista son similares y, a veces, son una variación de lo que ha hecho.

Quiero decir “enseñar una clase de algoritmos”, pero no todos pueden hacer eso, así que solo te diré lo que eso implica:

  1. Lea todo CLRS, bueno, todas las partes que están cubiertas en las clases de algoritmos estándar. La mejor manera de leer un libro de texto es leerlo tres veces: una para obtener la idea general, una vez mientras tomas notas copiosas, y la tercera vez puedes leer tus notas en lugar del libro. (Si tiene buenos antecedentes matemáticos, este proceso debería llevar de seis a diez horas por capítulo).
  2. Practica muchos problemas; Recomiendo obtenerlos de Kleinberg y Tardos o The Algorithm Design Manual. (CLRS probablemente también tenga buenos problemas, pero rara vez los usé en mi clase porque era demasiado fácil para los estudiantes buscar las soluciones). Cuando haga problemas, debería enfocarse en los algoritmos y el análisis del tiempo de ejecución; las pruebas de corrección son una parte clave del material (y, en última instancia, así es como sabe que sus respuestas son correctas), pero nunca he visto a gente que me pida que pruebe la corrección en una entrevista. Además, asegúrese de escribir soluciones completas en lugar de simplemente pensar “así es como lo resolvería”, porque eso es lo que se espera que haga en una entrevista.
  3. Obtenga mucha práctica leyendo el código de otras personas y descubriendo errores sutiles. Esto lo ayudará a escribir código libre de errores en la pizarra, y naturalmente debería desarrollar esta habilidad después de unos meses / años de hacer revisiones de código en la industria o ser un algoritmo TA.
  4. Obtenga mucha práctica traduciendo sus pensamientos en código. Idealmente, desea poder codificar con fluidez y sin usar un IDE. Naturalmente, desarrollará esta habilidad trabajando en sus propios proyectos personales, pero podría ser más difícil de hacer en la industria si realmente no puede escribir mucho código o trabajar principalmente con abstracciones que solo se utilizan en su empresa. Si no tiene mucha experiencia en codificación, puede practicar en sitios web como TopCoder o HackerRank.

El proceso de entrevista estándar para empresas de desarrollo de productos como Amazon, Facebook, Google, Microsoft es el mismo. Puede prepararse de manera justa en 2 a 3 meses. Recibí una oferta preparándome usando la estrategia correcta.

Proceso completo

Entrevista de selección : todas las empresas tendrán típicamente una ronda de selección 1-2 antes de invitarlo a la ronda in situ. La ronda de selección podría ser telefónica o se le pedirá que complete un desafío de codificación. Esta ronda consiste en estructuras de datos de nivel básico a medio y preguntas de algoritmos.

Entrevista en el sitio : después de pasar la ronda de selección, se le pide que vuele hacia abajo para la entrevista en el sitio en la oficina de la compañía. La ronda en el sitio generalmente consiste en 3-4 rondas más de entrevistas. Esto consistirá en al menos 2 rondas técnicas, 1 ronda de diseño del sistema y 1 ronda de comportamiento, que generalmente toma el gerente de contratación del equipo.

¿¿Cómo preparar??

Estructuras de datos y algoritmos : este es el corazón de todas las entrevistas de empresas de desarrollo de software. Esto comprende el 50-70% de todas las preguntas de la entrevista. La capacidad de transmitir su conocimiento algorítmico junto con el código ordenado es imprescindible.

Entrevista de diseño del sistema : esta es una ronda de entrevistas muy importante. Esto será decisivo para su puesto y decidirá la compensación que recibirá en la empresa. Por lo general, hay una ronda.

Ronda de comportamiento : por lo general, se trata de preguntas generales de comportamiento que el gerente de contratación toma principalmente. Esto es igualmente importante para pasar

¿Qué preparar?

Estructuras de datos y algoritmos:

Array, Queue, Linked List, Tress, BST: intente comprender las estructuras básicas de datos y la complejidad del tiempo de ejecución y el espacio de la operación de inserción, eliminación y actualización. Intenta cubrir todas las preguntas estándar.

Codiciosos, programación dinámica, dividir y conquistar, los algoritmos de gráficos son muy importantes.

Fuente: GeeksforGeeks | Un portal de ciencias de la computación para geeks , leetcode, libro de entrevistas Cracking the Coding, Hackerrank, Hackerearth, Interviewbit (para practicar en tiempo real).

Entrevista de diseño del sistema

Por lo general, la pregunta que se hará será diseñar una aplicación de mensajería, uber, bookmyshow o redes sociales.

El candidato debe poder señalar primero la funcionalidad junto con el diseño técnico.

Puntos importantes: diseño de base de datos, escalabilidad, diseño de caché, elección del servidor, sql vs no sql db, infraestructura distribuida y cdn.

Fuente: http://Scalability.com , Success in Tech (canal de youtube), Tushor Roy (canal de youtube), https://github.com/checkcheckzz/… (enlace de github)

He hecho un video completo sobre este tema. Cómo descifrar la entrevista de Amazon, Facebook, Google, Microsoft

Aquí está lo que tú necesitas hacer

1: Primero aprenda todo sobre el proceso de entrevista técnica: Herramientas y tácticas para su próxima entrevista

2: Aprenda sobre entrevistas telefónicas: Preguntas y respuestas de entrevistas telefónicas

3: Aprende a crear un Cv increíble: consejos para escribir un CV único

4: Aprenda cómo solicitar empleo: ¿Cómo obtener invitaciones para entrevistas?

Y finalmente revisa estas preguntas

Preguntas de la entrevista de matriz de Java

Preguntas de la entrevista de Java Linked List

Preguntas de la entrevista de algoritmos de Java

Preguntas de la entrevista de patrones de diseño de Java

Preguntas de la entrevista de Java Hashmap

Preguntas de la entrevista de herencia de Java

Preguntas de la entrevista de Java MultiThreading

Buena suerte

Ciertamente, puede comenzar leyendo literalmente “Entrevista de descifrado de codificación”: Entrevista de descifrado de codificación: 150 Preguntas y soluciones de programación: Gayle Laakmann McDowell: 9780984782802: Amazon.com: Libros

Gayle Laakmann McDowell ya ha respondido esto. Eche un vistazo a ¿Cuáles son algunos buenos libros sobre la limpieza de entrevistas técnicas?

Comience comprando libros como estos:
http://www.amazon.com/Cracking-C