Привет. Чтобы ответить на вопрос, нужно определиться, что значат лучшие. Т.е. по каким критериям определять. А ну еще на какой уровень ориентир? (есть ли опыт, без опыта?)
Вероятнее всего идет речь про курсы для начинающих aka без опыта программирования вообще. Хорошие курсы для начинающих должны быть простыми и понятными. Они должны давать обратную связь, прокачивать. При этом не быть перегруженными. Ну знаете, когда на олимпиаде решаете одну задачку целый час, а потом рвете листок, потому что да ну её.
Еще хорошо, когда рядом с курсами бродит человек, который может подбодрить или хотя бы подсказать куда двигаться. Что-то вроде ментора, наставника или сообщника (от слова сообщество), который укажет путь.
Стоит понимать, что изучение программирования это изучения программирования вообще, так и языка в частности. Каждый язык накладывает свой отпечаток, свою особенность, через которую приходится пробираться. Поэтому, когда вы учитесь программировать, вам должны рассказывать про концепции программирования, а не только про особенности языка. Язык - это инструмент, а программирование - навык.
Я всем советую
Code Basics назвать их лучшими бесплатными курсами - это слишком громко. Но я сам прошел там основы (недавно по Python проходил) по нескольким языка, плюс по основам верстке. В прелесть? Ну очевидно, что бесплатно, во вторых можно запускать все прямо в браузере (и даже без регистрации), теория, задания на русском, весь код выполняется реально где-то там на серверах, а не проверяются готовые решения. Ну и задания небольшие, подробные. Ведут от базовых вещей к более продвинутым, с учетом особенностей языка, который выбрали. Есть комментарии, где можно задать вопрос. Ну и самое главное (на мой вгляд), что это дело открыто, то есть, если вы увидите опечатку, вы можете её сами поправить или попросить более опытного товарища.