I am currently in the 10th grade. I would like to get started in competitive programming. This are the things I know now:
Mathematics - Currently in pre-calculus Well Mathematics in my country is pretty unstructured. You would be studying bits of everything, and not one after the other. So I self studied up to Algebra II (Algebra I, geometry) so that I can cover it in more depth than in my school, though in school I'm learning through trigonometry stuff, algebra I & II stuff and geometry in varying orders.
Programming:
1.Knows the basics of C, Python, C++(main currently learning)
CS50X completed
HTML,CSS ,JS and sqlite3 with python
What I want to learn for competitive programming(I am unsure):
Discrete Mathematics Algorithms Data Structures 4.Dynamic Programming
and I am hoping you'll help me to structure the remaining necessities and knowledge required. I found some blogs at many places but they were incomplete i.e. they are not well enough for beginners to you know get started on.
I am aiming currently for IOI.
UPDATE:
I am from India.
National qualifications:
These are the stages of IOI qualification in my country:
1.Zonal Olympiads - Either written(pen & paper) or Programming or both (about 500-800 participants in each)
- Next round National Olympiads if qualified in previous (about 250 - 400 participants)
3.Next if qualified National training camp(about 30)
4.Top 4 are chosen from it to represent at IOI.
Edit: I am from India.
Edit: I am currently taking discrete mathematics online.
I believe I know where to practice.
Which should be first book/course/material to learn?