Cómo redactar un buen currículum de ingeniero de iOS
En primer lugar, hay que decir que la mayoría de los entrevistados tienen de 1 a 3 años de experiencia en desarrollo de iOS y no es necesario encontrar un verdadero experto, por lo que creo que la mayoría de las preguntas preparadas. Son relativamente básicos. Sí, puedes ver el nivel de las personas en este nivel. Si también es un practicante con aproximadamente 3 años de experiencia en desarrollo, puede intentarlo.
Al inicio de la entrevista, se le pedirá al entrevistador que elija un proyecto con el que esté más familiarizado e introduzca su arquitectura técnica, así como los módulos y trabajos específicos en los que participó el entrevistador. De hecho, muchos desarrolladores no comprenden el significado específico de la "arquitectura" mencionada. Algunas personas hablan sobre muchas características del producto y otras hablan de manera muy general (como seguir la arquitectura MVC, etc.). Por lo general, serán interrumpidos en este momento y les pedirán directamente que les digan la estructura jerárquica o los módulos principales. la APLICACIÓN.
Después de eso, se harán dos preguntas:
1. Cuénteme sobre un momento en esta aplicación en el que el usuario activó un evento, provocó una solicitud de servicio y luego obtuvo el servidor. respuesta. Interfaz de usuario actualizada. Sea específico, como por ejemplo, ¿qué categorías se han procesado los datos y cuál es el formato de cada transmisión?
2. ¿Cómo manejan las APP participantes el lanzamiento simultáneo de múltiples servicios? Luego pídale al entrevistador que hable sobre la estructura de la interfaz de la aplicación, que es relativamente informal.
Después de preguntar sobre el proyecto, comience con las preguntas de conocimientos básicos ~
Capa de modelo:
¿Cuáles son las soluciones de almacenamiento de datos persistentes?
¿Cuál es la estructura de directorios del sandbox? ¿Para qué ocasiones se utiliza generalmente?
Pregunta de declaración SQL: ¿Cuáles son las diferencias entre unión interna, unión izquierda y unión derecha?
Optimización de SQLite
Qué métodos ha utilizado en la comunicación de red (100 personas dijeron AFNetworking...)
Cómo manejar múltiples solicitudes de red simultáneas Situación
Cómo mejorar el rendimiento de las solicitudes de red
Cómo garantizar la seguridad de las solicitudes de red
Idioma y conocimientos básicos:
In- pila de memoria ¿Cuál es la diferencia entre esta y un montón? ¿Qué datos están en la pila y cuáles en el montón?
¿Cuál es la diferencia entre las variables definidas por #define y const?
¿En qué circunstancias se producirá una referencia circular a la memoria?
¿Necesito agregar un yo débil al bloque en algún momento?
¿El código ejecutado en la cola GCD y la cola principal deben estar en el hilo principal?
¿Cuáles son los métodos para usar NSOperationQueue?
¿Cómo utilizar la función Runloop en NSThread?
Variables en. ¿Se puede acceder a los archivos h directamente desde el exterior? (Tenga en cuenta que es una variable, no un atributo)
Hablemos primero del concepto de tiempo de ejecución. Si el envío del mensaje no puede encontrar el objeto correspondiente, ¿qué pasará a continuación?
¿Cuál es la diferencia entre TCP y UDP?
¿Cuál es la diferencia entre MD5 y Base64, y cuáles son sus respectivos escenarios?
¿Cuál es la complejidad temporal del concepto de árbol de búsqueda binario?
Arquitectura: (No contratamos arquitectos, por lo que no hacemos muchas preguntas en esta área. Puede hacer preguntas de la introducción de arquitectura anterior de la APLICACIÓN)
Cual ¿Las clases no son adecuadas para el modelo singleton? Incluso si sólo aparecen una vez en el bucle.
¿Cuáles son los escenarios de uso de las notificaciones? ¿Síncrono o asíncrono?
Presente brevemente KVC y KVO. ¿En qué escenarios se pueden aplicar?
Relacionado con la aplicación:
Cómo agregar fuentes personalizadas al proyecto
Cómo hacer una biblioteca estática/biblioteca dinámica, ¿cuál es la diferencia entre ellas?
¿Cuál es la diferencia de configuración entre depuración y lanzamiento?
Breve introducción al mecanismo de envío de mensajes del sistema (APNS).
Interfaz de usuario:
¿Cómo encuentra el sistema a los respondedores que necesitan responder a las operaciones del usuario?
Adaptar a múltiples tamaños de pantalla
¿Cuál es la clase principal de UIButton? ¿Dónde está Eurabel?
La diferencia entre el controlador de vista push y el controlador de vista actual
Describe el mecanismo de reutilización de las celdas de la vista de tabla.
¿Cuál es la diferencia entre el marco y el borde de UIView?
Finalmente, hay varias preguntas de escenario, que también son mis preguntas favoritas:
¿Cómo enviar 10 solicitudes de red y recibir todas las respuestas antes de realizar operaciones posteriores?
Implemente un control de terceros que pueda aparecer en la parte superior de la interfaz de la aplicación en cualquier momento.
Obtenga la función más simple de hacer clic y arrastrar.
Además de la resistencia anterior, ¿qué pasa si necesitas deslizarte hacia adelante según la velocidad cuando sueltas la mano?
¿Cómo reducir el tamaño de la aplicación?
¿Cómo mejorar el rendimiento de un programa de sexo?
La estructura de la base de datos ha cambiado en las diferentes versiones de la APP. ¿Cómo solucionarlo?
Para ser justos, estas preguntas no son particularmente difíciles. No hablan de tecnología negra, ni de algoritmos ACM. Son conceptos básicos de iOS y escenarios fáciles de encontrar. También puede deberse a que el objetivo de contratación es solo una persona que pueda completar el desarrollo empresarial durante aproximadamente 3 años, por lo que la mayoría de los entrevistadores no están satisfechos. Solo menos de una cuarta parte de las personas pueden responder más de la mitad de las preguntas con ideas claras y actitud positiva. ...
También existe la sensación de que esta industria puede ser realmente impetuosa. Muchos entrevistadores ni siquiera pueden responder algunas preguntas de escenarios simples y sus conocimientos básicos son promedio. Solo utilizan unas pocas bibliotecas de terceros, por lo que requieren un salario anual de 25 a 30 mil, lo que los hace sentir indiferentes. Algunas personas afirmaban ser líderes técnicos en sus empresas originales, pero ni siquiera conocían la estructura básica de la aplicación, incluidos los módulos principales que incluía. Algunas personas incluso hablaron sobre las funciones y aspectos destacados del producto durante mucho tiempo, y tuvieron que hacerlo. ser interrumpido una y otra vez para continuar la entrevista.
Cuando aprendes iOS, cuantas más cosas haces, más sientes que tienes que aprender y más te alejas de los estándares de los expertos. Independientemente de su profundidad o amplitud, el desarrollo de iOS es un área técnica que vale la pena explorar. Debido a la popularidad de los productos Apple, el desarrollo de iOS ha sido escaso en el mercado, pero puede que no haya tantos productos verdaderamente capaces y de alta calidad.