Я бы сказал, что изучать программирование можно по разному. Но почему одни достигают определенных успехов, а другие нет? Думаю все зависит от результата. Можно провести аналогию со спортом.
Почему одни в спорте добиваются результата, а другие не добиваются? И часто не продолжают тренироваться.
Скорее всего, ответ в том, что некоторые составляют для себя программу. Определяют некоторые точки, которые они должны достичь и двигаясь от точки к точке оценивают свои достижения.При обучении всему чему угодно тоже очень важно ставить такие точки для себя. И при достижении каждой из точек останавливаться и оценивать пройденный путь.
Именно для этих целей и берут тренеров или преподавателей. Просто самому не всегда удается достаточно самокритично оценить себя. Для одни кажется, что они ничего не достигли, другие, наоборот переоценивают свои достижения.