As a self taught programmer, I went from a beginner to an intermediate level by learning from websites and books.
My suggestion  to beginners would be to read some stuff about the technology they want to use, then read and implement a few tutorials where they will make example apps, etc. This clarifies the terminology and makes it easier to describe the problem, read docs, etc. Because 99% of beginner problems have already been answered on StackOverflow.
I have had some bad experience with SO but it was mostly due to not searching properly. I definitely understand how beginners feel. But if someone kept asking me how to reverse an array in C++ repeatedly, even I would be pissed.