¿Cuál es la pregunta de entrevista de programación más difícil que le han hecho?

Hay muchas preguntas de entrevistas de programación súper difíciles, pero no son buenas preguntas. Por ejemplo, “encontrar la mediana de dos matrices ordenadas” es una pregunta muy difícil de codificar, pero no es apropiado preguntar ya que muy pocas personas pueden escribir código libre de errores la primera vez.

En mi humilde opinión, una pregunta que es buena y difícil generalmente parece simple a primera vista, pero con más análisis y discusión, la pregunta se vuelve cada vez más difícil. Un buen ejemplo es Subarray With Given Sum. La pregunta comienza con números no negativos y con la búsqueda de un subconjunto continuo con una suma dada . Sin embargo, puede generalizarse eliminando ambas condiciones y se convierte en un problema DP.

Además, otro tipo de preguntas es una especie de respuesta abierta. En proyectos de la vida real, es raro tener una opción mucho mejor que la otra. Por lo general, las personas pasan mucho tiempo discutiendo los pros y los contras de cada solución y encuentran la que funciona “mejor” en un escenario específico. Por ejemplo, muchas preguntas de diseño de sistemas como “cómo diseñar Twitter” son bastante abiertas y hay muchas maneras de evaluar las habilidades de comunicación y análisis de un candidato en el medio.

Estoy siguiendo este blog que tiene una gran colección de preguntas y análisis de entrevistas de codificación. Me ayudó mucho cuando estaba buscando trabajo.

Algunas preguntas difíciles no merecen nuestro tiempo, especialmente no me gustan las preguntas que requieren demasiado conocimiento previo de un campo específico, a menos que esté entrevistando esa posición.

¿Cuál es la pregunta de entrevista de programación más difícil que le han hecho?

Imagina que estás en medio de una ronda técnica para una startup tecnológica y te estás preparando técnicamente durante unos meses.

Estás listo y esperando cualquier pregunta técnica.

Estás lleno de confianza y entusiasmo.

Entonces, de repente, de la nada.

Entrevistador: ¿Cuáles son tus logros como ser humano? No como desarrollador, no como tu título, sino como ser humano.

Yo :

Estuve literalmente en blanco por unos momentos.

Luego traté de decir algo, pero nuevamente atónito por unos momentos más.

Y el entrevistador estaba literalmente disfrutando de mis expresiones.

Después de dos o tres minutos de diversión.

Entrevistador: Déjame reformularlo para ti .

Yo: ** suspiro de alivio **

Entrevistador: Defínete como ser humano.

Mi mente: ¡Yaay! Ahora entiendo la pregunta. ¡GRACIAS por hacerlo más fácil para mí !

Realmente luché con The Two Egg Problem cuando me entrevisté en Google.

Es bastante complicado, y toca la convergencia en una serie (al menos la forma en que lo hice con mi entrevistador), con lo que no me siento muy cómodo.

Existe el clásico, ¿ dónde te ves en 5 años ?

Solo quiero responder, no estar más gordo de lo que estoy ahora. Todavía casado. Ten buena salud. Aún tengo trabajo. Sigo disfrutando lo que hago. No pelear en las trincheras de WW 3.

Por lo general, esta pregunta es para ver si tiene objetivos, si desea estar en la alta dirección, al menos un gerente de proyecto. Odio mucho esta pregunta. Incluso lo odio más que preguntas ilegales como, bueno, cuéntanos sobre ti, ¿estás casado, tienes hijos? ¿Por qué tengo esta pregunta?

Porque no quiero empujar papeles. No quiero ascender. Absolutamente no quiero estar a cargo de las personas. Tengo algunos amigos que están a cargo de las personas y los escucho por teléfono, ¿POR QUÉ? ¿Por qué dejaste esa base de datos? ¿Quién te dijo que pusieras el servidor fuera de línea? ¿Por qué está apagado ese servidor? ¿Qué quieres decir con que no te pusiste los tornillos de la llanta cuando cambiaste los neumáticos? El jeep se fue con los pasajeros. Al menos en este momento, no quiero subir la escalera, no porque me falta orgullo o falta de ambición, soy muy ambicioso, simplemente diferente, quiero ser mejor en mi trabajo, ser un mejor programador / sysadmin / dba de lo que era ayer, y disfruto tanto programar, que no puedo creer que alguien me esté pagando por hacer esto, estaría programando incluso si viviera el garaje de mis padres.

Pero siempre tengo la sensación de que se piensa que no tengo ambición.

Digamos que tiene una lista de coordenadas cartesianas como ciudades en un mapa y le voy a dar algunas coordenadas de referencia y necesita decirme cuál es el punto más cercano en la lista a esa referencia. ¿Cuál es una manera eficiente de buscar eso?

No digo que esto sea particularmente difícil, pero es el más difícil que me han preguntado. La mayoría de las entrevistas son, duh, ¿tienes experiencia con esta tecnología oscura en particular que amamos por aquí?

He estado en entrevistas con algunas compañías, esas son algunas que encontré interesantes:

Microsoft no es difícil, son solo preguntas. Hacen preguntas creativas, de proyectos de diseño, DS y algoritmos. El único problema es mantener la calma durante todo el proceso, la última entrevista son 4 entrevistas largas.

Facebook fue un poco difícil porque el entrevistador no habló mucho. Era pura codificación, y generalmente estoy nervioso por las entrevistas.

Nokia fue el más fácil, pero debes estar preparado para la tarea. Preguntan lógica, algoritmos, estructura de datos, patrones de diseño, preguntas técnicas de codificación. En mi caso, no hice bien las preguntas sobre el kernel de Linux y la programación de bajo nivel.

Dadas dos expresiones regulares, calcule la distancia de edición entre ellas. La distancia de edición se define como la distancia de edición más pequeña entre dos cadenas generadas por las dos expresiones regulares, respectivamente.

Tenía esta pregunta que me dejó boquiabierto para el resto de la sesión de entrevista:
“Explique tanto como pueda lo que sucedió en la computadora / sistema operativo / jvm cuando hace doble clic / ejecuta el archivo JAR”

Hace un tiempo estaba trabajando en un producto de software especializado llamado IBM WebSphere Commerce. Como tenía una experiencia muy limitada, pensé en buscar empleos que solo requieran habilidades de lenguaje de programación y no el conocimiento de ningún producto específico. Les dije claramente a los reclutadores que aunque tengo experiencia con productos en mi currículum pero no estoy buscando trabajo en esa área específica. Así que se concertó una entrevista con una empresa de buena reputación.

Entrevistador: cuéntenos algo sobre su experiencia con Websphere Commerce.
Yo – Blah Blah Blah, pero tengo una experiencia muy limitada y, por lo tanto, busco trabajos que solo requieren habilidades de Java.
Entrevistador: ¿Entonces por qué solicitó este trabajo?
Yo: no estoy seguro de por qué se envió mi perfil para estos puestos, pero expresé mi intención muy claramente al reclutador.
Entrevistador: ¿le importaría si le hago algunas preguntas relacionadas con Websphere Commerce?
Yo, no creo que pueda pasar. Ok si quieres preguntar.
Entrevistador – Blah Blah Blah.
Yo – ________________________.
Entrevistador: nos pondremos en contacto con usted en caso de que necesitemos un desarrollador de Java.

Hablé con el reclutador.

Reclutador – ¿Cómo fue la entrevista?
Yo: ¿por qué enviaste mi currículum vitae para los puestos de Comercio de Websphere cuando no necesito habilidades?
Reclutador – ¿Lo es? ¿Te entrevistaron en Websphere Commerec? Déjame consultar con ellos.
Yo bien
Reclutador (después de un tiempo) – Realmente lo siento. ¿Le importaría prepararse un poco y aparecer en la posición de comercio de websphere después de un tiempo?
Yo – GRACIAS

Necesitamos su experiencia en código, usted es un excelente programador y aportaría algo excelente a nuestra empresa. Sin embargo, todavía somos jóvenes y buscamos fondos confiables, así que, mientras tanto, ¿cómo te sientes acerca de que te paguen maní?

– Muchas entrevistas de programación de las que he sido parte.

(Respuesta semi humorística. Anon porque algunos de los tipos que intentaron contratarme por poco dinero navegan por este sitio y no quiero drama en mi bandeja de entrada).

Una vez tuve para una compañía llamada GXS. Hicieron las preguntas más básicas en programación que fueron muy complicadas y al final, agitaron por completo mis conceptos de programación.

En el que no me escuchaban. Solo era diseñador en aquel entonces y apenas sabía HTML.

Seguían pidiéndome que escribiera JavaScript desde mi cabeza en una pizarra. Repetidamente. Es como si no creyeran que no podía escribir código y estaban esperando que brille el brillo. Me mantuvo allí todo el día cuando terminé en los primeros 10 minutos.

La última vez traté de conseguir un trabajo de diseño con alguien conectado remotamente a MicroSoft. Algunas personas simplemente no escuchan.

Y antes de preguntar … Había solicitado un trabajo de diseño.

Imagine que tiene un árbol de nodos como:

  nodo de estructura {
     struct tree_node * left;
     struct tree_node * right;
     datos nulos *;
     nulo * puntero;
 }

El puntero void * es un auxiliar para que pueda cambiar la estructura de datos si lo desea. Entonces, eso es lo que vas a hacer.

Conecte todos los nodos en cada nivel usando ‘void * pointer’, sin cola auxiliar ni pila (O (n) complejidad de tiempo, O (1) complejidad de espacio);

Dado un vector de puntos de interés: detecte la aparición de 34 cortes DD en cualquier imagen de entrada