1) Изучение языка с ментором.
Это отличный метод изучения, но проблема в том, что найти хорошего ментора не так уж просто, а бесплатного и того нереально.
3) Обучение по курсам.
Худший из возможных вариантов. Во-первых, курсы помогают только их создателям. Во-вторых, посмотреть на те же курсы от itvd, ребята просто начитывают сухую теорию, которая разбавлена скудным видеорядом. Пустая трата денег.
Единственно правильный вариант - это пойти на внутренние курсы/стажировки компаний, туда, как правило, не требуют особо глубоких знаний. Таких, к твоему счастью, в достатке. Только там тебя обучат и научат реальным знаниям необходимых для разработки.
Если нету возможности пройти стажировку или интернатуру, то можно пойти в крайность и обучаться по программе курсов(!не по самим курсам). Есть курсы, которые имеют отлично структурированную программу для самообучения.