Competitive Programming - DJC
Competitive programming is a discipline where algorithmic problems are solved under time constraints, often on online platforms and contests such as Codeforces, HackerRank, or LeetCode.
This practice helps improve key skills such as logic, critical thinking, algorithm optimization, and speed in solving complex problems.
It is very useful for those looking to strengthen their ability to tackle technical challenges, prepare for job interviews in technology, and participate in international competitions that can open doors to scholarships, jobs, or recognition.
In this section, I share my progress and experiences in programming contests, focusing mainly on Codeforces. Here you will find analyses, solutions, and results of the different contests I participate in.
Competitive Programming Platforms
Competitive programming platforms are online spaces where programmers can solve algorithmic problems, participate in live contests, and improve their skills through constant practice.
Main Platforms
-
Codeforces
One of the most popular platforms. It offers weekly contests, a large problemset, and a chess-like rating system. -
AtCoder
A Japanese platform known for the quality and clarity of its problems. Highly recommended for learning from basics to advanced topics. -
LeetCode
Focused on technical interview preparation and algorithm practice. Besides contests, it is ideal for getting ready for jobs in tech. -
HackerRank
Combines programming contests with practice categorized by algorithms, data structures, AI, SQL, and more. -
CSES Problem Set
A very well-structured collection of problems, perfect for progressive training in algorithms and data structures. -
TopCoder
One of the oldest competitive programming platforms, famous for its Single Round Matches (SRMs) and marathon matches. A pioneer in the competitive programming community. -
Kaggle (data science oriented)
While not strictly a traditional competitive programming platform, it allows solving machine learning and data analysis challenges within a strong community.
How to Choose a Platform
- If you want frequent contests → Codeforces or AtCoder
- If you want to prepare for interviews → LeetCode or HackerRank
- If you prefer progressive learning → CSES Problem Set
- If you want to experience classic competitions → TopCoder
Additional Resources
- Beginner’s guides for each platform
- Communities on Discord, Reddit, and local groups
- Competitive programming blogs and tutorials
Codeforces Contests
My Tools
Vim
I usually program in Vim, and the configuration I use is:
" Customized
set nu
syntax on
set relativenumber
set encoding=utf-8
set list listchars=tab:>\ ,trail:.,precedes:{,extends:}
" Default indentation for all files
set expandtab " convert tabs into spaces
set tabstop=4 " one tab = 4 spaces when displayed
set shiftwidth=4 " autoindent uses 4 spaces
set softtabstop=4 " <Tab> and <BS> count as 4 spaces
set autoindent " copy the indentation from the previous line
set smartindent " slightly smarter indentation
tnoremap <C-j> <C-\><C-n>gt
I usually save this configuration in a file (for example vimrc.log
) or in .vimrc
.
Then I can load it in Vim like this:
:source <filename>
With the vimrc.log
file, it would be:
:source vimrc.log
Windows
When I’m on Windows, I usually shorten the path like this:
prompt $G$S
More contests and content related to strategies and lessons learned will be added soon.