At Genbeta we constantly share countless free online courses on different platforms, as well as many other types of educational resources offered by the collective wisdom of the Internet. Programming courses, or in general everything that has to do with computer's science they are usually always the most sought after and best received.
If you are someone who is interested in learning computer science thoroughly and you do not want to invest years and a small fortune in some institute or university, in Teach Yourself Computer Science they collect all the resources you need to learn computer science without having to browse through another list of 200 free courses.
They have a suggested order in which you should study and recommend investing between 100 and 200 hours of study on each topic
This website was put together by Bradfield, a San Francisco school for professional software engineers seeking a master's degree. In TYCS what they seek is to offer the student answers to two basic questions: what subjects you need to learn and why, and what is the best book or video lesson for each one.
The list of resources they have published seeks to contain everything you need to fully educate yourself on the subject. It consists of specific recommendations for books and videos, most of which are freely available on the web. There are many MIT video classes available in their archive for free, for example, and you can even download the videos and accounts with transcripts of the lectures.
They have a suggested order in which you should study, starting with programming, from computer architecture, algorithms and data structures, to operating systems, databases, languages and more.
They recommend investing between 900 and 1800 hours in total. They explain why each topic is important, teach you something about books, and even tell you if it is recommended to skip some chapters.