Ok un consejo: suelta al ninja. No tomo en serio a las personas que usan ese “título” y no soy el único. La palabra “experto” está perfectamente bien. A menos que escriba un código mientras usa un gi negro y realice sabotajes y asesinatos por la noche, no es un ninja. 🙂
Un desarrollador de pila completa es aquel que puede trabajar en el servidor (back-end), el cliente (front-end) y el protocolo entre los dos. Por lo general, esto significa que la persona ha tenido varias posiciones anteriores haciendo diferentes trabajos de cliente y servidor y ha desarrollado una variedad de habilidades, conocimientos y experiencia.
Para iOS eso significaría un desarrollador competente de iOS con un par de proyectos de buen tamaño en su haber. Para el servidor, bueno, depende. Hay muchas formas de escribir el código del servidor: php, python, node.js, erlang, ruby e incluso lenguajes como Swift o C. (Sé que he omitido muchas posibilidades, esto es muy bueno). stack generalmente tiene algunos calificadores sobre qué. Muy pocas personas serán competentes en todo, e incluso si te encuentras con un veterinario que lo sabe todo, tendrán un par de idiomas que favorecerán.
- Apple promueve que Swift es mucho más fácil que Objective-C, pero como desarrollador experimentado de Objective-C, descubrí que Swift es mucho más difícil de aprender debido a sus características más ricas y su estilo de programación orientado al protocolo. ¿Es verdad?
- ¿Objective-C es un desorden desactualizado de un lenguaje?
- ¿Cómo creó Apple Music la sombra de la obra de arte de una canción?
- ¿Xcode es un lenguaje de programación?
- ¿Comprar un MacBook Pro 2016 al máximo hará que Xcode compile mi aplicación más rápido?
Luego está la base de datos. Cualquier desarrollador de pila completa necesita conocer alguna base de datos. Nuevamente, hay una gran variedad de opciones: PostGres, MySQL si lo desea, Neo4j y más. ¿Qué pasa con los sistemas de almacenamiento en caché? Hay opciones allí también.
En resumen “full-stack” tiene que ser calificado. Nadie lo sabe todo. Sé de sistemas de producción que usan TODOS los ejemplos anteriores. Entonces, ¿esta es realmente una cuestión de qué comunidad técnica y lingüística quieres formar parte?
Veo que full-stack se usa más en el mundo web donde hay un conjunto particular de cosas comunes: Javascript, algún paquete JS (¿angular quizás?), HTML5, Node.JS (Javascript nuevamente) y Postgres. Pero fuera de esto, el mundo puede crecer.