You forgot one; building actual projects. I was stuck doing/following tutorials until I started creating projects on my own. I noticed that my learning accelerated after that.
The process of coming up with project ideas, planning, making mistakes, debugging, learning from these mistakes, and continuing did more for them than simply learning the material through tutorials and videos.