una software programador preguntas para informatico frecuentes entrevista ejemplo developer desarrollo aplicaciones iphone objective-c mobile-phones

iphone - software - Preguntas de la entrevista para desarrolladores móviles, que un desarrollador no móvil puede hacer



preguntas para entrevista programador (6)

Necesito entrevistar a algunas personas para una posición de desarrollador móvil (iphone) pronto. El problema es que mi fortaleza está en el desarrollo web de Java.

¿Qué preguntas debo hacer sin sonar como un idiota? Además, ¿cuáles son las respuestas válidas a estas preguntas?


Limítate a evaluar los rasgos que legítimamente puedes evaluar. Pregunte a otra persona con conocimientos para juzgar lo que usted no puede.

Además, puede pedirle al candidato que le explique sobre el desarrollo del iPhone, explicarle que no está familiarizado con él y juzgar la respuesta: ¿el candidato es arrogante? Candidato se emociona al respecto? Candidato puede explicar claramente la línea de pensamiento? Candidato "tiene sentido"? Todos estos son rasgos que puede juzgar legítimamente y son importantes para cualquier posición.

De nuevo, no trates de evaluar lo que tú mismo no sabes.


No les haga preguntas sobre áreas en las que no entiende las respuestas lo suficientemente bien como para incursionar. Eso es buscar problemas (un recitador de memoria de memoria y / o un trabajo de nieve rápida).

Encuentre un terreno común, incluso si tiene que volver a los conceptos básicos de programación o diseño de aplicaciones / prueba / depuración / metodología de control de calidad, etc. Busque en sus respuestas en un área que comprenda bien. Solo entonces sabrás si te están alimentando o no.

Un desarrollador de iOS ya debería tener una aplicación en la tienda. Míralo antes de la entrevista y pregúntales sobre cualquier parte en la que puedas entender el objetivo o la tecnología subyacente (redes, gráficos, etc.)

Luego, puede pedirle al candidato que explique las diferencias clave entre su terreno común y su especialidad que no conoce (móvil, etc.). ¿Por qué Objective C, UIKit, Xcode (etc.) hacen las cosas de manera diferente a la codificación de tierra común XYZ? Vea si pueden explicarlo claramente de manera que usted lo entienda (puede buscar las respuestas en Google más adelante para ver si lo guiaron en la dirección correcta).


Pégalos delante de una máquina que ejecuta Xcode. Luego, pídales que escriban una aplicación básica y la ejecuten.

Cosas que posiblemente pongan en dicha aplicación:

  • cargar una imagen de un sitio web manteniendo la interfaz de usuario receptiva
  • editando una vista de tabla; Ser capaz de eliminar una fila con animación y reordenarla.

O, vaya con algo básico como:

  • un simple editor de texto
  • una calculadora

Una vez que la aplicación se está ejecutando, intente cosas como rotar el dispositivo. Vea cómo reacciona la persona. ¿Se dan cuenta de cómo solucionar cualquier error? ¿Cuan rápido? ¿Dónde buscan soluciones si no saben lo que les falta? ¿Utilizan la documentación, o simplemente copian / pegan el código de alguna parte?

No intentes que la persona cree una aplicación completa. En otras palabras, asegúrate de seguir con algo básico . De lo contrario, será completamente contraproducente. Es un poco de presión, pero nada que un desarrollador con experiencia no pueda manejar.


Pensé que pedir un código de ejemplo (idealmente antes de la entrevista) sería un ejercicio valioso, especialmente si le pide al entrevistado un ejemplo independiente.

Si bien no estará familiarizado con los matices de Objective-C, aún puede evaluar el grado en que el entrevistado comenta su código y las partes del código que no son de Cacao / UIKit no serán tan diferentes de Java o de ninguna otra forma. otro idioma OO.

Más allá de eso, como @Arrieta implica que es probablemente mejor evitar aspectos específicos del idioma y centrarse en su enfoque general para la resolución de problemas, etc.


WOW esta respuesta tiene cinco años. Para el 2015, solo preguntaría:

  • La respuesta para el OP aquí es algo como "autolayout, autolayout, autolayout" . En bienes raíces, tiene la frase "ubicación, ubicación, ubicación"; en el desarrollo de iOS es "autolayout, autolayout, autolayout". Como un asunto práctico de la vida real, digamos que estás buscando a alguien para un trabajo independiente. En la práctica, lo único que le piden que muestre es que son expertos en autolayout y problemas asociados, como el uso de restricciones en el código, etc.

  • ¿Es usted un experto en PubNub, Firebase, Parse y sistemas similares? Baas "es ingeniería de iOS" hoy. Para aprender iOS hoy, es, aprender a conectarse a un baas; freelance en iOS es hacer trabajos de baas.

  • Idealmente, también tiene familiaridad con el desarrollo de Android, al menos tiene Android Studio en su Mac y puede crear una aplicación trivial para su Samsung; para que puedas interactuar con colegas.

Aquí está la vieja respuesta! ...

Si fuera yo, les preguntaría ...

están completamente familiarizados con estos diez puntos clave :

  • XCode (e idealmente se trata de herramientas de depuración)
  • Generador de interfaz
  • enviar aplicaciones a la tienda de aplicaciones, todo lo que implica (certs, bla, bla)
  • en objetivo-C, usando propiedades al revés
  • en objetivo-C, usando delegados de adentro hacia afuera
  • conectando con ASIHttpRequest {¡esta respuesta realmente tenía cinco años!} , AsyncSockets, GameKit, Bonjour
  • comprensión total de subclases
  • conceptos básicos como CoreAnimation y CoreData
  • "Todas las interfaces usuales" en iOS como UITableView, etc., etc.
  • Todo, de arriba a abajo, sobre la gestión de la memoria.

Creo que es una buena lista de inicio. (Si he olvidado algo obvio, pronto será sugerido).

Tenga en cuenta que el elemento 10, gestión de memoria, es el elemento crítico. Simplemente no puede crear aplicaciones de dispositivos móviles de producción terminadas a menos que sea un experto en memoria en su plataforma. Además, alguien que es realmente bueno en la administración de memoria del iPhone es generalmente bueno en todo lo demás en el iPhone. ¡Si solo pudiera preguntar una cosa, eso es todo!

También hay una docena de cosas pequeñas que debes desarrollar para iPhone, por ejemplo, "preferencias", "acelerómetro", "íconos y pantallas de inicio", "sonidos de reproducción", y así sucesivamente. Debes poder hacer todo eso en cinco minutos, no en cinco días de investigación. Es bastante duro en realidad. Alguien probablemente podría enumerar todos estos "must must have menor".

Un tema quizás un tanto separado del especialista es OpenGL . Dependiendo de lo que les esté pagando y de lo que necesite, puede exigir a alguien que, además, sea un experto en OpenGL.

¿Es el desarrollo de juegos de campo de su empresa? Si es así, es perfectamente probable que, además, como desarrollador "total" de juegos para iPhone, es posible que necesites a alguien que, además, ya sea completamente experto en

  • Unity3D (para 3D, etc.)
  • los paquetes populares de física (2D) (por ejemplo, ardilla, etc.)
  • De una forma u otra, el lado del servidor de los sistemas cliente-servidor

Así que eso es todo. Una pregunta es: ¿Qué ESPECÍFICAMENTE va a hacer (en términos generales)? es decir, computación científica, desarrollo de juegos, aplicaciones de marketing para enriquecerse, catálogos internos, clientes de mano o? Si usted nos dice que podemos decirle lo que necesitan.

Y, finalmente, de manera abrumadora, tendrías que poder ver más de 3 aplicaciones reales que han hecho. Con el iPhone, realmente necesitas poder "llevarlo a casa", escribir buenos fragmentos de código no es suficiente, ¿sabes? Es duro.

¡Aquí está la lista de "cosas que olvidamos en los diez puntos críticos" que comienzan!

  • Matt señala que deberían sentirse cómodos con "MVC", que significa pensamiento de modelo-vista-controlador. (Esto es una especie de culto fascista en el mundo de iOS. ¡Todos nos adherimos! No podemos decírtelo hasta que sea uno de nosotros. Si su cara se ilumina cuando menciona MVC, está todo listo. Oscurece e incómodo, sigue adelante ...)

  • David y Brad señalan que, tal vez a diferencia de otros campos de programación, los programadores de iPhone y Mac generalmente necesitan un sentido de la interfaz . Necesitas tener una idea de la interfaz limpia del iPhone, debes saber cómo diseñar cualquier problema particular en el iPhone usando los elementos de iOS que se suman a la experiencia del usuario del iPhone.


Ya deberían haber trabajado en una aplicación o dos (aunque solo sea por ellos mismos), pídales que expliquen la estructura de la misma. Debería poder comentar de forma inteligente sobre la organización de las clases y, con suerte, conocerían algún UML para poder describir el diseño de la clase o las rutas de las llamadas.