You can get from novice to a full fledged programmer in a couple of weeks. Back when I started college, I felt that I was a dismal programmer and my teacher suggested I should look at the (now legendary) book "Thinking in C++ "by Bruce Eckel (he was the one that inspired a lot of "Thinking in" copy-cats). So I did - I went through all the content and did all the exercises suggested. It took a couple of weeks of long hours since it's like 1000 pages long, but at the end I felt I understood programming to an acceptable degree.
The 20 years that followed just validated my experience - while I had to learn some specific areas of computing for specific projects, like WinSock (hey, it was the 90's), or parallel programming (which admittedly took another similar learning session), I was always head and shoulders above the average corporate developer.
I've also seen a lot of other people do it in a similar way - a relatively shor burst (like up to two months) of concentrated learning and self-training. On the other hand I've never seen a shitty programmer become a good programmer slowly over the course of 4 years. That just does not happen - either you put the effor in and become better rapidly, or you half-ass it and learn very little.
The problem with the coding academies is that they have low standards and they don't push people. A lot of folks don't have the patience necessary and should be failing these courses, but they are handed the certificate anyway. That's just the way it is with diploma mills.