“Programar es jugar ajedrez contra lo invisible: cada línea es un movimiento, cada error una pieza perdida, y cada solución elegante, una partida bien ganada.”
Preámbulo
A veces, el rumbo de nuestra vida cambia con un gesto tan simple como levantar la mano. En 1985, cuando las computadoras aún parecían algo lejanas (más propias de películas y libros que de las aulas), se ofreció una beca de computación a estudiantes de una secundaria pública. La invitación era clara: formarse como capturista de datos o como programador analista. La respuesta, sorprendentemente, fue el silencio. Cientos de estudiantes reunidos y nadie dispuesto a dar el paso.
Ese silencio se rompió con una palmada en el hombro y una sugerencia casi casual: “levanta la mano”. Así comenzó un camino que, sin saberlo entonces, se extendería a lo largo de los años y atravesaría disciplinas tan diversas como la ingeniería, la física, la matemática y la investigación científica.
Lo que siguió fue una suma de aprendizajes: diagramas de flujo dibujados a mano, clases opcionales al amanecer, lenguajes como Logo y BASIC, Fortran, COBOL y una certeza que el tiempo confirmó una y otra vez: todo lo que se aprende, tarde o temprano, encuentra su lugar.
Ese conocimiento fue útil en la universidad, en proyectos de acústica y física médica, en metrología láser, en visión robótica y, más recientemente, en el uso de herramientas como R Studio para abordar problemas matemáticos con una mirada moderna.
Uno de los puntos más enriquecedores de este recorrido ha sido la colaboración con el matemático mexicano Dr. Francisco Bulnes, en investigaciones relacionadas con la Nueva Cosmología Geométrica y su Tapiz Electrodinámico.
Estos trabajos, además de profundizar en conceptos complejos, han permitido generar representaciones visuales que acercan ideas abstractas al entendimiento humano, y cuyos resultados han sido publicados en la Revista de Divulgación Científica y Tecnológica Tecnopia.org.
Este artículo nace con la intención de compartir esa experiencia de forma sencilla y accesible: mostrar cómo el aprendizaje continuo, la curiosidad y la imaginación pueden converger en soluciones matemáticas, en retos de programación o incluso en un puzzle de ajedrez.
Ojalá estas líneas inviten al lector a imaginar, a explorar y a descubrir que, muchas veces, todo comienza con la decisión de atreverse a levantar la mano.

En el vasto territorio donde convergen la lógica, la creatividad y la intuición, existe una plataforma que se ha convertido en un campo de entrenamiento para millones de programadores: HackerRank. Más que un sitio de desafíos técnicos, es un escenario donde las ideas toman forma a través del código, donde cada problema es una invitación a pensar distinto. Su catálogo abarca miles de retos diseñados para ser resueltos en más de cincuenta lenguajes de programación, y su sistema de certificaciones en algunos lenguajes, permite medir y demostrar habilidades con un rigor notable.
Hace poco, tras una etapa intensa de estudio y práctica constante, obtuve cuatro certificaciones en esta plataforma: una en Python, otra en Java, y dos centradas en la resolución de problemas matemáticos con C++.
Cada certificación fue una pequeña victoria, no solo porque validaba un conjunto de conocimientos, sino porque representaba horas de análisis, depuración y reflexión estratégica. Esa experiencia me inspiró a mirar la plataforma desde otra perspectiva: no solo como un lugar para mejorar, sino también como un terreno fértil para enseñar, documentar y compartir.
Entre la vasta colección de retos, hay un conjunto que capturó profundamente mi atención: diez problemas inspirados en el ajedrez. Estos ejercicios, más que simples rompecabezas, son puentes entre dos mundos que siempre me han fascinado: la programación y el pensamiento ajedrecístico. En ellos se combinan el rigor matemático, la elegancia de los algoritmos y la capacidad de anticipar movimientos, tal como lo haría un jugador sobre un tablero.
Con el propósito de explorar esta intersección y compartirla de manera detallada, decidí abrir una nueva cuenta en HackerRank, destinada exclusivamente a documentar la solución de estos diez problemas. A partir de esta experiencia nacerá la serie de artículos que hoy comienza, y cuyo objetivo no es únicamente mostrar código funcional, sino invitar al lector a elevar su visión del ajedrez, llevándolo a territorios donde las reglas del juego se transforman en estructuras lógicas y patrones computacionales.
Hoy, 13 de diciembre, cerrando la primera semana de mis vacaciones, tomé la decisión de iniciar esta aventura escrita. No solo deseo explicar cómo resolver cada desafío, sino también compartir el proceso creativo que me acompaña en cada uno: la construcción del diagrama de flujo, el análisis de rutas posibles, las decisiones que conducen al diseño del algoritmo y, finalmente, la implementación en lenguajes como C++, R Studio, Pascal, Python o Java.
Resolver un problema en HackerRank no termina cuando el código compila; termina cuando todas las pruebas visibles y ocultas se superan y aparece en la pantalla el mensaje de felicitación que simboliza que la lógica ha sido realmente puesta a prueba.
La analogía con el ajedrez es inevitable. En ambos universos, cada movimiento implica prever varios escenarios posibles. En una partida, un solo error puede alterar el rumbo completo; en programación, una instrucción mal ubicada puede desatar un efecto dominó.
El ingenio, la estrategia y la capacidad de adaptación son elementos comunes a ambos campos. Diagramar un algoritmo se parece mucho a visualizar un ataque doble o una combinación táctica: requiere ver más allá de lo inmediato, imaginar futuros posibles y actuar con precisión.
Cada lenguaje que utilizo aporta un matiz distinto a esta experiencia. C++ es la herramienta para el rendimiento y el control absoluto; R Studio, para entender datos desde la mirada estadística; Pascal, para mantener viva la disciplina estructural; Python, para la claridad y elegancia del pensamiento; Java, para la robustez y la arquitectura ordenada. Enfrentar un mismo problema desde distintos lenguajes es como jugar la misma posición con aperturas diferentes: la esencia permanece, pero el camino revela nuevas posibilidades.
Esta serie de artículos nace con la intención de guiar al lector a través de ese viaje: desde el planteamiento del problema hasta la solución final, pasando por las decisiones más importantes y las estrategias conceptuales.
Cada artículo será una pieza en sí misma, pero juntos formarán un recorrido que demuestra cómo el ajedrez y la programación pueden encontrarse en un punto común: el del pensamiento preciso, creativo y metódico.
En última instancia, mi deseo es que cada lector encuentre aquí una fuente de inspiración. Que descubra que resolver un algoritmo puede sentirse como jugar una partida brillante, y que mover un Caballo en un tablero puede ser tan emocionante como diseñar una solución elegante.
Este es el inicio de una exploración más profunda, donde las piezas del ajedrez y las líneas de código se entrelazan para revelar desafíos que no solo ponen a prueba nuestras habilidades, sino también nuestra capacidad de imaginar.
Bienvenidos al tablero invisible.
¡Comienza la partida!.
“Porque al final, cuando el último algoritmo encuentra su forma y la última pieza ocupa su casilla correcta, comprendemos que pensar bien (en ajedrez o en programación) es, en esencia, la misma partida.”
















