This is what i do before learning any course online:Always do this: Decide whether you want to learn from scratch(detailed version) or just want to go abstract.For example lets say you want to learn algorithms and data structures:Decide What you want:1). I donu2019t want proofs on whether algorithm is correct, how time complexity is derived, i just want to know how it works and its application.2).I want all proofs of algos, along with time complexity and space complexity, how it works, its application, everything.For Option 1: All these websites EDX, Coursera, Udacity, Udemy will proption 1. Perfecty suitable for those who want to go abstract.For Option2: Any University/College lectures like MIT, Stanford, IITS, Udacity(Some Courses),etc etc are perfectly suitable for option 2. They are very much detailed, perfectly delivered and are made for the students who want to learn subject from scratch.Now in case you wonu2019t understand something while taking course from MOOCS or Universities, then explore youtube videos for that topic. If that still not clear your concepts then go for websearch(I always prefer Videos over websearched documents, because i dont like to read whole document).Hope it helps.Edit 1: I just recently found this really awesome list for Option 2, its worth checking.prakhar1989/awesome-courses