По поводу качества курсов - большинство из них отличаются тем, что давая практику они решают примитивные, удобные (без лишних сложностей) или высосанные из пальца проблемы. При этом они почти не покрывают реальные вопросы которые возникают при работе с реальным проектом. Типа как у яндекса, кажется, может ошибаюсь, полугодовой курс по фронтенду заканчивается разработкой говноигрушки браузерной вместо реального интерфейса к какому-нибудь API на реакте, вью или ангуляре. Майкрософт таким тоже грешит.