иногда я не понимаю, что я делаю и почему это работает
Вы что-то делаете, а это уже хорошо. Остальное со временем
Слышал о градации программистов на junior, midle, senior.
Все о ней слышали, вот бы кто стандартизировал, но нет. Скорее всего все выглядит так:
0% начал учить
где-то тут junior превращается в midle
50% пол пути до гуру
где-то тут midle превращается в senior
100% гуру (недостижимая отметка)
Это как с бабочкой, разве можно определить момент, когда она уже не гусеница и точно бабочка.