Como desarrollador de Android, el único lenguaje que conozco bien es Java. Quiero ampliar mis habilidades. ¿Qué debería aprender a continuación?

Me he preguntado esto exactamente, ¡así que estamos en el mismo barco aquí!

En la foto: tú y yo en el mismo bote.

A principios de este año, mi conjunto de habilidades principales incluía Android y Java. Conocía otros lenguajes, como Objective-C y Swift, y también podía crear aplicaciones para iOS, pero Android seguía siendo mi especialidad. Para ampliar mis habilidades, quería aprender más sobre desarrollo web porque es tan popular, si no más, que el desarrollador móvil.

Desarrollo web

Si no está familiarizado con las tecnologías web, le recomiendo comenzar con los cursos HTML, CSS y JavaScript de Codecademy. Pagué la tarifa mensual de $ 20 y durante dos meses pasé el tiempo obteniendo muchas repeticiones en HTML, CSS, Sass, Bootstrap y más. También pasé mucho tiempo en Codewars aprendiendo JavaScript y Ruby.

¿El resultado? Construí un montón de páginas simples en Codecademy y logré mi objetivo principal de construir mi propio sitio personal usando Jekyll y Github Pages. Actualmente, estoy aprendiendo Ruby on Rails y profundizando en otras tecnologías web para determinar con qué plataforma construir mi primera aplicación web.

Más desarrollo móvil

Otra ruta que vale la pena considerar para avanzar es el desarrollo móvil multiplataforma. Si quieres convertirte en un desarrollador móvil a gran escala, entonces aprender iOS o una plataforma unificadora como Xamarin o Flutter puede valer la pena.

Diseño

Un candidato poco probable para algunos desarrolladores, el diseño es otra gran vía para expandir sus habilidades, especialmente si planea hacer negocios por sí mismo. Ya tengo algunas habilidades de diseño (Photoshop y Sketch 3), así como una cantidad decente de práctica en la creación de interfaces, materiales de marketing y más.


¡Gracias por leer! ¡Si te encantó esta respuesta, agradecería un voto positivo! Sígueme para obtener más respuestas sobre Android, software y otras cosas.

¿Quieres codificar juntos (barco opcional)? Contáctame !

Intentaría aprovechar su experiencia en una de dos direcciones. En el mismo espacio con código diferente, o en espacios diferentes pero con código similar.

Le proporcionaré tres de cada uno y los ordenaré de mayor a menor.

Si desea ampliar dentro del espacio móvil, los candidatos obvios incluyen:

  • Desarrollo nativo de iOS (vaya a Swift, omita Obj-C)
  • Reaccionar nativo
  • Marcos de desarrollo híbridos (p. Ej., Ionic, etc.)

Probablemente tendrá que pensar en las cosas de manera similar, por lo que incluso si el código es muy diferente, no se perderá por completo.

Si desea expandir sus habilidades a otros espacios / áreas, también tiene algunas opciones atractivas:

  • El obvio es Java “vainilla” para escritorio, CLI o web. Esto es sorprendentemente bastante diferente de Android Java, pero aún debería ser bastante familiar para usted. Querrás optar por algo como Eclipse o Netbeans en lugar de Android Studio. Hay mucho por hacer, y todavía es un lenguaje muy solicitado.
  • C # está bastante cerca de Java (solo Microsoft, obviamente), y viene con el bien construido Visual Studio. Tienes tanto desarrollo de escritorio como web con esto.
  • Scala es un lenguaje funcional que se ramifica desde Java. Todavía puede desarrollar programas Java esencialmente normales, pero también puede jugar con FP si está interesado.

Soy dueño de una agencia de desarrollo de aplicaciones móviles, y como alguien que contrata desarrolladores, recomiendo aprender sobre el desarrollo de aplicaciones híbridas / multiplataforma.

Se especula mucho que el híbrido será el futuro del desarrollo de aplicaciones móviles. En mi opinión es más que especulación, es realidad.

En la actualidad, existen limitaciones para el desarrollo no nativo, pero esto cambiará en el futuro. Dependiendo de lo que se necesite, una aplicación móvil híbrida puede ser la solución ideal hoy en día.

La mayoría de nuestro trabajo es nativo, pero tenemos suficiente demanda de multiplataforma / híbrido que probablemente no contrataría a un desarrollador de Android que no pudiera escribir aplicaciones multiplataforma.

Examinar:

  • HTML5, CSS y Javascript
  • PhoneGap
  • Iónico
  • Reaccionar nativo

También insto a cualquier desarrollador de aplicaciones a tener cierto grado de familiaridad con el desarrollo front-end y back-end.

Comprenda los conceptos de back-end (por ejemplo, cómo las API y los servicios web interactúan con la base de datos y cómo su aplicación encaja en el diseño general de la solución).

Comprender las mejores prácticas de diseño de interfaz de usuario. No necesita ser un experto, pero cuanto más sepa, más valor aportará a un proyecto … y un empleador.

Recomendaría aprender el lado .NET de las cosas. Java es muy similar a C #, por lo que no tendrá muchos problemas para familiarizarse. En segundo lugar, puede comenzar a programar para todos los sistemas operativos móviles, incluido Windows Phone. Además, .NET tiene una variedad de idiomas para elegir. C # es uno, F # es impresionante y realmente interesante, ya que es un lenguaje funcional y orientado a objetos en uno. Comparte todas las bibliotecas como otros lenguajes .NET para que no tenga que volver a aprender eso. Un gran ahorro de tiempo. Otros lenguajes para .NET incluyen C / C ++, D, Javascript, Nemerle, Visual Basic y Swift (Silver es lo que realmente se llama). En realidad, también puede ejecutar código Ruby y Python usando lo siguiente:

IronRuby.net /

IronPython.net /

El IDE (Visual Studio) es gratuito y potente y está disponible en Visual Studio – Herramientas para desarrolladores de Microsoft

Sugiero JavaScript. JavaScript es compatible con motores de juegos como Unity y herramientas multiplataforma como Titanium. Ser capaz de crear juegos y aplicaciones para todas las plataformas móviles aumentará su público objetivo y facilitará algunas cosas incluso en dispositivos Android. JavaScript es muy diferente a Java, así que no intentes ajustarlo a los paradigmas de Java que conoces. La buena noticia es que JavaScript es un lenguaje muy tolerante, por lo que no debería ser demasiado difícil de aprender. Además, dado que JavaScript es tan popular, los recursos gratuitos de aprendizaje en línea son fáciles de encontrar. ¡Buena suerte!

Eres un desarrollador de aplicaciones móviles para Android. Eso es útil para aproximadamente la mitad de la industria (no tanto). La otra mitad es completamente diferente (iOS).

Esa otra mitad de la industria está adoptando un lenguaje de programación completamente nuevo que se considera mucho mejor que la última generación, más fácil de aprender y que reemplazará fácilmente al anterior. La compensación y la demanda también suelen ser más fuertes para esa plataforma (iOS).

No solo eso, sino que la plataforma en la que trabaja actualmente (Android \ Java) podría reemplazarse por una nueva (Android \ Swift) en el futuro.

¿Y tiene problemas para determinar si debería aprender qué, Ruby on Rails vs. Python?

Creo que Swift puede ser una opción adecuada dada su situación. Pero esa es solo mi humilde opinión.

Como conoce bien Java, eso es bastante bueno para un desarrollador de Android, ya que las aplicaciones de Android se basan en Java. Sin embargo, si realmente desea ampliar sus habilidades, entonces probablemente debería aprender Corona SDK, que se basa en el lenguaje de programación LUA. Los tres idiomas principales basados ​​en la web, HTML, CSS y Javascript también son buenos idiomas para codificar aplicaciones de Android. Sin embargo, diferentes tipos de aplicaciones requieren diferentes lenguajes de programación. Por ejemplo, si está codificando un juego, Javascript y los motores de juego como Unity son excelentes para crear juegos.