I have no improvement at all after 10 months of consistent daily training. How to train more efficiently?
Difference between en2 and en3, changed 522 character(s)
I spent more than 10 months of consistent training (almost every day, every week) and ↵
I have no improvement at all.↵

Yesterday, my rating is dropped below the level where I was 12th October 2015 (a day of my first contest).↵

Usually, during contests, I can solve Div2 A for 10-15 minutes, Div2 B for 20-30 minutes, rarely I can solve Div2 C when it's easy.↵
I was at that level in October 2015 and I'm on the same level right now (August 2016).↵

I still can't solve Div2 C problems and I'm still can't solve problem B quickly without mistakes or being hacked.↵

So I have zero progress, zero improvement of my problem solving skills after 10 months of almost every day training.↵

I think there is something definitely wrong with my training method because it's absolutely ineffective.↵

I'm looking for training advice from experienced participants ↵
because I don't want to spent another 10 months and end up exactly at the same level where I was 10 months ago.↵

My background: I'm working as C/C++ developer since 2009 (early days I was mainly C developer, currently I mostly C++11 developer).↵

**Here is detailed description of my training program:**↵

Every time I'm training on CodeForces, I set up timer for K number of minutes (where K%15 == 0).↵
For me, it's psychologically easier to not to be distracted during specific time frame.↵
Also, I have a journal where I put how much minutes I spent on training every day (including contest time).↵
I keep only "clean" time in my journal, i.e. time when I was not distracted at all.↵
I work in silence and don't listen music during training.↵

Also, I keep a journal of solved "hard" problems (every entry: day => number of solved problems, usually just one).↵
I consider a problem as **hard** when the problem **level >= Div2 C**.↵
I consider hard problem as solved in two cases:↵

1. I solved problem without any hint;↵
2. I looked at tutorial, then put off problem for a few days, ↵
and after try to recreate solution, ↵
and make sure that I feel confident that I really understand solution;↵

I don't consider hard problem as solved if I implement it immediately after I read tutorial or ↵
when I don't feel confident that I really understand solution.↵

I started training on 10th October 2015.↵

Since 20th February 2016 I keep journal of how much time I spent.↵
Since 11th May 2016 I keep journal of how much hard problems I solved.↵

Here is my fresh statistics of training:↵

I spent **89.45 hours** in last **93 days** (from May 24th till August 24th).↵
It's about **0.96 hours per day** in average or **6.73 hours per week** in average.↵

I solved **26** hard problems in last **93** days.↵
It's about **1 hard problem in 3.57** days or ↵
**1 problem in 3.44 hours** (often combined time for a few days).↵

Usually, I can train 15, 30 or 45 minutes in the morning before work and 30, 45, 60, 75, 90, 120 minutes in the evening after work.↵

I'm keeping TODO list of C problems by adding CodeForces rounds to favorites.↵
Usually I add about 20 rounds to favorites (when list is empty) and then work on them starting from down to top of the list till it becomes empty.↵
If I put off problem for a while, I remove from favorites and add it again so that problem will be on top of the list (since I take problems from back of the list).↵

Typical workflow on problem Div2 C (note that steps could be split into several days):↵

1. Trying to solve problem for 1.5 hours (could be split into two days);↵
2. Look to tutorial for a hint.↵
It means I can read only first few sentences of tutorial till I get the idea of how to solve problem but don't read entire tutorial.↵
For example, I can read that solution uses two dimensional DP array with states k, m. After that I'm trying to came up with rest of solution on my own;↵
3. If I'm still can not solve after another hour, I read tutorial and comments till I understand idea of solution.↵
It could take hour, two, three during several days till I really understand what tutorial is talking about;↵
4. When I finally understand solution, I put off this problem for a while (i.e. put to the top of the list).↵
After a while, I check whether or not I really understood solution. If I can easily recreate solution after one or two weeks, then I really understand;↵
5. I usually can't solve C problems without hints from tutorial. Sometimes, I can't even solve it with tutorial since I don't understand solution at all.↵
In this case I drop the problem for uncertain period of time (i.e. remove from my TODO list);↵

So usually, my work on a problem Div2 C can take quite a while.↵
For example:↵

Day 1: Spend 1.5 hour, can not solve;↵

Day 2: Look for a hint, try to solve with a hint for another 0.5 hours. Still can not solve;↵

Day 3: Look at tutorial of the problem and all comments for 1 hour, finally understood solution, put off problem for a few days;↵

Day 4 (after a few days or weeks): Spend 1 hour to implement solution;↵

**Possible reasons of inefficiency of my training program:**↵

1. I spent too few hours per day on average. ~1 hour per day is not enough. It will take years till my rating become stable blue;↵
2. I spent too much time on Div2 C problems. 26 problems in 93 days is ridiculously low number.↵
I should somehow solve 26 problems in two weeks, not 93 days to get any measurable progress;↵

Please, help to fix my training program.


P.S. I read CodeForces classic posts about training:↵

[The 'science' of training in competitive programming](http://codeforces.com/blog/entry/17842)↵

[How to come up with the solutions: techniques](http://codeforces.com/blog/entry/20548)↵

I know things like [zone of proximal development](https://en.wikipedia.org/wiki/Zone_of_proximal_development)↵

The problem is that **Div2 B** is too easy (more than 90% of success) while **Div2 C** is too hard (low success rate). It's too big gap between **B** and **C**.

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English omgcoin 2016-08-25 13:01:08 522 (published)
en2 English omgcoin 2016-08-25 12:49:24 107 Tiny change: 'ber 2015 (day of my ' -
en1 English omgcoin 2016-08-25 12:29:30 5485 Initial revision (saved to drafts)