¿Conocimiento sobresaliente de qué lenguajes de programación generalmente caracterizan a un programador móvil ninja / rockstar?

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).

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…

  • Conceptos de UX para el aspecto general de la aplicación, navegación, multimedia, etc.
  • Tecnologías de interfaz de usuario (centradas en el lado móvil): marcos iOS, Objective-C para el ecosistema iPhone / iPad; Javascript y frameworks como jQuery aplicado a la experiencia web móvil; HTML5, CSS3 y tecnologías asociadas
  • Tecnologías esenciales del lado del servidor (servidor / contenedor de aplicaciones): ya sea node.js o JSP / Java Servlets
  • Tecnologías de capa de fecha como SQL y NOSQL

Si bien el estado de rockstar / ninja generalmente se autoproclama, consideraré a alguien digno de él cuando pueda hacer una (parte de) una aplicación web moderna asombrosa en muy poco tiempo en cualquier idioma orientado a la web. No lo veo como un idioma específico, sino más sobre lo que uno puede hacer con un determinado conjunto de habilidades en muy poco tiempo.

Dicho esto, creo que la mayoría de las personas tienen Javascript en mente cuando usan esos títulos.

Ignorando la idiotez de llamar a un ingeniero de software una “estrella de rock” y asumiendo que solo quiere decir “un gran ingeniero de software”:

Ser un gran ingeniero no tiene nada que ver con los idiomas que sabes.

Grandes ingenieros aprenden idiomas sobre la marcha según sea necesario. Ser un gran ingeniero consiste en conocer los enfoques y conceptos de la ingeniería de software, que cruzan todos los límites del lenguaje.

Como ella dijo, no es la herramienta, es cómo la usas.

Para iPhone: Objective-C
Para Android: Java
Para ambos: Javascript
Para Ninja: japonés
Para Rockstar: británico

More Interesting

¿Por qué son los fieles seguidores de la versión Ionic 3.0?

¿Qué lenguajes de programación requiere cada sistema operativo móvil para las aplicaciones?

¿Es aconsejable crear una aplicación de mensajería en 2017?

¿Cuáles son las ventajas y desventajas de desarrollar aplicaciones en Xamarin multiplataforma?

¿Cuánto tiempo, en promedio, existe una cookie móvil para los usuarios antes de que se elimine en el cliente?

Como desarrollador de juegos (móvil, web, juego tradicional), ¿siente la necesidad de que los usuarios prueben su prototipo inicial (construcción temprana o concepto del juego o mecánica del juego)? Si es así, ¿cómo lo haces actualmente?

¿Son las aplicaciones híbridas el futuro del desarrollo móvil?

¿Cuál es la mejor empresa de desarrollo de aplicaciones personalizadas?

¿Cómo identificar una empresa de desarrollo de aplicaciones móviles confiable y profesional? ¿Es útil si nos fijamos en las revisiones externas?

¿Dónde aprendo a desarrollar una aplicación de mensajería móvil?

¿Por qué Craigslist no tiene una aplicación móvil?

¿Cuáles son las mejores aplicaciones móviles?

¿Cuáles son algunas empresas 'buenas', en los EE. UU., Que tomarán una aplicación móvil y la desarrollarán de principio a fin? Obviamente por una tarifa.

Soy un desarrollador web front end senior que desea crear aplicaciones móviles. Como tengo experiencia en tecnologías web, ¿debería elegir un marco híbrido, por ejemplo, Ionic o ser nativo?

¿Podría decirme cuáles son algunas de las mejores empresas de desarrollo de aplicaciones de Lotus Notes?