Мой опыт:
Изучал JS по урокам и официальной документации.
1. Прекрасно знал, что такое переменная, массивы, функции, циклы и пр. Как это применять в практике - ни понятно.
2. Прочитал книгу O'relly для начинающих JS - еще больше стал понимать про переменные, циклы, массивы и пр. - Как это применять на практике - не понятно
3. Записался на продвинутый JS, NodeJS, React - изучил ES6, выучил классы, понял принципы работы React - как это применить на практике - не понятно.
4. Купил несколько англоязычных курсов на udemy (русские в топку), где создаются нормальные реальные проекты, не "туду листы" и повторял все за автором. Первый курс прошел и повторял все один в один, благодаря чему понял взаимодействие React с Нодой, как писать API, как деплоить и все дела. Второй курс уже сразу адаптировал под свои нужды. В итоге сделал свой проект и от проекта в курсе осталась только авторизация и базовые методы создания и чтения. Процентов 70 своего кода.
В итоге, нужна практика и практиковаться нужно на цельном проекте. Тогда приходит понимание для чего тот или иной метод/функция необходимы. А куча теории и хрен пойми для чего это в практике - это прерогатива русскоязычных менторов.