Of course! To extend on what Tzunyo contributed above, you could implement a few ideas:
Categories: Have category for general topics such as Programming, Writing, Art, and more
Forums: Have different forums, each going more in depth with what category it's in. For example, in Programming, you could add different forum for each programming language you want to teach.
Roles/Ranks: Have different membergroups such as Teacher, Student, Contrbutor, and others. Teacher (the one who posts classes/videos), Student (either anyone who registers on the site or implement paid classes (using plugins) if you would like registration/payment for each class, Contributor (for those students that attend and actively help others within the class), and others I can't really think of.
Classes: Like I stated above, either have free classes that any community member can attend or use a plugin that allows members pay and register for a certain class.