El problema del dogmatismo
Tags: spanish, productivity
Published: 2022-12-12 13:22:33

Enfrentamos un problema más grande que nosotros mismos. La necesidad latente de defender una verdad nos lleva a un camino de ceguera absoluta.

Bienvenidos a otra de esas ideas que rondan por mi cabeza sin compasión. Este podría ser un tema muy complejo de tratar, especialmente por su naturaleza.

Escribir un artículo sobre dogmatismo es casi como contradecir tus propios argumentos. Pero antes que nada, analicemos el concepto:

> El dogmatismo es una posición filosófica respecto de la posibilidad del conocimiento que considera que es factible expresar verdades ciertas e indudables que no están sujetas a ningún tipo de revisión o crítica: los dogmas.

En resumidas palabras, una persona dogmática se aferra a una verdad indiscutible. No se cuestiona las pruebas existentes o su falta, frente a lo que esa persona considera una verdad absoluta.

Las religiones son las principales instituciones de los principios dogmáticos. Los dogmas se imponen a modo de creencias, generando personas que nos dicen cosas como:

> Dios existe, es algo que no podés comprender porque no tenés suficiente fe.

Yo no concibo la idea de que un desarrollador pueda ser creyente de una religión, porque en mi opinión esto contradice toda ciencia.

Pero mi idea no es atacar a los creyentes. Yo respeto las creencias porque entiendo la necesidad del ser humano ante la existencia de un ser superior. Mucha gente encontró la fuerza que necesitaba en la fe, dado que sus semejantes no podían proveerla.

No obstante, nuestro tema a abordar sigue siendo sistemas. Y vamos a hablar de dogmas a un nivel más tangible. Empecemos.

## X Lenguaje está muerto
Uno de los dogmas más molestos que existe. Cientos de publicaciones diarias hablando de cómo PHP, Java, COBOL, cualquier lenguaje de programación que tenga una fama bastante alta, pero que sea viejo, es víctima de este tipo de rumores.

Y hago un fuerte incapié en la palabra “dogma” porque estos individuos defienden a muerte su idea sin ningún tipo de argumento válido.

A veces simplemente miran Google Trends y dicen cosas como:

> Las búsquedas sobre PHP están bajando significativamente, va a morir pronto.

Pero son resultados vagos. No indican la verdad. Se basan en resultados estadísticos muy simples, no existe un análisis previo de muchas variantes que pueden invertir esos números.

Por ejemplo: PHP en sí quizá no sea tan buscado, pero esto pasa porque existen frameworks que le dieron mucha más popularidad y propósito, como Laravel.

Luego tenemos los casos de WordPress, Drupal, Joomla. Sistemas de gestión desarrollados en PHP. Por lo tanto, un lenguaje no muere simplemente porque no se esté buscando su nombre en Google.

## Linux es para programadores, Windows no
Este es el típico dogma del chico que le gusta que le peguen. Si algún día se quieren inmolar en las redes, usen este dogma. Si su idea es seguir viviendo un tiempo más, sigan leyendo.

No voy a mentirles: Cuando tenía 13 años, pensaba que esto era así. Me instalé Ubuntu y programé sólo con este sistema operativo por unos dos años.

No pongo en duda que las distribuciones de Linux facilitan ciertas cosas que en Windows quizá sean más rebuscadas. Por ejemplo el manejo de NodeJS en consola.

Sin embargo, pensar que en Windows no se puede desarrollar, es una aberración gigante. Y muchos que están leyendo esto puede que piensen algo como “pero eso es del pasado, ya no se puede pensar de esta manera”.

Temo decirte, mi querido lector, que todavía hay mucha gente que piensa así. Incluso cabe la posibilidad de que seas uno de ellos. Tranquilo, todavía estas a tiempo de curarte.

Programo en Windows hace años y no lo cambio por nada. Me resulta muy cómodo. Compenso las consolas medio pelo que tiene con una llamada Cmder.

Uso Android Studio y debo decir que me funciona mucho mejor que en Ubuntu o Debian. Además Windows 10 con un disco SSD vuela, porque requiere acceder a archivos constantemente.

Linux me encanta en muchas de sus distribuciones, pero en mi día a día siempre me sentí más cómodo con Windows. Es una elección personal.

Para concluir, quiero que entiendas esto: Linux, Windows y MacOS sirven perfectamente para programar. Quizá con una configuración más, o una menos, pueden hacer lo mismo.

Un sistema operativo no te hace mejor desarrollador. Programar en el sistema con el que realmente te sientas cómodo, si te hace uno bueno.

## No te dediques a X Tecnología, te vas a morir de hambre
Uno de los dogmas más derrotistas que conozco. Arraigado en las forjas de los desarrolladores que entraron en la industria sólo por el dinero, este dogma se pasa de generación en generación.

La parte divertida de sistemas, es poder dedicarte a lo que te gusta. Si te sentás horas, días, meses enteros a aprender determinada tecnología, por decantación, te vas a volver bueno.

Evidentemente, al aumentar un determinado skill, vas a recibir llamadas. Las empresas buscan todo tipo de tecnologías. Cada una tiene determinadas necesidades.

Podrías estudiar Machine Learning y entrar en una empresa donde te paguen muy poco porque realmente no lo requieren.

También podrías especializarte en PHP, y aplicar a una empresa con un fuerte enfoque a e-commerce con WordPress, ganando un montón por el valor de tus conocimentos en el lenguaje base.

> El éxito financiero es totalmente relativo a la necesidad de tu cliente o empresa.

Es cierto que hay tecnologías más demandadas que otras, pero seguimos en un mundo donde hay millones de posibilidades, y es humanamente imposible aplicar a todas.

Ya sea una tendencia o un nicho, vas a poder encontrar trabajo de la tecnología que quieras, siempre y cuando te guste y se especialices en ella.

Personalmente y desde lo más hondo de mi corazón, te aconsejo que no descartes algo que te gusta por la opinión de un dogmático frustrado.

## El dogmatismo atenta contra la ciencia
La programación es una ciencia dura. Lo hablamos en varios artículos, pero les dejo uno donde charlamos sobre los mecanismos de la misma:

Si sabemos que cualquier ciencia se basa en la construcción de teorías mediante la experimentación y elaboración de hipótesis, ¿cómo podemos imaginar el papel de un dogmático en este escenario?

Cuestionarlo todo es la base de un buen desarrollador. Algo no puede “funcionar porque sí”. Hay que entender los procesos que llevaron a esta conclusión.

La abstracción es una de las mejores cosas que nos ocurrió en sistemas. Por si no lo conocen, les dejo el concepto:

> La abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan. En programación, el término se refiere al énfasis en el “¿qué hace?” más que en el “¿cómo lo hace?” (característica de caja negra). El común denominador en la evolución de los lenguajes de programación, desde los clásicos o imperativos hasta los orientados a objetos, ha sido el nivel de abstracción del que cada uno de ellos hace uso.

El problema inicial con este concepto, es el avance tecnológico. Cuanto más abstraemos, las generaciones siguientes van elevando una capa tras otra, perdiendo conocimiento de valor en las capas de más abajo.

Les doy un ejemplo sencillo: Un chico de 10 años hoy que se crió con una tableta Android, desconoce el sistema de archivos que existe operando dentro de la misma.

Y muchos me dirán: Pero esto es excelente, porque evita preocuparnos en todo lo que existe dentro, funciona como una caja negra que nos devuelve lo necesario sin complicaciones.

Por supuesto, pero entender lo que hay detrás de esa caja negra es fundamental. Porque sino, ese chico va a entender sistemas con las últimas capas, las de usuario. Nunca va a poder desarrollar un sistema como ese, abstrayendo procesos, si no conoce lo que hay detrás.

Y la razón por la cual me meto en este tema enlaza directamente con los dogmas: El que conoce la superficie del funcionamiento de algo, es propenso a generar verdades irrefutables.

Porque desconoce la complejidad que existe bajo el mecanismo que está usando. Por ejemplo, una persona que se dedique a videojuegos empezando con Unity Engine, puede pensar que la gravedad en los juegos existe desde siempre.

Y si bien puede profundizar en entender el engine y ver que no es exactamente así, si no se sienta a estudiar algo de física, va a tener carencias y creencias equivocadas de cómo funciona todo.

En el mejor de los casos, a largo plazo termina desaprendiendo. En el peor, puede vivir con una idea preconcebida de cómo él cree que funcionan las cosas.

## Cuestioná todo
Hasta la librería más estable tiene bugs. Desarrollá pensamiento crítico a la hora de sentarte a usar una herramienta. La gente que dispuso las capas que te permiten abstraerte y centrarte en determinada tarea, puede que se haya equivocado, porque es humana.

Por ejemplo, a mi de vez en cuando se me rompe la compilación de proyectos en Android Studio. A veces simplemente limpiando la cache se arregla, pero otras debo entender que procesos de Gradle se ejecutaron detrás para producir tal fallo.

Si podés mantener esos cuestionamientos, generás pensamiento crítico, y esto te lleva a aplicar razonamiento lógico el cual te permite incluso gestionar el core de tus soluciones. Todo ventajas.

¡Nos vemos en el siguiente artículo!