1. A method for teaching a practical skill to a plurality of learners at geographically separate locations, comprising: receiving at a teacher's computer system, for each learner, a video feed generated by a camera at the learner's location, the video feed at least partially depicting both the learner and a subject on which the learner is demonstrating the practical skill; simultaneously displaying two or more of the video feeds on a display screen associated with the teacher's computer system; receiving and displaying at the teacher's computer system one or more private questions to the teacher from one or more learners, the private questions not being conveyed to the other learners unless authorized by the teacher; and allowing the teacher to select one of the learners for individualized instruction by selecting an indication of the corresponding displayed private question; wherein the private questions can be submitted by one or more selected learners via a text message, an audio or a video; wherein the teacher responds to the one or more selected learners by a text message, audio or video by establishing a private video or audio communication channel between the teacher's computer system and the selected learner; wherein the teacher broadcasts the text, audio or video messages to a group of the selected learners by allowing the communication channel to be non-private for the group of selected learners to receive the instruction provided by the teacher; wherein allowing the teacher to store the video feeds, annotating the stored video feeds and selectively transmit the annotated stored video feed to one or more selected learners.