Tengo una entrevista in situ con Apple para un ingeniero de calidad de software a tiempo completo en python en Santa Clara, CA. Algún consejo sobre las preguntas de la entrevista técnica que puedo esperar?

Una cosa que debes tener en cuenta es que todas las entrevistas técnicas tienen dos aspectos en cuenta: el aspecto conductual, y el aspecto técnico.

El aspecto conductual a menudo implica preguntas que no son de naturaleza técnica y están ahí para ver si encajas en la cultura de la empresa, mientras que el aspecto técnico necesita una base sólida de conocimientos tanto en DS&A como en diseño de sistemas.

Algunas de las preguntas que puedes esperar del aspecto conductual son:

#1 PREGUNTAS DE CONDUCTA DE APPLE

  • Describe un momento en el que hayas estado en desacuerdo con un miembro del equipo. ¿Cómo resolviste el problema?
  • ¿Quién te ha inspirado en tu vida, y por qué?
  • Cuéntame un momento en el que hayas tenido que trabajar con una persona difícil o disruptiva.
  • ¿Has cometido alguna vez un error?
  • ¿Cómo probarías tu app favorita?
  • ¿Qué papel asumes cuando trabajas dentro de un equipo?
  • ¿Qué es más importante, arreglar el problema del cliente o crear una buena experiencia para el cliente?
  • Cuéntame alguna vez que hayas fracasado.
  • Cuéntame alguna vez que no hayas cumplido tus objetivos.
  • Cuénteme un error grave que haya cometido en el trabajo y cómo lo manejó.
  • Explique una ocasión en la que tomó la iniciativa en un proyecto.
  • Si lo contratamos, ¿en qué quiere trabajar?
  • ¿Es usted alguien que aprende de los fracasos?
  • ¿Has trabajado alguna vez con un equipo?
  • Cuando entras en una Apple Store como cliente, ¿qué notas en la tienda/cómo te sientes cuando entras por primera vez?
  • Cuéntame alguna vez en la que hayas utilizado la creatividad para superar un dilema.
  • ¿Cómo abordas los problemas? ¿Cuál es su proceso?
  • Cuénteme una ocasión en la que haya resuelto un problema para un cliente frustrado.
  • Describa cómo utilizó sus habilidades de resolución de problemas para beneficiar a un equipo o a una empresa.
  • ¿Cuál es su mayor arrepentimiento en el trabajo?
  • ¿Qué le trae aquí hoy?
  • ¿Es usted creativo? ¿Qué es lo más creativo que se te ocurre?
  • ¿Cuál fue tu mejor día en los últimos 4 años? ¿Cuál fue el peor?
  • Cuéntame una decisión de la que te hayas arrepentido y cómo la superaste.
  • ¿Qué te gustaría hacer dentro de 5 años?

Para conocer con más detalle las habilidades blandas y el aspecto conductual, puedes utilizar Pramp, un sitio que te permite participar en simulacros de entrevistas con otros ingenieros de software (algunos de los cuales han trabajado antes en Google y Facebook) mientras recibes comentarios inmediatos y objetivos sobre tu rendimiento.

A continuación, están las preguntas que Apple podría hacerte sobre el aspecto técnico. Por ejemplo, puedes esperar que te pregunten:

#2 PREGUNTAS TÉCNICAS DE APPLE

  • Cuenta el número de enteros positivos menores que N que no contengan el dígito 4.
  • Explica los árboles binarios y sus aplicaciones.
  • Dado un array de enteros, escribe una función que ajuste cada entero para que la diferencia de cada entero adyacente para que no sean mayores que K.
  • Dado un array de enteros y un rango (bajo, alto), escriba una función que encuentre todas las subsecuencias continuas del array que tengan una suma en el rango.
  • ¿Cómo dividiría una consulta de búsqueda en varias máquinas?
  • A nivel de Kernel, ¿cómo escribiría un analizador de fugas de memoria y cómo lo implementaría?
  • Escriba un algoritmo que encuentre el siguiente nodo (sucesor post-orden) de un nodo dado en un árbol binario y BST, donde cada nodo tiene un enlace a su padre y sin un puntero al padre.
  • Escriba un programa para implementar una lista de doble enlace desde una pila con una complejidad mínima.
  • Diseñar un sistema de aparcamiento en el que se necesite proporcionar un token con el número de plaza de aparcamiento a cada nueva entrada de la plaza más cercana a la entrada.
  • Implementar una estructura de datos tipo vector desde cero.
  • Dada una lista de cadenas, escribir una función que produzca una lista de los sufijos comunes más largos.
  • Escribir una función que elimine todos los espacios de una cadena. (Explique la eficiencia de espacio y tiempo de su solución)
  • Escriba una función que almacene un conjunto de resultados de torneos de muerte súbita y un conjunto de resultados de partidos predichos en un formato compacto. A continuación, puntúe las predicciones, dando un punto por cada partido adivinado correctamente.
  • Teniendo dos matrices ordenadas de valores muy grandes y distintas, escriba una función que encuentre el valor medio de las dos matrices.
  • Dado un array ordenado que contenga la edad de cada persona en la Tierra, escriba una función que determine cuántas personas tienen cada edad.
  • ¿Cuándo utilizarías una lista enlazada y cuándo una lista de matrices?
  • Diseña una partida de ajedrez.
  • ¿Cuál es la complejidad algorítmica big-O de las operaciones de inserción, borrado y búsqueda en una tabla hash?
  • Dada una lista de enteros, escribe una función que encuentre todos los pares de números que sumen menos o igual que K.
  • Escribe una función que inserte un elemento en una lista circular enlazada ordenada.
  • Dada una matriz booleana, escriba un algoritmo que determine si una isla de 0s está completamente rodeada de 1s.
  • Dados dos árboles, escriba una función que determine si el árbol #2 es la imagen especular del árbol #1.
  • Dado un árbol de búsqueda binario de enteros, escriba una función que devuelva el número de nodos que tienen valores entre N y M.
  • ¿Cuál es la complejidad algorítmica Big-O de las operaciones de inserción, borrado y búsqueda en un árbol binario?
  • Dado un conjunto de intervalos, escriba una función que encuentre el conjunto de intervalos que se solapan.

Algunas de estas preguntas pueden ser bastante difíciles, como probablemente pueda deducir, por lo que le convendría estudiar la teoría DS&A antes de tener su entrevista. Dos recursos que pueden ayudarte son Introduction to Algorithms (CLRS), un libro de estructuras de datos y algoritmos extremadamente detallado y conocido que debería tratarse como una enciclopedia de algoritmos, y Cracking The Coding Interview, un libro clásico de preparación de entrevistas que tiene preguntas de codificación específicas de la empresa para resolver.

También habrá algunas preguntas relacionadas con el diseño en tu entrevista, por lo que yo recomendaría estudiar la teoría del diseño de sistemas para poder responderlas. Una forma de hacerlo es utilizando Tech Interview Pro, un programa de preparación de entrevistas diseñado por un antiguo SWE de Google y Facebook que tiene dos módulos en profundidad sobre diseño de sistemas, y Sphere Online Judge (SPOJ), una plataforma de jueces online con decenas de miles de problemas relacionados con el diseño para resolver.

Mucha suerte con tu entrevista en Apple.