One of the advantages of being in a more structured environment is...well...structure. I've been dabbling at programming and scripting for the better part of two decades but I've never really taken off with it because I find it difficult to grasp programming concepts without something concrete to pin it to. I need a project that requires me to take advantage of a function or library before I really comprehend its use.
Everyone learns in different ways. I can't simply read or listen to an explanation of a practice skill, I have to actually get involved and for that I usually need a project to help direct me.
Yea, I'll definitely give you that. I was in much the same situation - faffing around with bits and bobs for yonks, but the structure of being at uni encouraged me to complete tasks. However, that requirement can easily be resolved through self discipline and purposefully outlining clear projects to get involved with. CodeWars is good for little things and some of the free courses on Udacity are pretty good - I was doing the android development course on there the other week and, apart from some outdated bits (VERY frustrating!!) the course quality and structure is fantastic.