En esta entrada quiero expresar mi opinión acerca de una vieja dicotomía del mundo de la programación. ¿Conviene especializarse en alguno de los tantos nichos de programación? ¿O conviene tener un dominio general y poder adaptarlo a cualquier tecnología?
En mi caso particular me he decantado por la segunda opción para mi carrera, pero siempre tuve la duda de qué hubiera pasado si me decidía por la primera. ¿Qué hubiera sido de mi carrera como programador si me especializaba en una tecnología puntal?
Pero antes que nada comencemos definiendo bien qué es un nicho en programación.
Contenido
Los nichos de programación
Un nicho es un sector puntual del amplio espectro de tecnologías que existen allá afuera.
En mi opinión, para que una tecnología sea nicho tiene que ser poco popular aunque puede ser una subcategoría de algo popular. Pongo un ejemplo para que sea más fácil de ver: Magento es un e-commerce de PHP que tiene una gran comunidad, pero no es tan popular. PHP por su parte sí lo es. Magento es una tecnología de nicho.
Como vengo del mundo PHP me vienen a la mente otros nichos similares a Magento. Entre ellos, puedo nombrar a Drupal y Joomla, entre otros. Incluso OpenCart y PrestaShop son nichos.
Estoy seguro de que si venís de otro lenguaje rápidamente vas a identificar esos nichos.
Meterse en un nicho implica resignar tiempo de estudio y de trabajo con tecnologías que están de moda o que están muy demandadas en el mercado laboral por esa tecnología de nicho, que quizás no se actualiza desde hace años.
Mantenerse en el nicho insume tiempo y esfuerzo, pero tiene su recompensa. Pero, ¡cuidado! También tiene sus riesgos.
Veamos las ventajas y las desventajas de los nichos de programación.
Ventajas de los nichos de programación
Pagan mejor
En general, un especialista en una tecnología puntual gana más que un programador genérico. Esto tiene bastante sentido, ya que se supone que los especialistas son pocos.
Eso sí, para lograr ser un especialista es necesario dedicar mucho tiempo de estudio y de trabajo en esa tecnología de nicho. Esto se traduce a conocerte las diferentes versiones, estar metido en la comunidad, visitar foros con frecuencia y estar conectado con la comunidad de desarrolladores de esta tecnología de nicho.
Requieren poca actualización técnica
Los nichos tecnológicos giran en torno a una misma tecnología que se actualiza muy de vez en cuando. Esto implica que los cambios entre versiones son menores y que no va a ser necesario pasar horas aprendiendo nuevas funciones.
En general, alcanza con lo que ya se sabe y lo nuevo se va aprendiendo con el correr del tiempo. Pero hay que tener en cuenta que esto no aplica para todos los nichos. Algunos son muy movidos y requieren actualización constante.
Poca competencia en el mercado
Los nichos de programación no son los más elegidos por la mayoría de los programadores. Los desarrolladores nos solemos volcar por las tecnologías generales y ponemos énfasis en las más modernas y en aquellas que están de moda. Es lo que el mercado pide.
Esto hace que los nichos queden vacíos y las pocas ofertas que hay, sean fácilmente tomadas por los todavía menos programadores de nicho.
Yo lo sé de primera mano con el caso de Drupal. A pesar de apenas haber trabajado con esta tecnología, al día de hoy me siguen llegando ofertas de trabajo para programar en ella. Me llegan a mí porque sigo siendo programador PHP y al no haber tantos especialistas en Drupal, los profesionales de RR.HH. buscan lo más parecido que encuentran. Debe haber pocos desarrolladores Drupal para cubrir la necesidad del mercado.
Pero, ¡cuidado! Porque esta ventaja tiene su contraparte en forma de desventaja. Los nichos tienen mercados pequeños y algunas tecnologías no son usadas y ofrecen poca salida laboral. Lo analizo más adelante.
Desventajas de los nichos de programación
Desactualización general
Estar metido en una tecnología de nicho insume tiempo. Y ese tiempo insumido no nos permite actualizarnos en otras tecnologías más modernas. Esto puede hacer que en unos años estemos completamente desactualizados en materia de programación.
Esto se puede potenciar con la siguiente desventaja.
Riesgo de obsolescencia
Así como esa tecnología se puede usar mucho durante varios años, también de un día para el otro puede dejar de ser necesaria. Y así como así, desaparece por cualquier motivo.
A mí me pasó con Zend Framework. Yo la rompía con esta tecnología. Era el framework más complejo y más profesional de PHP, respaldado por Zend, la gran empresa detrás de PHP. Pero Microsoft compró Zend y el framework quedó relegado. Hoy sigue existiendo. Se llama Laminas y muy poca gente lo conoce.
Si bien todo el conocimiento que tengo de frameworks MVC ha quedado en mi mente y mucho de eso lo he logrado plasmar en otros frameworks como Laravel o NestJS, lo cierto es que todo lo específico que sabía de Zend Framework, no sirve más para nada. Hay que aceptarlo.
Mercado reducido
Los nichos son tecnologías que no son masivas, por lo que puede ser que haya poco trabajo vinculado. A veces hay más programadores que oportunidades incluso en estos nichos. Esto se hace evidente cuando una tecnología deja de ser útil y comienza el camino hacia su inexorable desuso.
Por eso hay que tener cuidado y estar atentos siempre a los cambios que puede haber en cuanto al mantenimiento de la tecnología. De esta forma podemos anticiparnos a la tan temida obsolescencia que lleva a la inevitable reducción del mercado laboral.
Hartazgo
Puede ocurrir que un día te pudras de programar siempre en la misma tecnología, con los mismos problemas y las mismas soluciones. Esto es bastante común y suele ocurrir luego de trabajar varios años con el mismo lenguaje de programación.
A mí me pasó con PHP, que es una tecnología bastante amplia. No me quiero imaginar lo que sería si programás en algo mucho más puntual.
¿Meterse en el nicho o no?
Me gustaría conocer la opinión de otros programadores sobre este tema. ¿Cuál es tu caso? ¿Qué decidiste hacer con tu carrera o a qué te ha llevado tu carrera lo hayas querido o no?
¿Tuviste experiencias desde dentro de algún nicho? ¿Coincidís con las ventajas y desventajas que planteo en este artículo? ¿Hay algo más que te gustaría agregar?
Más contenido sobre programación y modo de vida freelancer en Crónicas Freelancer
Espero que este artículo haya sido de tu interés. Dejame un comentario al final del artículo. Tu experiencia y opinión es muy importante para este artículo.
Si estás buscando hosting, te recomiendo Digital Ocean. Seguí este enlace para obtener US$ 200 de crédito para usar en un periodo de 60 días.
Te invito a que me sigas en las redes: LinkedIn, X, GitHub e Instagram. También estoy en Codewars.
Eso es todo. Muchas gracias por tomarte el tiempo de leerme.
Hasta la próxima.