Although I still think services like Codeacademy and Exercism are really useful, what you've said describes my main gripe with them, which is that these services are seemingly designed for people who have already maneuvered their way into programming to some extent. Someone who wants to learn programming from scratch probably won't get much out of having a "hello world" exercise thrown at them followed by FizzBuzz. Not only does the value of such exercises not necessarily translate to someone who has yet to fool with computers themselves, but these systems overall fail to educate new programmers on the many things that matter besides language constructs for a particular language. In my opinion, these are tools designed by programmers for programmers. Not that there's anything wrong with that... but not once have I become proficient in a language by doing online code challenges in a REPL; I always learn by doing, as was recently the case for me delving into C++ via an Arduino project. The C++ skills I momentarily learned online didn't stick because FizzBuzz isn't really applicable to anything (obviously I'm kind of oversimplifying things here).