I guess we've made different experiences then. I've only ever met two people who learned their craft from online tutorials, but both of them were worthless. Not to say that such an outcome is inevitable, but I do find that online tutorials rarely provide the depth of understanding that books offer.
However, I do acknowledge that different people have different learning styles. If you go the online tutorial route, then it is critical that you find a source that offers a lot of material that is intended for use as a whole and in a set order. Each individual tutorial should offer at least a few dozen hours of online training. The worst thing anyone could do is work through dozens of unrelated videos from different sources. Such an approach simply lacks the structure that is essential for a good programming 101 course.
I also completely disagree that starting with C or C++ offers any benefits. Both C and C++ are very different from each other and neither is in any way similar to C#. Yes, they share a lot of common programming syntax, but that isn't at all what is important about programming languages. Learning a programming language, at least in the beginning, should be about semantics and idioms, and in those regards all three languages are very different. If all you're learning/teaching are simple control structures, then they are all practically identical, so no single one offers any benefit over any other.
Different strokes for different folks I guess.