Я учил по курсам от ITVDN. Подача весьма неплохая, хотя совсем уж новичку будет немного сложно. Но не невозможно)
Три курса - starter, essential и professional. На первом объясняются самые основы, начиная с понятия переменной и дальше по нарастающей. Так же объясняется принцип работы памяти и принципы операций с битами. На втором идёт изучения принципов и парадигм ООП, а на третьем уже всякие дополнения типа создания GUI и т.д.
Курсы платные, но... Живём мы сами знаем где, и поэтому если постараться можно найти и скачать.