Hints for optimal learning in online courses

Thomas Carruthers once said, "A teacher is one who makes himself progressively unnecessary."

Nowhere is this more true than in online courses where, despite their greater flexibility, they inevitably shift the responsibility for learning onto the learner with the teacher become a "guide on the side" rather than a "sage on the stage". An online class, in my opinion, really isn't designed to teach but, instead, to facilitate learning. This is because an online course is usually intended for very independent learners comfortable with self-study, rather than those more comfortable with direct, structured, live and interactive pedagogy. And, in my experience, the Socratic approach is the best way to learn, rather than teach.

Often, different people need different perspectives on the same material; some are more visual learners, other kinesthetic, others aural. Most of us, in fact, respond best to some blend of these learning styles so seeing the same material from a different perspective can be invaluable when learning new material. This is why I highly recommend everyone should read the text AND check the youtube videos AND, most of all, write little programs as much as possible! All the helpful advice in the world cannot substitute for the learning that occurs from writing a piece of code and throwing it into the fires of the compiler. Then fixing it. Then recompiling. Then Googling the often-frustrating error messages that seem to make no sense. Then recompiling. Then celebrating! This is the absolute best and most efficient way to learn programming (and most other things, as well).

In fact, I assume that's exactly what you guys are doing: you should be writing, compiling, and then searching google for what the heck happened. This is one of the main reasons I encourage (some might say force :) everyone to post their technical questions in the Q&A forums and employ the socratic method which, in my opinon, is the best way to learn critical-thinking/evidence-based reasoning. This is where both your colleagues and I will take the examples you post and ask things like, "What if x fact is changed in y way? What results from that change?" Once you answer, your colleagues might ask, "Why does that necessarily result?" and you can, in turn, ask your colleagues if they think the change makes a significant difference.

My job is to help facilitate your learning (rather than just answer questions that are in the book or online) and the process outlined above is absolutely essential to that learning.

Also, when you feel stuck, one of the best things to do is consult one of the references in my references links and/or search on google. Almost every single question for a class at this level is likely already answered on the web and should show right up via a quick search.

Additional helpful hints for students