Los pasos de un programador

Caminos que puedes tomar en tu vida como programador, ya sea especializándote en desarrollo y/o viendo otras áreas.

Rodríguez Patiño, Eduardo
2020-10-01 | 32,713 lecturas
Actualizado:
ACLARACION

La siguiente entrada ha sido escrita en base a mi experiencia profesional y la finalidad no es desmerecer a ningún programador. Por el contrario, lo que se busca es compartir diferentes experiencias y caminos que puede seguir un desarrollador software.

Esta publicación usa como referencia los rangos salariales de Estados Unidos.

Comencemos esta entrada segmentando o dividiendo en grupos a los programadores:

TIPOS DE PROGRAMADORES

Los programadores web (php, asp.net, java, ruby, python, etc), los programadores de aplicaciones móviles (android/ios), los de escritorio (.net, java, otros) y ahora último los DevOps.

WEB DEVELOPERS

Haré enfasis en los desarrolladores web porque es mi día a día, y en lo que mayor experiencia tengo.

FRONT-END

Desarrolladores que dominan la tecnología del lado del cliente como JavaScript, Html, CSS, etc.

  • ¿Qué hacen?: landing pages, plantillas para CMS, aplicaciones usando frameworks SPA, RWD (Responsive Web Design), Photoshop a HTML, entre otros.
  • Remuneración: suele ser menor a la de un BackEnd.
  • Demanda: bastante alta, sobre todo en agencias digitales.
BACK-END

Aunque el concepto Back-End no se amarra al entorno web, vamos a ir por ese camino y son aquellos que desarrollan para el lado del servidor, dominan un lenguaje de programación como Java, .NET o PHP, con conocimientos en base de datos (Oracle, SQL Server, MySQL, etc).

  • ¿Qué hacen?: preparan todo para el Front-End, desarrollan APIs, modelan base de datos, mejoran el performance de la web, conocen de frameworks webs (ej: laravel, asp.net core), etc.
  • Remuneración: buena remuneración.
  • Demanda: bastante alta pero el Front-End tiene mayor demanda.
FULL-STACK

Asi como el concepto de back-end no solo abarca a web, en esta publicación vamos a darle enfoque a web y es basicamente una fusión entre el Front-End y Back-End.

  • ¿Qué hacen?: combinan habilidades back-end y front-end para la entrega de un producto. Siempre habrá un favoritismo ya sea por Front-End o Back-End.
  • Remuneración: por encima del Back-End y Front-End.
  • Demanda: el mercado ya no pide back-end y front-end, ahora piden full-stack.

MOBILE DEVELOPERS

El mercado esta divivido en IOS y Android que son los OS más populares para los dispositivos móviles.

  • ¿Qué hacen?: realizan apps o aplicaciones para diferentes dispositivos móviles.
  • Remuneración: buena remuneración aunque IOS es mejor cotizado.
  • Demanda: alta pero Android tiene mayor demanda por tener mayor presencia en en el mercado.

DEVOPS

Son las personas encargadas de monitorear todos los pasos del desarrollo de software que abarca desde la integración, pruebas, puesta en producción y adminstración de la infraestructura o servidores cloud si queremos dar un ejemplo.

  • ¿Qué hacen?: integración continua, ejecución de pruebas, deploy continuo, soporte cloud.
  • Remuneración: buena remuneración.
  • Demanda: baja, de cada 10 developers se necesitan entre 1-2 DevOps.
El problema de los DevOps es que no hay oferta como tal, sino más bien se suele recibir mensajes como "es un plus tener conocimientos en DevOps". Por lo tanto, el Developer termina asumiendo el rol de un DevOps.

DESKTOP DEVELOPERS

Los programadores de escritorio desde mi punto de vista cada vez son menos por razones que la tendencia es a enfoque web o mobile.

  • ¿Qué hacen?: desarrollo interno para la empresa como puntos de venta, integración con hardware, similares.
  • Remuneración: en general por debajo.
  • Demanda: tiene demanda menor demanda a comparación de los demás.

¿EN QUE ESPECIALIZARME?

La formación de los programadores vienen por 2 caminos, el primero que son de las universidades y han visto tecnologías como .NET/Java y otros cursos no ligados al desarrollo; por lo tanto, tienen varios caminos a elegir. Por otro lado, los autodidactas que aman el código y optan por aspirar a liderar un equipo o emprender un negocio.

  • Arquitecto de software: si lo tuyo es el código puedes aspirar a ser un arquitecto por lo cual tendrás que aprender a implementar patrones de diseño, buenas prácticas, elegir las tecnologías correctas y asegurar el crecimiento del software en base a las necesidades del negocio.
  • Data Scientist: el experto en convertir datos en conocimientos ya sea de un CSV, Excel, base de datos, Google Analytics, etc, através de modelos matemáticos y estadísticos para tomar decisiones que resuelvan las dudas de las empresas.
  • Base de datos: desde administrar una base de datos hasta realizar consultas complejas para generar reportes. Esto no esta ligado a solo el área de tecnología, me sorprendió ver personas de administración tomando cursos de SQL.
  • Quality Assurance: asegurar la calidad del producto a través del planeamiento de pruebas, implementación y supervición.
  • Analista Funcional: capturar los requerimientos y modelar los procesos para satisfacer la demanda del negocio.
  • Project Managment: una especialidad que nos da las habilidades para poder sacar adelante un proyecto implementando buenas prácticas de gestión.

CUÉNTANOS ACERCA DE TI

De hecho que hay más especialidades, deja un comentario sobre en que te estas especializando actualmente o que camino te gustaría seguir.