Опыт нарабатывается практикой.
Знания получаются путем систематического изучения как общей теории, так и предметной области.
Продвижение по карьерной лестнице может очень слабо быть связано с опытом и знаниями. Часто они только мешают. Тот, кто все знает и умеет - это "человек на своем месте", а значит, так он на этом месте и останется.
Как стать джуном: смотришь рандомно бесплатные курсы, видосики, решаешь задачки, этого контента просто навалом. Пробуешь идти на собес, фиксируешь на чем тебя завалили, доучиваешься, повторяешь попытку. Пару тройку попыток обычно достаточно, если ты не бестолочь.
Как стать мидлом: тупо работать работу, чем больше задач тем лучше. Джун нужен компании только затем, чтобы из него вырастить дешёвого мидла, который на самом деле мидл, но работает за ЗП джуна, ибо ещё не понял что он мидл. А больше ни за чем джун не нужен, на труде новичков много не заработаешь.
Как стать сеньором: начать показывать стабильный результат, и исправлять чужие ошибки. Сеньор не обязательно самый шаристый, но он самый надёжный. Мидл может не справиться с задачей, у сеньора такой опции нет. Сеньор нужен компании чтобы нести ответственность. Покажи что ты достаточно скилловый и достаточно ответственный, чтобы в любой ситуации решить проблему и решить любую задачу в срок, и вот ты уже сеньор. Думаю не надо объяснять, какой опыт и какая экспертиза должна быть за плечами, чтобы приобрести такое качество?
Хочешь быть "более опытным в программировании" - изучай не языки программирования, а само программирование. Которое не про написание кода, а про методы решения программистских задач.
Разница между юниором, середнячком и сеньором не в объёме знаний, а в реальном опыте реальной работы. И если кто-то обещает сделать тебя середнячком или, тем более, сеньором, за полгода-год, то это мошенник, разводящий лохов на бабки.