IMO once you're past the beginner stage of learning a technical topic (which is what most MOOCs provide), you have to either develop side projects or work on open source projects to learn more advanced concepts.
It is not easy to achieve that . I joined an open source project but was overwhelmed because I was not well prepped . I have to read a lot of RFCs , source codes , and countless technical papers and articles. It is indeed demanding , and crazy . Maybe I would learn something great at the end.