Самый лучший способ обучения тому или иному языку программирования был и остается - практика (что на курсах, что по книгам - везде практика, нужно писать программы на этом ЯП).
Я всегда говорил и буду говорить абсолютно всем начинающим разработчикам, что книги - это отличный источник знаний (выстраивается некоторое понимание базы), а курсы, уроки - это больше для повторения и актуализации стеков технологий (обвязка к базе) под современные тенденции.
Однозначно нельзя говорить, что курсы - это плохо, есть хорошие курсы на Coursera и Udemy!
Я не могу похвалить в этом плане Русские онлайн школы, ввиду отвратительного отношения к преподаванию, уровня подготовки и неопытности самих специалистов, которые обучают. Но повторюсь, не все курсы плохие, мне кажется, что курсы от Яндекс.Практикум чуть лучше, чем имеются на рынке.
Также нужно понимать, что:
- Курсы строятся для людей, которые совсем ничего не знают о программировании.
- Каждый курс, это всегда - введение, базовые понятия, базовые примеры - абсолютно все тоже самое, что вы можете прочитать и узнать из книг и открытых источников.
- Не всегда курс может выйти за рамки обучающей программы, чтобы рассказать и показать что-то нетривиальное.
- Каждое ДЗ будет сложным и на курсе могут не объяснить какую-то часть, в расчете на то, что вы будете искать эту информацию сами. Именно здесь, большинство, начинают писать негативные отзывы, что ничему не учат, не объясняют. Хотя у школы, например, программа рассчитана на выработку компетенции учащегося в поиске решения поставленной задачи, потому что на практике, когда специалист работает, он не может все знать и искать ответы приходится всегда.
Давайте подытожим - если вы новичок:
- Нужны знания? - книги!
- Нужны актуальные знания (вспомнить основы и узнать используемые стеки технологий) - курсы!
- Нужна практика? - делаем свои проекты + площадки с задачами hackerrank, codewars, codeforces, kaggle и много, много других!
От себя лично:
Нужно использовать ЛЮБОЙ источник информации, который поможет решить вашу задачу и повысить ваш уровень! Выбор источника ложится на плечи того человека, который ищет необходимую для него информацию. Именно поэтому, кому-то курсы помогают, а кто-то в них расстраивается! Лично я учился и учусь по книгам, курсы использую, как повторение ранее изученного материала, потому что все помнить невозможно! К тому же за счет разных источников информации можно узнать разные взгляды и подходы в разработке.