2010-12-08 24 views
17

Necesito entrevistar pronto a algunas personas para un puesto de desarrollador móvil (iphone). El problema es que mi fortaleza está en el desarrollo web de Java.Preguntas de entrevista de desarrollador móvil, que un desarrollador no móvil puede solicitar

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

+1

+1 gran pregunta !!! – Linuxmint

+1

Buena pregunta, pero yo diría que podría ser más apropiado para [Programadores] (http://programmers.stackexchange.com/) que aquí. –

+0

debe haber una insignia para ganar una insignia en una pregunta no constructiva – mkoryak

Respuesta

18

WOW esta respuesta es de cinco años. Para el año 2015, yo sólo pregunto:

  • La respuesta para el PO aquí es algo así como "diseño automático, el diseño automático, el diseño automático". En el sector inmobiliario, 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, supongamos que está buscando a alguien para un trabajo independiente. En la práctica, lo único que les pides que muestren es que son expertos con el diseño automático y problemas asociados, como el uso de restricciones en el código, etc.

  • Eres totalmente experto con PubNub, Firebase, Parse y sistemas similares ... baas "es la ingeniería de iOS" de hoy. Aprender iOS hoy, es, aprender a conectar con un baas; para freelance en iOS es para hacer trabajos de baas.

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

Aquí está la respuesta de edad! ...


Si fuera yo, yo les preguntaría ...

son ellos completamente familiarizado con estas DIEZ PUNTOS CLAVE:

  • XCode (y herramientas idealmente está depuración)
  • Interface Builder
  • enviar aplicaciones a la tienda de aplicaciones, todo lo que implica (certs, blah blah)
  • en el objetivo C, usando propiedades de adentro hacia afuera
  • en Objective-C, utilizando los delegados de adentro hacia afuera
  • redes con ASIHttpRequest {esta respuesta ha sido cinco años!}, AsyncSockets, GameKit, Bonjour
  • comprensión total de la subclasificación
  • básico como CoreAnimation y CoreData
  • "todas las interfaces habituales" en iOS como UITableView, etc, etc
  • todo, de arriba hacia abajo, sobre la gestión de memoria

creo esa es una buena lista de inicio. (Si se me ha olvidado algo obvio, que pronto será sugerido.)

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

También hay una docena de pequeñas cosas que tienes que tener al dedillo desarrollar para iPhone - por ejemplo, "Preferencias", "acelerómetro", "iconos y pantallas de inicio", "reproducir sonidos", y por lo incesantemente. Tienes que poder hacer todo eso en cinco minutos, no en cinco días de investigación. Es bastante difícil realmente. Alguien podría enumerar todos estos "must-haves menores".

Un problema quizás algo separado de especialista es OpenGL. Dependiendo de lo que les pague y de lo que necesite, puede demandar a alguien que sea, además, un experto de OpenGL.

es el campo juegos de desarrollo de su empresa? Si es así, es perfectamente posible que, por otra parte, como un "total" juegos de iPhone desarrollador, es posible que necesite a alguien que es, también, ya completamente experto con

  • Unity3D (para 3D, etc)
  • la física populares (2D) paquetes (por ejemplo, de ardilla, etc)
  • un modo u otro, el lado del servidor de sistemas cliente-servidor

Así que eso es todo.Una pregunta es: ¿QUÉ ESPECÍFICAMENTE va a hacer (en términos generales)? es decir, informática científica, desarrollo de juegos, aplicaciones de marketing para enriquecerse, catálogos internos, clientes de mano o? Si nos dices, podemos decirte lo que necesitan.

Y, por último, abrumadoramente, tendría que poder ver 3+ aplicaciones reales que ya han hecho. Con el iPhone, realmente necesitas poder "llevarlo a casa", escribir buenos fragmentos de código no es suficiente, ya sabes. Es duro.


Aquí está el "cosas que se olvidó en los diez puntos críticos" lista ya que comienzan!

  • Matt señala, deben ser cómodos con "MVC", que significa pensar modelo-vista-controlador. (Esto es una especie de culto fascista en el mundo de iOS: ¡todos nos adherimos! No podemos contarle nada hasta que seas uno de nosotros. Si su cara se ilumina cuando mencionas MVC, ya estás listo. Si oscurecer e incómodo buscando, seguir adelante ...)

  • David y Brad señalan que - quizás a diferencia de otros campos de programación - iPhone y Mac programadores suelen necesitar un sentido de la interfaz. Necesita una interfaz limpia para iPhone, debe saber cómo diseñar un problema particular en el iPhone con los elementos de iOS que se agregan a la experiencia del usuario de iPhone.

+0

en iOs es UITableview not NSTableView ;-) –

+3

Creo que esos son buenos puntos, pero definitivamente agregaría el enfoque MVC a esa lista. – Matt

+4

+1 Gran respuesta. Dicho esto, no veo cómo alguien sin ningún conocimiento de lo anterior podrá evaluar las respuestas más allá de hacerse una idea de si el entrevistado confía en su propia experiencia/nivel de conocimiento. –

9

Limítese a evaluar los rasgos que puede legítimamente, bueno, evaluar. Pídale a otra persona conocedora que juzgue lo que no puede.

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

De nuevo, no intente evaluar lo que usted mismo no sabe.

+0

Re: De nuevo, no intente evaluar lo que usted mismo no sabe. - No tienes esa opción. todavía no hay desarrolladores de iPhone trabajando aquí – mkoryak

+2

@Joe Blow: "estas cosas artísticas sobre la emoción no hacen que se disparen cohetes", me permito diferir. ACTITUD es la diferencia entre un buen programa espacial y uno malo. Cualquiera puede integrar una ecuación diferencial (con el entrenamiento correcto), pero se necesitan pelotas y actitud para decir "ahora envía esta mierda a Marte y hazla impecablemente". La diferencia entre las buenas personas técnicas y los grandes científicos de cohetes no es una habilidad técnica (dada una referencia mínima) es el entusiasmo, la camaradería y la actitud, en mi humilde opinión. – Escualo

+0

@mkoryak: ¿no sería mejor que subcontratara la parte técnica de la entrevista? Preferiría pagar por alguien para evaluar a un candidato, que estar atrapado con un empleado que no puede hacerlo realidad. Sin embargo, estoy de acuerdo en que la solución pragmática puede ser "perfeccionar" los aspectos técnicos y hacerlo usted mismo, pero esa solución "pragmática" parece un poco arriesgada. – Escualo

4

Hubiera pensado que pedir un código de muestra (idealmente antes de la entrevista) sería un ejercicio que vale la pena, especialmente si le pides al entrevistado un ejemplo independiente.

Aunque 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 que no son de Cocoa/UIKit del código no serán tan diferentes de Java o, de hecho, cualquier otro lenguaje OO.

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

4

no les hacen preguntas acerca de las áreas en las que no entiende las respuestas lo suficientemente bien como para cavar. Eso es buscarse problemas (un recitador memoria mecánica y/o un trabajo de nieve simplista).

Encuentre un terreno común, incluso si tiene que volver a los principios básicos de la programación de programación de aplicaciones/pruebas/depuración/QA, etc. Explore sus respuestas en un área que comprenda bien. Solo entonces sabrás si te están alimentando galimatías o no.

Un desarrollador de iOS ya debería tener una aplicación en la tienda. Échale un vistazo antes de la entrevista y pregúntale en qué partes puedes entender el objetivo o la tecnología subyacente (redes, gráficos, etc.)

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

2

Deberían haber trabajado ya en una o dos aplicaciones (incluso si solo para ellos mismos), pídales que expliquen la estructura de la misma. Debería poder comentar inteligentemente sobre la disposición de las clases, y con suerte ellos sabrían algo de UML para poder describir el diseño de la clase o las rutas de las llamadas.

5

Colóquelos frente a una máquina con Xcode. Luego, pídales que escriban una aplicación básica y la ejecuten.

cosas para poner posiblemente en dicha aplicación:

  • cargar una imagen desde una página web, manteniendo la interfaz de usuario sensible
  • la edición de una vista de tabla; siendo capaz de eliminar una fila con la animación y la reordenación que

O, ir con algo básico como:

  • un simple editor de texto
  • una calculadora

vez que la aplicación es corriendo, intente cosas como girar el dispositivo. Vea cómo reacciona la persona. ¿Se dan cuenta de cómo solucionar los errores? ¿Cuan rápido? ¿Dónde buscan soluciones si no saben por la parte superior de su cabeza? ¿Usan la documentación, o simplemente copian/pegan código de algún lado?

No intente que la persona cree una aplicación en toda regla. En otras palabras, asegúrese de quedarse 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.

+0

Esta es una gran respuesta. – Fattie

Cuestiones relacionadas