https://www.edx.org/course/cs50s-introduction-to-computer-science
Вводный оффлайн и онлайн курс о компьютерных технологиях Гарвардского и, начиная с 2015 года, Йельского университета. Материал курса доступен бесплатно, за отдельную плату возможно получить различные сертификаты. В 2016 году курс подвергся значительным изменениям и вобрал в себя лучшие практики за 20 лет преподавания курса.
На JavaRush есть на русском https://javarush.ru/quests/QUEST_HARVARD_CS50
Несколько советов (не моих, но очень дельных, спасибо их автору):
1) Смотрите на 1-2 лекции вперед: в них рассказывают о вещах, которые значительно помогают решить задачи к текущей лекции.
2) Листайте лекции и задачники в оригинале: некоторые задачи и подготовка к задачам переведены не полностью: http://cs50.tv/2015/fall/#about,psets Там же в задачниках есть ссылки на дополнительные пояснительные ролике, но многие из них не переведены, хотя благодаря нормальному произношению субтитрами Youtube переводит более менее адекватно.
3) У студентов Гарварда есть практические занятия, где они могут обсудить задачу с перподом. У вас есть гугл, а лучше найдите какого-нибудь друга-единомышленника. Так процесс обучения значительно облегчается.
4) Не старайтесь решить много, старайтесь хорошо понять. Это не универ с липовым дипломом, в котором нужно купить контрольную и сдать преподу, которому плевать. Не поняли - разберитесь.
5) Для гиков: за 90$ по окончании курса можно заказать экзамен и при удачном его прохождении получить сертификат edX и Harvard. Можно повесить на стену и хвастаться друзьям, что закончили курс по компьютерным наукам в Гарварде. 6)Самый сложный задачник - pset5 (проверка орфографии), это вершина горы CS50. Указатели и структуры- это самая сложная для понимания часть в Си.
Буду принципиальным, но лучше трехтомника (четырехтомника уже) Дональда Кнута Вам ничего не найти. Покупайте или в сети находите и читайте! Начинайте прямо с первого тома. Чтиво, конечно не очень простое, но очень академическое.