Отвечу как человек, который тоже имел такие проблемы.
Делайте то, что вам интересно. Если интересно программирование, выберите подходящее направление и изучайте. Если неинтересно, даже не пытайтесь, найдите что-то другое. Должно быть желание тратить на это свободное время а не просто "я хочу много зарабатывать, поэтому пойду на программиста"
Ставьте цели, локальные и глобальные и заставляйте себя делать что-то. Это касается не только программирования а и жизни в целом, если хотели заняться спортом, начните, поставьте цель, допустим бегать в день 1 км в течении месяца или что-угодно другое, главное чтоб это было нужно вам, ну и конечно нужно ставить такие цели, которые достигнешь.
Если хотите изучить теорию, выберите тот источник, который вам больше всего подходит(у меня это книги) и занимайтесь регулярно, поставьте цель читать N страниц книги или заниматься сколько-то минут, это должен быть такой объём, при котором не начинаешь отвлекаться плюс ещё немного, но не больше.
И очень важно не отвлекаться во время обучения, выключить ВК, скайп и все остальные раздражители на время обучения.
P.S. действия будут иметь эффект, если вы обычный ленивый человек, как и все остальные и не имеете какой-нибудь редкой болезни, из-за которой могут возникать подобные проблемы)