Eu tenho uma dica, uma que me ajudou quando eu estava estudando ciência da computação e acho que vale pra todo mundo, não adianta tentar afazer algo sem ter um objetivo concreto logo a sua frente, você precisa mostrar pro seu cérebro que precisa aprender aquilo. Vamos lá, o que eu vou dizer aqui é o obvio que todos estão falando aí nos comentários: A melhor coisa pra aprender é fazer algo real, na prática! Mas como você mesmo disse, você até tem ideias de projetos que quer fazer, mas acaba ficando ansioso por achar que não vai conseguir e não finaliza, mas como vencer essa barreira?
A dica está em se comprometer em entregar um projeto pra alguém, não vale seu melhor amigo pois ele não vai se importar tanto se você não conseguir, mas pra isso é preciso que você tome cuidado pra não prometer algo muito maluco mas sim algo que está dentro dos seus conhecimentos, faça algo simples, divida o projeto em pequenas etapas e mãos a obra.
É comum que a gente sinta que não está evoluindo, mas eu vou te dizer uma coisa, você provavelmente já sabe mais do que o suficiente. Não se preocupe se você não consegue escrever um código inteiramente do zero, quase ninguém consegue, mas se você consegue olhar um código na internet, perceber que ele faz exatamente ou algo parecido com o que você precisa e vai precisar somente de alguns ajustes pra te atender e ainda por cima você sabe quais ajustes precisa fazer?! Então parabéns, você já é um programador!
Não tenha medo de pesquisar na internet o que você não sabe fazer sozinho ainda, vão demorar anos até você chegar nesse nível, e vai por mim, com certeza tem gente por aí trabalhando e ganhando bastante dinheiro sabendo o mesmo que você ou até menos.
Ps:. Café é vida!