Qué esperar si quieres convertirte en desarrollador de iOS

Qué esperar si quieres convertirte en desarrollador de iOS

Desde fuera de iOS, el desarrollo puede parecer un club cerrado. Para trabajar, definitivamente necesitas una computadora Apple; el ecosistema está estrechamente controlado por una empresa. Desde dentro también se pueden escuchar contradicciones: algunos dicen que el lenguaje Objective-C es viejo y torpe, y otros dicen que el nuevo lenguaje Swift es demasiado tosco.

Sin embargo, los desarrolladores se adentran en esta zona y, una vez allí, quedan satisfechos.

Esta vez Marat Nurgaliev y Boris Pavlov nos contaron su experiencia: cómo aprendieron la profesión, cómo pasaron sus primeras entrevistas y por qué los rechazaron. Y Andrey Antropov, decano, actuó como experto. Facultad de Desarrollo iOS en GeekBrains.

En 2016, Marat Nurgaliev, de la región de Astracán, llegó a buscar trabajo como desarrollador móvil en una empresa de televisión local. Esta fue su primera entrevista. Acababa de regresar del ejército, sin práctica ni experiencia, habiendo olvidado incluso la teoría, con la que ya tenía problemas. La única experiencia de Marat en el desarrollo móvil fue su tesis sobre el análisis de flujos de fuga de información a través de aplicaciones de Android. En la entrevista le preguntaron sobre sus estudios, POO y otras teorías, pero Marat no pudo ocultar las lagunas en sus conocimientos.

Sin embargo, no se lo negaron, sino que se le asignó una tarea práctica: implementar la visualización de una lista de noticias utilizando la API en dos semanas. Tanto para iOS como para Android. “Si tenía alguna experiencia con Android, ni siquiera existía una herramienta para crear una versión de iOS. El entorno de desarrollo de aplicaciones iOS sólo está disponible en Mac. Pero dos semanas después volví y mostré lo que podía hacer en Android. Con iOS tuve que resolverlo sobre la marcha. Al final me llevaron. Luego viví en Astracán. Cualquier trabajo de TI con un salario superior a veinte me convenía”.

¿Quiénes son los desarrolladores de iOS?

Los desarrolladores de dispositivos móviles crean aplicaciones para cualquier dispositivo portátil. Smartphones, tabletas, relojes inteligentes y todas las demás plataformas compatibles con Android o iOS. Los principios fundamentales del desarrollo móvil no son diferentes del desarrollo convencional, pero debido a herramientas específicas, se ha separado en una dirección separada. Utiliza sus propias herramientas, lenguajes de programación y frameworks.

“Para trabajar con iOS, necesitas una MacBook, porque solo ella tiene el entorno de desarrollo Xcode necesario. Es gratuito y se distribuye a través de la AppStore. Para instalarlo, necesitas tener tu ID de Apple y nada más. En Xcode puedes desarrollar aplicaciones para cualquier cosa: teléfono, tableta, reloj. Hay un simulador y un editor integrados para todo”, afirma Andrey Antropov, decano del departamento de desarrollo de iOS de GeekBrains.

“Pero el entorno de desarrollo se puede instalar en Windows si se utiliza Hackintosh. Esta es una opción funcional, pero indirecta: ninguno de los desarrolladores serios hace esto. Los principiantes compran una MacBook vieja. Y los más experimentados normalmente pueden permitirse el último modelo”.

Idiomas: 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 al antiguo lenguaje Objective-C, que Apple ha utilizado en todas sus aplicaciones durante más de 30 años.

“Se ha acumulado una enorme base de código en Objective-C, por lo que todavía se necesitan desarrolladores en ambos lenguajes, 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 en Swift de forma predeterminada. Ahora Apple está haciendo mucho para que el desarrollo simultáneo de un teléfono, tableta, reloj y MacBook sea lo más conveniente posible. El mismo código se puede compilar y ejecutar en todas partes. Esto no sucedió antes. Para iOS desarrollamos en Swift, para MacOS utilizamos Objective-C”.

Según Andrey, Swift es un lenguaje muy simple y amigable para principiantes. Está estrictamente tipificado, lo que 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, de la misma edad que el lenguaje C++. En el momento de su desarrollo, los requisitos de los idiomas eran completamente diferentes. Cuando salió Swift, tenía errores, la funcionalidad era limitada y la sintaxis era aproximada. Y la gente estaba muy ocupada con Objective-C. Se ha mejorado durante muchos años, se han corregido todos los errores que había. Pero ahora creo que Swift es tan bueno como Objective-C. Aunque incluso Apple sigue utilizando ambos en sus proyectos. Los idiomas son en gran medida intercambiables y mutuamente complementarios. Las estructuras y objetos de una lengua se pueden transformar en objetos y estructuras de otra lengua. Es bueno conocer ambas opciones, pero para los principiantes Objective-C a menudo parece intimidante y confuso."

Educación

“En mi primer trabajo, mi jefe me capacitó y me ayudó a implementar y configurar el proyecto”, dice Marat, “pero trabajar en Android e iOS al mismo tiempo es difícil. Se necesita tiempo para reconstruir, pasar de un proyecto a otro, de un idioma a otro. Al final, decidí que necesitaba elegir una dirección y estudiarla. Me convencieron la interfaz de Xcode y la sintaxis simple de Swift".

Marat ingresó al departamento de desarrollo de iOS en GeekBrains. Al principio fue muy fácil, porque sabía muchas cosas por experiencia laboral. El curso anual se divide en cuatro trimestres. Según Andrey, el primero proporciona solo lo básico: “La base del lenguaje Swift, conocimiento de los marcos básicos, redes, almacenamiento de datos, ciclo de vida de la aplicación, controlador, arquitecturas básicas, bibliotecas principales que todos usan, subprocesos múltiples y paralelismo en aplicaciones”.

El segundo cuarto agrega Objective-C. Se realiza un curso sobre arquitectura y patrones básicos de programación. En el tercer trimestre, enseñan el estilo correcto de escribir código. Explica qué es una fábrica, cómo escribir pruebas correctamente, crear 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, trabajos prácticos y prácticas.

“El primer trimestre fue fácil”, dice Marat, “pero luego comencé a aprender programación en Objective-C, estudiando patrones de diseño, los principios de Solid, Git-Flow, arquitectura de proyectos, pruebas unitarias y de UI de aplicaciones, configurando animaciones personalizadas. - y entonces me resultó interesante estudiar."

"Para mí no todo empezó muy bien en GeekBrains", dice Boris Pavlov, y su camino hacia el desarrollo de iOS en general no fue el más directo. El niño fue criado por su abuela. Ella era arquitecta, matemática y diseñadora y le inculcó a Boris el amor por el diseño, le enseñó a dibujar a mano y a dibujar. Su tío era administrador de sistemas e interesaba a su sobrino por las computadoras.

Boris era un excelente estudiante, pero perdió el interés en estudiar y dejó la escuela después del noveno grado. Después de la universidad, se dedicó al ciclismo y las computadoras pasaron a un segundo plano. Pero un día Boris sufrió una lesión en la columna que le impidió continuar su carrera deportiva.

Comenzó a estudiar C++ con un profesor en el Instituto de Física Solar-Terrestre de Irkutsk. Luego me interesé en el desarrollo de juegos e intenté cambiarme a C#. Y finalmente, al igual que Marat, quedó cautivado por el lenguaje Swift.

“Decidí realizar el curso introductorio gratuito en GeekBrains. Para ser honesto, era muy aburrido, lento e incomprensible”, recuerda Boris, “el profesor hablaba de las características del idioma, pero pasaba 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 no se matriculó en una formación de un año, sino en un curso corto de tres meses, donde le enseñan los conceptos básicos de la profesión. “Allí encontré muy buenos profesores y me explicaron todo muy claramente”.

“A menudo nos critican: supuestamente nuestros manuales de formación no están del todo actualizados y contienen imprecisiones. Pero los cursos se actualizan constantemente y los profesores siempre hablan de innovaciones. De los grupos que dirijo, muchos encuentran trabajo después del primer trimestre. Por supuesto, normalmente se trata de personas con experiencia en programación”, afirma Andrey. “Por otro lado, no se pueden transmitir todos los conocimientos en un solo curso. La interacción con el cliente de la red en la vida no puede caber en diez conferencias de dos horas. Y si sólo vas a cursos y no haces nada más, entonces no tendrás suficientes conocimientos. Si estudias todos los días durante todo el año, a este ritmo sólo los perezosos no conseguirán trabajo. Porque la exigencia en la profesión es muy alta”.

Qué esperar si quieres convertirte en desarrollador de iOS

Puedes ver lo más últimas vacantes para desarrolladores de iOS y suscríbete a otros nuevos.

Trabajar

Pero ni Marat ni Boris encontraron empleo tan fácilmente.

“Algunas grandes empresas llevan mucho tiempo desarrollando aplicaciones iOS en Objective-C y continúan manteniendo la antigua base de código. Desafortunadamente, no tengo un argumento convincente para obligarlos a usar Swift exclusivamente. Especialmente aquellos que utilizan la regla "no tocar lo que funciona", dice Marat, "en Geekbrains se presta poca atención a la dirección de Objective-C. Es más de naturaleza informativa. Pero todas las empresas para las que entrevisté preguntaron sobre Objective-C. Y como mis estudios se centran en Swift, al igual que mi trabajo anterior, recibí negativas en las entrevistas”.

"Después de estudiar, sólo conocía los conceptos básicos más superficiales, con la ayuda de los cuales podía crear la aplicación más sencilla", dice Boris. "Para el trabajo, por supuesto, no era suficiente, pero estaba feliz por eso. Fue difícil encontrar trabajo en Irkutsk. Para ser más precisos, en absoluto. Decidí buscar en otras ciudades. En cuanto al número de vacantes, los más relevantes fueron Krasnodar, Moscú y San Petersburgo. Decidí ir a San Petersburgo, más cerca de Europa.

Pero todo resultó no ser tan color de rosa. Incluso un joven será perdonado por lo que no puede saber. Aún no he encontrado trabajo. Estoy trabajando para “gracias”, ganando experiencia. Entiendo que esto no es lo que quería, pero me interesa y esto me motiva. Quiero adquirir conocimientos."

Andrey cree que los recién llegados deberían buscar prácticas y no empleos. Si tienes muy pocos conocimientos, entonces es normal que las prácticas no sean remuneradas. Andrey aconseja postularse para vacantes junior a grandes empresas donde el proceso de trabajo ya está establecido.

“Cuando comprenda cómo funciona el proceso de desarrollo de software, será mucho más fácil navegar y encontrar más trabajo, según sus deseos. Algunas personas se dedican al desarrollo independiente, crean juegos por sí mismas, los suben a la tienda y los monetizan ellos mismos. Algunos trabajan para una gran empresa con reglas estrictas. Algunas personas ganan dinero en pequeños estudios que crean software personalizado y allí pueden observar todo el proceso, desde la creación de un proyecto desde cero hasta su entrega en la tienda”.

Sueldos

El salario de un desarrollador de iOS, como el de cualquier otro, depende de la cuestión "Moscú o Rusia". Pero debido a las particularidades de la industria (mucho trabajo remoto, oportunidades de reubicación y trabajo fuera del mercado regional), las cifras se acercan cada vez más.

Qué esperar si quieres convertirte en desarrollador de iOS

Según la calculadora de salarios de My Circle, el salario medio de un desarrollador de iOS es ligeramente menor 140 000 rublos.

“Un joven de muy bajo nivel a menudo trabaja gratis o por dinero simbólico: entre 20 y 30 mil rublos. Si un joven es llevado intencionalmente a su puesto, recibirá de 50 a 80 mil. Los medianos reciben de 100 a 150 y, a veces, incluso hasta 200. Los mayores no reciben menos de 200. Creo que su salario ronda los 200-300. Y para los líderes de equipo, en consecuencia, son más de 300”.

Qué esperar si quieres convertirte en desarrollador de iOS

Entrevistas

“La primera entrevista se realizó por Skype. Para mi sorpresa, era Google”, recuerda Boris, “entonces me acababa de mudar a San Petersburgo y comencé a buscar trabajo. Recibí una solicitud para un puesto de desarrollador de iOS. Ni junior, ni medio, ni senior, solo un desarrollador. Quedé encantado y comencé a mantener correspondencia con el gerente. Me pidieron que completara una tarea técnica: tenía que escribir una solicitud para hacer chistes sobre Chuck Norris. Yo lo escribi. Me dijeron que todo estuvo genial y programaron una entrevista en línea.

Nos llamamos. Una linda chica me habló. Pero no hicieron ninguna pregunta sobre el dominio del idioma, sólo varios problemas lógicos, por ejemplo, "Son las 15:15, ¿cuántos grados hay entre las manecillas de las horas y los minutos?" o "Un poste mide 10 metros de largo, un El caracol sube 3 metros durante el día y desciende 1 metro por la noche”. ¿En cuántos días llegará a la cima?”, y un par más similares.

Luego surgieron preguntas muy extrañas: por qué amo a Apple y qué siento por Tim Cook. Le dije que la empresa en su conjunto es positiva, pero más bien negativa, porque para él lo importante es el dinero, no los productos.

Cuando comenzaron las preguntas sobre Swift, mis conocimientos solo eran suficientes para los patrones de programación y los conceptos básicos de la programación orientada a objetos. Nos despedimos, una semana después me volvieron a llamar y me dijeron que no era apto. En realidad, con esto adquirí una experiencia enorme: se necesita conocimiento, se necesita mucho, tanto teoría como práctica”.

Andrey dice que “lo primero que se pregunta a todos durante una entrevista es el ciclo de vida del controlador. Les gusta mucho pedir algún patrón de programación sencillo. Definitivamente le preguntarán sobre su experiencia con el uso de bibliotecas populares. Definitivamente habrá una pregunta sobre las diferencias entre los tipos de valores Swift y los tipos de referencia, sobre el conteo automático de referencias y la administración de memoria. Es posible que pregunten cómo implementaron el almacenamiento de datos en las aplicaciones y si implementaron solicitudes de red. Le preguntarán sobre los conceptos básicos de REST y JSON. Al junior no se le pedirán cosas ni sutilezas específicas. Al menos no lo pregunto."

Boris tuvo una experiencia diferente: “Incluso cuando solicité prácticas, realicé tareas técnicas y dije que el salario no era importante para mí, siempre que fuera suficiente para alquilar un apartamento, todavía me rechazaron. Leí artículos y traté de comprender qué necesita un reclutador de un recién llegado. Pero la mayoría de las veces fracasaron en las teorías. Por alguna razón, hicieron preguntas de las ligas mayores que no conciernen a los recién llegados”.

Marat tuvo más suerte. Ahora trabaja en una empresa de transporte y se encarga en solitario del departamento de iOS, mientras continúa sus estudios en la facultad. "Como soy el único responsable de iOS, mi trabajo se evalúa únicamente por mi capacidad para implementar las tareas que se me asignan, y no por mis conocimientos teóricos".

Comunidad

Andrey vive en Nizhny Novgorod y dice que allí también se ha formado una gran comunidad. Érase una vez un desarrollador backend en Python, pero sus amigos lo arrastraron al desarrollo móvil y ahora él mismo anima a todos a hacerlo.

“La comunidad global normalmente se comunica a través de Twitter. La gente escribe sus propios blogs, graba vídeos en Youtube y se invita unos a otros a podcasts. Un día tuve una pregunta sobre una presentación donde habló el líder del equipo de HQTrivia. Se trata de un juego de preguntas estadounidense al que juegan simultáneamente varios millones de personas. Le escribí por Twitter, me contestó, hablamos y le agradecí. La comunidad es extremadamente amigable, lo cual es genial”.

Lista de literatura recomendadaNivel principiante:

Nivel promedio:

Nivel avanzado:

Fuente: habr.com

Añadir un comentario