Logo de JavierSG
Carrera

Aprender a programar también es aprender a tomar decisiones

Publicado el 2 de agosto de 2026 por Javier

Mi aprendizaje como desarrollador no ha consistido solamente en estudiar lenguajes o aprender frameworks. También ha significado descubrir qué áreas me interesan, qué problemas quiero resolver y qué tipo de profesional quiero llegar a ser.

A lo largo de mi experiencia he tenido contacto con bases de datos, automatización, aplicaciones de escritorio, servicios backend y desarrollo móvil. Cada una de estas áreas me ha permitido conocer problemas diferentes y ampliar mi perspectiva sobre el desarrollo de software.

Sin embargo, con el tiempo he identificado una dirección que me interesa especialmente: el desarrollo backend y el diseño de sistemas mantenibles.

Aprender en proyectos reales

Los proyectos reales tienen una característica particular: rara vez se limitan a un ejercicio aislado.

Una consulta SQL puede funcionar correctamente en una prueba pequeña, pero después necesita integrarse con una aplicación. Una funcionalidad puede parecer terminada hasta que aparece un caso inesperado. Un sistema puede resolver el problema actual, pero resultar difícil de modificar cuando cambian los requisitos.

Estas experiencias me han ayudado a prestar más atención a aspectos como la validación de datos, la organización del código, el manejo de errores y la comunicación entre componentes.

También me han enseñado que comprender el problema es tan importante como conocer la tecnología que utilizaremos para resolverlo.

No quiero aprender tecnologías solamente por acumularlas

Es tentador comenzar un proyecto nuevo cada vez que aparece un lenguaje o framework interesante.

A mí también me gusta explorar tecnologías diferentes. He trabajado con herramientas del ecosistema .NET, he explorado Python y me interesa seguir aprendiendo Go y Kotlin.

Pero quiero evitar que mi aprendizaje se convierta en una colección de tecnologías que conozco superficialmente.

Mi objetivo es construir fundamentos sólidos: programación, estructuras de datos, bases de datos, diseño de APIs, pruebas y arquitectura de software.

Después, cada tecnología nueva debería ayudarme a resolver un problema concreto o comprender una perspectiva diferente.

El valor de equivocarse

No todas las decisiones técnicas terminan siendo las mejores.

A veces una herramienta que parecía adecuada genera más fricción de la esperada. Otras veces una arquitectura resulta demasiado compleja para el tamaño del proyecto. También hay ocasiones en las que una solución funciona, pero después descubres que podría haberse diseñado de una manera más sencilla.

Considero importante revisar esas decisiones sin convertir cada error en una derrota personal.

Lo importante es entender qué ocurrió, identificar qué podríamos cambiar y aplicar lo aprendido en el siguiente proyecto.

El desarrollador que quiero ser

Mi objetivo es convertirme en un desarrollador backend capaz de diseñar, implementar y mantener servicios de calidad.

Quiero comprender las decisiones detrás de una arquitectura, escribir código que otros desarrolladores puedan mantener y ser capaz de justificar mis elecciones técnicas con argumentos, no solamente con preferencias personales.

Todavía tengo mucho que aprender, y precisamente por eso quiero documentar parte de mi recorrido en este blog.

No pretendo presentar cada artículo como una verdad definitiva. Quiero compartir lo que voy descubriendo, las soluciones que exploro y las preguntas que todavía estoy intentando responder.

Al final, crecer como desarrollador no consiste en saberlo todo. Consiste en desarrollar la capacidad de aprender, razonar y tomar mejores decisiones con cada proyecto.