| DJC | Tutoriales |

Programación Competitiva - DJC

La programación competitiva es una disciplina en la que se resuelven problemas algorítmicos bajo condiciones de tiempo limitado, a menudo en plataformas y competencias online como Codeforces, HackerRank o LeetCode.

Esta práctica ayuda a mejorar habilidades clave como la lógica, el pensamiento crítico, la optimización de algoritmos y la rapidez para resolver problemas complejos.

Es muy útil para quienes buscan fortalecer su capacidad para resolver desafíos técnicos, prepararse para entrevistas de trabajo en tecnología, y participar en concursos internacionales que pueden abrir puertas a becas, empleos o reconocimientos.

En esta sección comparto mi progreso y experiencias en competencias de programación, enfocándome principalmente en Codeforces. Aquí podrás encontrar análisis, soluciones y resultados de los distintos concursos en los que participo.


Plataformas de Programación Competitiva

Las plataformas de programación competitiva son espacios en línea donde los programadores pueden resolver problemas algorítmicos, participar en concursos en tiempo real y mejorar sus habilidades a través de la práctica constante.

Principales Plataformas

  • Codeforces
    Una de las plataformas más populares. Ofrece concursos semanales, un amplio problemset y un sistema de rating similar al ajedrez.

  • AtCoder
    Plataforma japonesa conocida por la calidad y claridad de sus problemas. Muy recomendada para aprender desde lo básico hasta temas avanzados.

  • LeetCode
    Enfocada en entrevistas técnicas y práctica de algoritmos. Además de competencias, es ideal para prepararse para trabajos en tecnología.

  • HackerRank
    Combina competencias de programación con práctica por categorías (algoritmos, estructuras de datos, IA, SQL, etc.).

  • CSES Problem Set
    Colección de problemas muy bien organizada, ideal para practicar progresivamente algoritmos y estructuras de datos.

  • TopCoder
    Una de las plataformas más antiguas de programación competitiva, famosa por sus Single Round Matches (SRM) y marathon matches. Pionera en la comunidad de programación competitiva.

  • Kaggle (orientado a ciencia de datos)
    Aunque no es estrictamente de programación competitiva tradicional, permite resolver retos de machine learning y análisis de datos en comunidad.

Cómo elegir una plataforma

  • Si buscas concursos frecuentes → Codeforces o AtCoder
  • Si quieres prepararte para entrevistas → LeetCode o HackerRank
  • Si prefieres aprender de forma progresiva → CSES Problem Set
  • Si quieres vivir competiciones clásicas → TopCoder

Recursos adicionales

  • Guías de iniciación en cada plataforma
  • Comunidades en Discord, Reddit y grupos locales
  • Blogs y tutoriales de entrenamiento competitivo

Competencias en Codeforces


Mis herramientas

Vim

Yo suelo programar en vim, la configuración de vim que hago es

" Customized
set nu
syntax on
set relativenumber
set encoding=utf-8
set list listchars=tab:>\ ,trail:.,precedes:{,extends:}

" Indentación por defecto en todos los archivos
set expandtab       " convierte tabs en espacios
set tabstop=4       " un tab = 4 espacios al mostrar
set shiftwidth=4    " autoindent usa 4 espacios
set softtabstop=4   " <Tab> y <BS> cuentan como 4 espacios
set autoindent      " copia la indentacion de la linea anterior
set smartindent     " indentacion un poco mas inteligente

tnoremap <C-j> <C-\><C-n>gt

suelo guardar esta configuración en un archivo(por ejemplo vimrc.log) o en (.vimrc) y luego podría cargarlo estando ya con vim así:

:source <nombre-archivo>

con el archivo vimrc.log sería

:source vimrc.log

Windows

Cuando estoy en windows suelo reducir el path así:

prompt $G$S

Próximamente iré agregando más concursos y contenido relacionado con estrategias y aprendizajes.

| DJC | Tutoriales |