Cómo desarrollar aplicaciones para iOS como profesión

Gracias por el a2a.

En realidad no necesitas 2-3 años de experiencia para conseguir el trabajo. No hay casi ningún equipo de ingeniería en ninguna parte que se aferre religiosamente a los requisitos de la descripción del trabajo si llega la persona adecuada.

Lo que tienes que preguntarte es por qué están pidiendo 2-3 años de experiencia, qué es lo que realmente quieren, y cómo puedes dárselo.

Por qué están pidiendo

Están pidiendo los 2-3 años de experiencia principalmente para que no les hagas perder el tiempo. Necesitan algunos mecanismos de control en el proceso de solicitud para asegurarse de que no pierden todo su tiempo entrevistando a malos candidatos.

Es su forma de decir "Este no es un puesto de alto nivel, pero tampoco es un puesto de prácticas. Esperamos que sepas lo que estás haciendo y esperamos que muestres un mínimo de profesionalidad"

¿Qué es lo que realmente quieren?

Quieren a alguien que pueda ponerse al día para realizar las tareas básicas de desarrollo en las primeras 2 semanas, y alguien que se convierta en un miembro sólido del equipo en 3 meses. Probablemente esperan que dentro de un año seas alguien que pueda impulsar características o proyectos importantes por su cuenta.

Quieren a alguien que sea confiable. Quieren algún tipo de prueba social e histórica de que otras personas no te odian, y que no eres un grano en el culo para trabajar.

Quieren a alguien que sea profesional y que sepa cómo trabajar con sus herramientas y procesos en lugar de ser una prima donna que siempre sabe una mejor manera de hacer todo.

¿Cómo puedes dárselo a ellos?

Presta atención a esto primero, porque las otras cosas no importarán si no haces esto primero. Vale, ¿preparado?

Construye una aplicación y publícala en la tienda de aplicaciones. Preferiblemente publica varias apps. No tienen que ser súper populares, no tienen que hacer una tonelada de dinero, y ni siquiera tienen que ser hermosas. Lo que SÍ necesitan es

  1. Funcionar correctamente. Es comprensible que haya algunos fallos aquí y allá, pero no debería molestarse a menos que esté razonablemente seguro de que funciona bien
  2. Ser limpio. No es necesario que tenga un diseño bonito, pero sí que siga las directrices de la HCI y que el diseño que haya sea coherente en toda la aplicación. Tómate el tiempo para hacerlo bien.
  3. Muestra que has utilizado múltiples frameworks/bibliotecas para hacer cosas interesantes. Cuando tu app hace cosas con animación, dibujo, redes, AV, almacenamiento de datos, etc. muestra que estás aprendiendo una variedad de frameworks y no eres necesariamente un poni de un solo truco. (si construyes varias aplicaciones esto es más fácil)
  4. Se trata de algo de lo que estás legítimamente orgulloso de mostrar a la gente.

Bien, ahora tienes una aplicación en la tienda de aplicaciones, y has incluido enlaces a ellas en tu currículum. Así que ahora la gente está razonablemente segura de que tienes alguna idea de lo que estás haciendo y no eres un completo novato. ¿Qué más deberías hacer?

  • Si te sientes valiente, pon el código de tu aplicación en un repositorio público en GitHub para que los posibles entrevistadores y seleccionadores puedan ver tu código. No hagas esto a menos que estés muy seguro de tu estilo de codificación y te hayas tomado el tiempo de comentar y estructurar el código a fondo. Esto puede demostrar que sabes cómo escribir un buen código y que no tienes miedo de exponerte a las críticas.
  • Participa en uno o más proyectos de código abierto para bibliotecas móviles. Puedes mencionar que eres un colaborador en estos proyectos en tu currículum. Ayudará a demostrar que puedes trabajar con otras personas y que puedes participar en un esfuerzo de equipo que no es sólo tuyo.
  • Aprende nuevos frameworks y herramientas. ¿Usaste Flurry en tu último proyecto? Utilice MixPanel en este. ¿Usaste AFNetworking antes? Prueba esta vez con una simple red en bruto. ¿Utilizas habitualmente GitHub? Prueba con SVN para un proyecto. Enséñate a ser capaz de trabajar con diferentes herramientas y tecnologías. Esto te ayudará a completar tu conjunto de habilidades impresas, te ayudará a hablar inteligentemente sobre las herramientas que elijas utilizar, y demostrará que no estás tan encasillado como para rechazar otras formas de hacer las cosas.

Una vez que tienes varias aplicaciones que no apestan en la tienda de aplicaciones, código disponible para que todo el mundo pueda ver y comentar, estás participando en al menos un proyecto de código abierto, y has aprendido una variedad de herramientas y bibliotecas, no va a importar a cualquier equipo de desarrollo si realmente tienes dos años de experiencia. Van a querer entrevistarte.