No estoy exactamente seguro de ser la persona más calificada para responder esta pregunta, ya que no me veo como un programador móvil rockstar / ninja; Generalmente no soy fanático de la etiqueta rockstar / ninja . Los grandes productos de ingeniería suelen ser los esfuerzos culminantes de un gran equipo .
Trataré de responder esta pregunta lo mejor que pueda. Como han dicho otros, el conocimiento del lenguaje de programación principal para el dispositivo / plataforma es una gran herramienta para el éxito. Si está desarrollando para Android, necesitará conocer Java y el SDK de Android. Si está desarrollando para un producto Apple, es importante conocer el objetivo-c y el SDK de iOS. Siento que esos son los idiomas que necesita para tener un conocimiento básico o al menos tener una base de ingeniería lo suficientemente sólida como para aprender rápidamente esos idiomas.
La verdad es que los idiomas en los que dominarás dependerán del servicio y del producto que estés desarrollando (sin mencionar el tamaño de tu equipo de ingeniería). ¿Puede su aplicación ser autónoma o necesita comunicarse con un servidor web? Esto puede requerir que tenga conocimiento de mysql, sqlite, json y cómo funcionan los protocolos de red en general. ¿Estás construyendo un juego? Lo más probable es que necesite escribir en código nativo (C).
- Tengo una idea de inicio de alquiler. ¿Está bien tener solo una aplicación móvil o también necesito tener un sitio web?
- ¿Debo seguir adelante y compilar el inicio de mi aplicación móvil, incluso si estoy modificando algunas leyes? ¿Después de que lo lance?
- ¿Dónde puedo encontrar un gran desarrollador de aplicaciones móviles en Londres?
- ¿Cómo podemos probar si una aplicación móvil puede manejar usuarios de 1 lakh?
- ¿Cómo hacemos una aplicación con python?
Supongo que lo que estoy tratando de decir es que un desarrollador de “Rockstar” probablemente tendrá bastante forma de T. Tendrán conocimiento de un dominio amplio, pero experiencia en uno o pocos. Incluso si tuvieran un conocimiento experto en todos los dominios, probablemente no puedan hacer el diseño, la ingeniería, el soporte y cualquier otro trabajo que sea vital para el éxito de un producto (simplemente no hay suficiente tiempo en un día). Elige un idioma para enfocarte, pero constantemente desafíate a ti mismo para aprender otros nuevos. Esa capacidad de aprender rápidamente y comprender los matices de cada idioma es lo que ayudará a traducir el éxito.
(editar: incluye información sobre UX e interfaces)
El diseño de interfaz / experiencia / servicio no se trata realmente de un lenguaje. Se trata de poder entender a sus usuarios y sus necesidades; Desde allí puede traducirlo en objetivos y decisiones de diseño. Realmente estoy abreviando este aspecto, pero puedes leer algunas excelentes respuestas del equipo de diseño de Quora sobre el proceso:
La respuesta de David Cole a ¿Cuál es el papel de un diseñador de productos en Quora?
http://www.quora.com/Rebekah-Cox…