89. ¿Qué tecnología elegir como programador?

Transcripción

Lo primero que tenemos que aclarar, es cómo funciona el mundo de la programación porque es algo bastante complejo, sobre todo para aquellas personas que no hayan entrado aún en este mundo.

En primer lugar, tenemos distintos “entornos” en los cuales podemos programar: programación para móviles, para web y para programas de ordenador. Pero no solo es eso, también existen “sub-entornos” dentro de estos “entornos”.

Por ejemplo, en el caso de los móviles, tenemos programación para Android, iOS e híbrida; en el caso de la web, están los CMS, el mundo del frontend y backend; y finalmente, en la programación de escritorio, hay Windows, Mac y también un mundo híbrido como las tecnologías Java.

Ahora bien, al interior de cada “sub-entorno”, existen diferentes lenguajes o tecnologías. Por ejemplo, en el caso del backend dentro del mundo de la web, tenemos PHP, JavaScript y muchos frameworks distintos dentro de estos lenguajes como Python. En el caso de los CMS, tenemos WordPress, Prestashop, Joomla; en el mundo de las aplicaciones móviles híbridas, está Flutter, React Native, etc.

Dicho esto, se puede ver que es un mundo muy complejo así que, lo que voy a hacer es tocar algunos puntos que yo creo son importantes a la hora de decidirse por algo concreto. Además, yo daré mi respuesta personal a cada uno de estos puntos.

¿Cómo decidirse por algo en concreto?

Elegir un entorno que te guste

El primero, es elegir un entorno que te guste personalmente. De hecho, lo mejor que puedes hacer en este caso es preguntarte a ti mismo ¿Qué te gusta? Por ejemplo, ¿te gustan más los móviles, la web o estos nuevos dispositivos del internet of things? ¿Quizás eres un fan de Apple y te gustaría programar solo para éste?

En mi caso concreto, me gustan muchos los móviles y en general, el mundo relacionado con la tecnología móvil. Especialmente, porque al programar, me gusta tocar y comprobar en la palma de mi mano, lo que estás programando. Por tanto, me gusta y he decidido que los móviles es en lo que me he querido enfocar.

Además, también hay otras cosas que me gustan. Por ejemplo, el internet of things también es una cosa que me llama la atención. Sin embargo, me he enfocado en los móviles. Sobre todo, porque hace 5-6 años cuando yo empecé, aún no existían estos dispositivos pequeños del internet of things o, por lo menos, no estaban tan popularizados para programar en ellos, como ahora sí lo están.

Elegir una tecnología/lenguaje que te apasione

El segundo punto, es elegir una tecnología/lenguaje que te apasione. Esto, es más complejo de resolver porque la verdad es que no sabrás si una tecnología te gusta al 100% si no te pones primero a programar con ella.

De todas maneras, si puedes, hazte una idea de cómo es la tecnología, cómo funciona o qué problemas trata de resolver al mirar su documentación o contenidos promocionales.

Por ejemplo, es posible que tengas videos o una web donde expliquen de qué va esa tecnología, lenguaje, framework (llámalo como quieras). En mi caso, elegí Flutter, porque me permite desarrollar de forma rápida aplicaciones para Android y iOS con una calidad nativa.

Flutter tiene funcionalidades como el Hot Reload que te permite ver los cambios muy rápidamente cuando estás programando con los dispositivos, lo cual, con las aplicaciones nativas, hasta el momento, no pasa ya que tardas mucho tiempo desde que haces un cambio hasta que lo ves reflejado en el móvil para ver si funcionaba o no. Por tanto, es posible ir mucho más rápido en el desarrollo.

Luego está la ventaja de que solo necesita tener una sola base de código; lo cual es la idea esencial de las aplicaciones híbridas. Asimismo, mantiene una calidad nativa porque Flutter, no es como las otras tecnologías web o híbridas que van un poco más ralentizadas, ya que tiene su propio engine que te permite mantener esta calidad nativa y que las aplicaciones funcionen bien.

Por otra parte, utiliza Dart, el cual es un lenguaje moderno inventado por Google y, aunque no es muy conocido, sí tiene muchas cosas que tienen los lenguajes modernos.

Especialización

El tercer punto, es la especialización. Una de las cosas que tienes que tener claro desde el primer momento es que no podemos abarcar todo.

Como decía, a mi también me llaman la atención otras cosas, como los dispositivos de internet of things, u otras cosas. Sin embargo, sé que no puedo intentar ser bueno en todo. Si realmente quieres ser bueno en algo, necesitas especializarte y ser muy bueno en eso; aprenderlo bien, trabajar mucho tiempo con ello, saber donde están los errores y cómo solucionarlos, etc.

Visto desde el otro lado, si tratas de abarcar muchas tecnologías, no vas a abarcar nada: el que mucho abarca, poco aprieta. Lo importante aquí, es especializarse en algo que tenga una demanda suficiente y, de esto vamos a hablar en el siguiente punto.

En mi caso, me especializo en aplicaciones móviles con Flutter. De hecho, este fue uno de los errores que cometí cuando empecé con el tema de las aplicaciones: quise abarcar tanto las aplicaciones nativas de Android, como las de iOS.

Después de 2-3 meses, vi que eso era totalmente inviable porque no me podía mantener al día y ser bueno en ambos entornos. Era algo muy complejo de mantener, así que pase a Android y finalmente este año, es cuando ya estoy empezando con Flutter, pero siempre eligiendo una única tecnología.

Demanda

Vamos al cuarto punto, la demanda. La demanda de aquello a lo que te quieras dedicar es muy importante ya que, al fin y al cabo, si quieres vivir de ello (que supongo ese es el objetivo), necesitas que alguien esté interesado en esa clase de servicios y tecnologías.

Lo importante es encontrar el equilibrio entre especializarse y la demanda, y esto ya dependerá de cada caso.

Si quieres trabajar para una empresa, tienes que asegurarte que las empresas de tu alrededor utilizan esa tecnología y de que hay puestos de trabajo para ello. Si eres freelance, aplica lo mismo: tendrás que ver si los clientes a los cuales te quieres dirigir, realmente les interesa esa tecnología y que es la mejor opción para ellos.

En mi caso, elegí Flutter porque, a pesar de ser una tecnología nueva y ahora no haya muchos trabajos o aplicaciones hechas con él, creo que es lo que muchas pequeñas y medianas empresas, y start-ups buscan, que es para quienes yo generalmente trabajo.

Representa una forma de desarrollar aplicaciones de forma rápida, sencillas y a un coste no tan elevado como las nativas, pero manteniendo la calidad.

¿Tiene futuro esa tecnología?

Finalmente, el quinto punto: ¿tiene futuro esa tecnología?, ¿es un tipo de programación que va a quedar obsoleta por otras más nuevas o que llevan más tiempo?

Es decir, me refiero a si vale la pena dedicarle tiempo a aprender a utilizarla bien; o si por el contrario, no se lo merece porque esa tecnología está en decadencia en favor de otras.

Esto es algo muy importante. Por ejemplo, en mi caso, aunque Flutter sea una tecnología muy buena y sea difícil ver hacia donde va a ir, creo firmemente que es algo que tiene mucho futuro, y que es algo hacia donde el desarrollo de las aplicaciones móviles tiene que ir.

Si te ha resultado útil este artículo puedes hacer que también lo sea para otras personas compartiéndolo en , LinkedIn o .

Como siempre para cualquier duda o sugerencia puedes contactar conmigo y estaré encantado de poder ayudarte.

¡Suscríbete

a la newsletter!

Simple y llanamente te mantendré al día una vez al mes a través de un email con artículos o noticias de interés relacionadas con el mundo de las aplicaciones móviles. ¡Nada de spam!