Qué esperar si quieres convertirte en desarrollador de iOS



En el lado de iOS, el desarrollo puede parecer un club cerrado. Para trabajar, definitivamente necesitas una computadora de Apple, el ecosistema es monitoreado de cerca por una compañía. A veces también se escuchan contradicciones desde adentro: alguien dice que el lenguaje Objective-C es viejo y torpe, y alguien que el nuevo lenguaje Swift es demasiado crudo.

Sin embargo, los desarrolladores entran en esta área y, una vez allí, están satisfechos.

Esta vez, Marat Nurgaliev y Boris Pavlov nos contaron sobre su experiencia: cómo estudiaron la profesión, cómo se realizaron las primeras entrevistas, por qué fueron rechazadas. Y el experto fue Andrei Antropov, decano del departamento de desarrollo de iOS en GeekBrains.

En 2016, Marat Nurgaliyev de la región de Astrakhan vino a buscar trabajo como desarrollador móvil en una compañía de televisión local. Esta fue su primera entrevista. Acababa de regresar del ejército, sin práctica y experiencia, habiendo olvidado incluso la teoría con la que había problemas de todos modos. La única experiencia en desarrollo móvil en Marat fue una tesis sobre el análisis de los flujos de fuga de información a través de aplicaciones de Android. En la entrevista se le preguntó sobre estudio, POO y otras teorías, pero Marat no pudo ocultar las brechas de conocimiento.

Sin embargo, no fue rechazado, sino que se le asignó una tarea práctica: implementar la visualización de la lista de noticias utilizando la API en dos semanas. Tanto bajo iOS como bajo Android. “Si tenía alguna experiencia en Android, entonces ni siquiera había una herramienta para crear la versión de iOS. El entorno de desarrollo ios solo está disponible en Mac. Pero dos semanas después regresé, demostré que podía en Android. Con iOS, tuve que salir sobre la marcha. Como resultado, me llevaron. Entonces viví en Astrakhan. Cualquier trabajo en TI con un salario de más de veinte me convenía ".

¿Quiénes son los desarrolladores de iOS?


Los desarrolladores móviles crean aplicaciones para cualquier dispositivo portátil. Smartphones, tabletas, relojes inteligentes y todas las demás plataformas compatibles con Android o iOS. La base fundamental del desarrollo móvil no difiere de la habitual, pero debido a las herramientas específicas se ha señalado en una dirección separada. Utiliza sus propias herramientas, lenguajes de programación y marcos.

“Para usar iOS, necesitas un macbook, porque solo tiene el entorno de desarrollo Xcode necesario. Es gratis y se distribuye a través de la tienda de aplicaciones AppStore. Para instalar, debe tener su ID de Apple y nada más. En Xcode, puede desarrollar aplicaciones para cualquier cosa: un teléfono, tableta, reloj. Hay un simulador y editor incorporado para todo ", dice Andrei Antropov, decano del Departamento de Desarrollo de iOS en GeekBrains.

“Pero el entorno de desarrollo también se puede poner en Windows, si usa Hackintosh. Esta es una opción funcional, pero indirecta: ninguno de los desarrolladores serios hace esto. Los principiantes compran un viejo MacBook. Y los experimentados generalmente pueden permitirse el último modelo ".


Lenguajes - Swift u Objective-C


Casi todo el desarrollo de iOS se realiza utilizando el lenguaje de programación Swift. Apareció hace cinco años y ahora está reemplazando gradualmente el antiguo lenguaje Objective-C que Apple ha usado en todas sus aplicaciones durante más de 30 años.

“Objective-C tiene una enorme base de código, por lo que los desarrolladores aún son necesarios en ambos idiomas, dependiendo de la empresa, sus tareas y aplicaciones. Las aplicaciones escritas hace muchos años se basan en Objective-C. Y todos los proyectos nuevos se desarrollan por defecto en Swift. Ahora Apple está haciendo mucho para llevar a cabo el desarrollo simultáneo del teléfono, tableta, reloj y MacBook de la manera más conveniente posible. El mismo código se puede compilar y ejecutar en todas partes. Este no era el caso antes. Para iOS lo desarrollamos en Swift, para MacOS utilizamos Objective-C ".

Según Andrey, Swift es un lenguaje muy simple, amigable para principiantes. Está fuertemente tipado, esto le permite detectar muchos errores en la etapa de compilación del proyecto, y el código incorrecto simplemente no funcionará.

“Objective-C es un lenguaje bastante antiguo, la misma edad que C ++. En el momento en que se desarrolló, los requisitos para los idiomas eran completamente diferentes. Cuando apareció Swift, había muchos errores, la funcionalidad era limitada, la sintaxis era aproximada. Y en Objective-C la gente tenía una mano completa. Mejoró durante muchos años, todos los errores allí fueron corregidos. Pero ahora, creo que Swift no es inferior a Objective-C. Aunque incluso Apple todavía usa ambos en sus proyectos. Los idiomas son en gran parte intercambiables y mutuamente complementarios. Las estructuras y objetos de un idioma pueden convertirse en objetos y estructuras de otro idioma. Sería bueno conocer ambas opciones, pero para los principiantes, Objective-C a menudo parece intimidante e incomprensible ".


Entrenamiento


"En mi primer trabajo, el jefe me entrenó, me ayudó en la implementación y configuración del proyecto", dice Marat, "pero trabajar en Android e iOS es difícil al mismo tiempo". Lleva tiempo reconstruir, cambiar de un proyecto a otro, de un idioma a otro. Al final, decidí que tenía que elegir una dirección y estudiarla. La interfaz Xcode y la simple sintaxis Swift me sobornaron ".

Marat ingresó al departamento de desarrollo de iOS en GeekBrains. Al principio fue muy fácil, porque sabía muchas cosas de su experiencia laboral. La tasa anual se divide en cuatro trimestres. Según Andrei, solo la base se da en la primera: "La base del lenguaje Swift, el conocimiento de los marcos básicos, la interacción de la red, el almacenamiento de datos, el ciclo de vida de la aplicación, el controlador, las arquitecturas básicas, las bibliotecas principales que todos usan, el subprocesamiento múltiple y la concurrencia en las aplicaciones".

En el segundo trimestre, se agrega Objective-C. Un curso sobre arquitectura, patrones básicos de programación. El tercer trimestre se enseña la forma correcta de escribir código. Indica qué es una fábrica, cómo escribir pruebas correctamente, formar proyectos, qué es Git-Flow, integración continua a través de Fast Lane. El cuarto y último trimestre está dedicado al trabajo en equipo, tareas prácticas y pasantías.

"El primer trimestre fue fácil", dice Marat, "pero luego el estudio de programación en Objective-C, el estudio de patrones de diseño, los principios de Solid, Git-Flow, la arquitectura del proyecto, las aplicaciones de prueba de Unidad y UI, la configuración de animación personalizada, y luego comencé Se volvió interesante estudiar ".


"Todo en GeekBrains no comenzó súper bien", dice Boris Pavlov, y su camino hacia el desarrollo de iOS en general no fue el más directo. El chico fue criado por su abuela. Fue arquitecta, matemática y diseñadora e inculcó en Boris un amor por el diseño, le enseñaron a dibujar a mano y dibujar. Su tío era administrador del sistema e interesó a su sobrino con las computadoras.

Boris era un excelente estudiante, pero perdió interés en estudiar y dejó la escuela después de nueve clases. Después de la universidad, comenzó a andar en bicicleta, y las computadoras quedaron en el camino. Pero una vez que Boris recibió una lesión en la columna, que no le permitió continuar su carrera deportiva.

Comenzó a estudiar C ++ con un profesor en el Instituto Irkutsk de Física Solar-Terrestre. Luego se interesó en el desarrollo del juego e intentó cambiar a C #. Y finalmente, como Marat, Swift lo sobornó.

“Decidí tomar un curso introductorio gratuito en GeekBrains. Para ser honesto, era muy aburrido, letárgico e incomprensible ", recuerda Boris," el maestro habló sobre las características del lenguaje, pero pasó de un tema a otro sin revelar la esencia. Cuando terminó el curso, todavía no entendía nada ".

Por lo tanto, después del curso introductorio, Boris ingresó no en un curso de un año, sino en un curso corto de tres meses, donde se enseñan los conceptos básicos de la profesión. "Allí me encontré con muy buenos maestros y les expliqué todo con bastante claridad".


“A menudo se nos critica, supuestamente no tenemos manuales de capacitación muy relevantes, hay imprecisiones. Pero los cursos se actualizan constantemente y los maestros siempre hablan de innovaciones. De los grupos que lidero, muchos ya están empleados después del primer trimestre. Por supuesto, generalmente son personas con experiencia en programación ", dice Andrey," por otro lado, todo el conocimiento no puede transmitirse en un curso. La interacción del cliente de red en la vida no puede caber en diez conferencias durante dos horas. Y si solo va a cursos y no hace nada más, entonces no habrá suficiente conocimiento. Si practicas todos los días durante todo el año, entonces a este ritmo solo los perezosos no funcionarán. Porque la demanda en la profesión es muy grande ".

imagen

Puede ver las últimas vacantes para desarrolladores de iOS y suscribirse a otras nuevas.


Trabajo


Pero ni Marat ni Boris encontraron un trabajo fácil.

“Algunas grandes empresas han desarrollado durante mucho tiempo aplicaciones iOS en Objective-C y continúan admitiendo la antigua base de código. Desafortunadamente, no tengo un argumento fuerte para obligarlos a usar exclusivamente Swift. Especialmente aquellos que usan la regla de "no tocar lo que funciona", dice Marat, "se presta poca atención a la dirección de Objective-C en Geekbrains. Es más un personaje de investigación. Pero todas las empresas que entrevisté preguntaron sobre Objective-C. Y dado que mis estudios se centran en Swift, como mi trabajo anterior, recibí rechazos en las entrevistas ”.

"Después de estudiar, solo conocía los conceptos básicos más superficiales con los que podía crear la aplicación más simple", dice Boris. "Por supuesto, no fue suficiente para el trabajo, pero estaba contento con eso". Fue difícil encontrar trabajo en Irkutsk. Más precisamente, nada en absoluto. Decidí buscar en otras ciudades. Por número de vacantes, las más relevantes fueron Krasnodar, Moscú y San Petersburgo. Decidí ir a San Petersburgo, más cerca de Europa.

Pero todo resultó no tan color de rosa. Incluso se le pide al menor lo que no puede saber. Todavía no he encontrado trabajo. Trabajo para "gracias", ganando experiencia. Entiendo que esto no es lo que quería, pero estoy interesado y me motiva. Quiero obtener conocimiento ".

Andrei cree que los recién llegados no deben buscar trabajo, sino pasantías. Si hay muy poco conocimiento, entonces esto es normal cuando la pasantía no se paga. Andrei aconseja ir a vacantes junior a grandes empresas, donde el proceso de trabajo ya se ha establecido.

“Cuando se trata de comprender cómo funciona el proceso de desarrollo de software, será mucho más fácil navegar y encontrar más trabajo, dependiendo de sus deseos. Alguien se dedica al desarrollo independiente, crea juegos para sí mismo, él mismo los vierte en la tienda y lo monetiza él mismo. Alguien trabaja para una gran empresa con reglas estrictas. Alguien gana dinero en pequeños estudios que hacen software a pedido, y allí pueden observar todo el proceso, desde crear un proyecto desde cero hasta ponerlo en la tienda ”.


Salarios


El salario de un desarrollador de iOS, como cualquier otro, depende de la pregunta "Moscú o Rusia". Pero debido a las características específicas de la industria (una gran cantidad de trabajo remoto, oportunidades de reubicación y trabajo no en el mercado regional), los números se acercan cada vez más.

imagen

Según la calculadora de salarios "My Circle", el salario promedio de un desarrollador de iOS es un poco menos de 140,000 rublos .

“Un joven de muy bajo nivel a menudo trabaja gratis o por dinero simbólico: 20-30 mil rublos. Si el menor es llevado deliberadamente a su posición, recibirá de 50 a 80 mil. Los medios reciben de 100 a 150 y, a veces, incluso hasta 200. Los firmantes de menos de 200 no. Creo que su salario es de alrededor de 200-300. Y los Timlids, respectivamente, por 300. "




Entrevistas de trabajo


“La primera entrevista fue en Skype. Para mi sorpresa, fue Google ", recuerda Boris," luego me mudé a San Petersburgo y comencé a buscar trabajo. Recibí una respuesta al desarrollador vacante de iOS. No es un junior, ni un medio, ni un firmante, solo un desarrollador. Estaba encantado, comencé a mantener correspondencia con el gerente. Me pidieron que completara la tarea técnica: tenía que escribir una solicitud de bromas sobre Chuck Norris. Lo escribi Me dijeron que todo está bien y programé una entrevista en línea.

Llamamos por teléfono. Una linda chica me habló. Pero no hicieron ninguna pregunta sobre el conocimiento del idioma, solo diferentes tareas lógicas, por ejemplo, "Hora 15:15, ¿cuántos grados hay entre las manecillas de las horas y los minutos?" O "Pilar 10 metros, el caracol se arrastra 3 metros por la tarde, desciende 1 metro por la noche. ¿Cuántos días se arrastrará hasta la cima? ”, Y un par más así.

Luego hubo preguntas muy extrañas: por lo que amo a Apple y lo que siento por Tim Cook. Dije que era positivo para la empresa en su conjunto, pero bastante negativo para él, porque el dinero es importante para él, no los productos.

Cuando comenzaron las preguntas sobre Swift, mi conocimiento era suficiente solo para programar patrones y los conceptos básicos de OOP. Nos despedimos, una semana después me volvieron a llamar y me dijeron que no era adecuado. En realidad, aprendí mucho de esto: se necesita conocimiento, se necesita mucho, tanto teoría como práctica ”.

Andrei dice que "lo primero que todos piden durante una entrevista es el ciclo de vida del controlador. Les gusta preguntar algún patrón de programación simple. Asegúrese de preguntar sobre la experiencia de usar bibliotecas populares. Definitivamente habrá una pregunta sobre las diferencias en los Tipos de valores rápidos de los Tipos de referencia, sobre el Conteo automático de referencias y la administración de memoria. Pueden preguntar cómo implementaron el almacenamiento de datos en las aplicaciones y si se implementaron las solicitudes de red. Pregunte sobre los conceptos básicos de REST y JSON. Junior no pedirá cosas y sutilezas específicas. Al menos no estoy preguntando.

Boris, por otro lado, tuvo una experiencia diferente: “Incluso cuando solicité pasantías, realicé tareas técnicas y dije que mi salario no era importante, aunque solo fuera suficiente para alquilar un apartamento, todavía me rechazaron. Leí artículos, intenté entender lo que un reclutador necesita de un principiante. Pero se amontonó principalmente en la teoría. Por alguna razón, hicieron preguntas de la Premier League, que no conciernen a los principiantes ".

Marat fue más afortunado. Ahora trabaja en una empresa de transporte y uno es responsable de la dirección de iOS, continuando sus estudios en la facultad. "Como solo soy responsable de iOS, mi trabajo se evalúa solo por la capacidad de realizar las tareas que se me asignaron, y no por el conocimiento de la teoría".


Comunidad


Andrei vive en Nizhny Novgorod y dice que incluso allí se ha formado una excelente comunidad. Érase una vez un desarrollador de back-end en Python, pero sus amigos lo arrastraron al desarrollo móvil, y ahora él mismo está agitando a todos para que lo hagan.

“La comunidad mundial generalmente se comunica a través de Twitter. La gente mantiene sus blogs, graba videos en Youtube, se llama en podcasts. Un día tuve una pregunta sobre una presentación en la que actuó el líder del equipo HQTrivia. Este es un cuestionario estadounidense que juegan varios millones de personas al mismo tiempo. Lo tuiteé, él me respondió, hablamos, le di las gracias. La comunidad es extremadamente amigable, y eso es genial ".

Lista de lectura recomendada
Nivel principiante:

Nivel Intermedio:

Nivel avanzado:

Source: https://habr.com/ru/post/461709/


All Articles