The Main Problem With Learning Coding Online
I have been learning online since 2012. That was when my first attempt at learning how to code. I was very young and didn’t have internet at home; I downloaded Youtube videos using internet cafes and brought them home on a USB flash drive to learn from them. Then fast forward to 2014, I took a high school course on social development online from Rwaq, then in 2017, I learned HTML & CSS with FreeCodeCamp (I had internet at home at that point), then in 2018, I tried learning Swift with HackinWithSwift, then in 2021 through Youtube, in 2023 with BCSwift which I have written about my first two weeks experience learning from John Gallaugher, which TD: LR been impressive in terms of content.
Every time I learn online, there is always one aspect of frustration that I can not shake off, and as I said in my most recent blog, the reason I went with BCSwift is that I thought this frustration would not be an issue since the lessons are based on an in-person college class. So I said it would be different. My experience usually looks like this: I’m happy and excited to start learning, then with some googling, I can get by with first challenges, and then I begin facing more challenging and tougher roadblocks, things become complicated, and I can not understand, which is okay. It is to be expected, yet it gets to a point where it is tough to go any further without guidance or mentorship, and that is where the issue is, no mentorship!
Why not having a mentor is an issue?
Having no mentor means you have no guidance or clear direction on where to go. Sometimes you google things, but you still need the answer or the explanation for what you want to ask about. Yet, if you have a mentor who gives you feedback and guidance, you’ll learn and grow fast. That would also save you time because what you could take an hour searching for and trying to understand could be explained to you by the mentor in two minutes, and then you will be good to go!
Direct personalized feedback; nothing else can match it. Also, personalized feedback helps you stay on the course. Because after getting the answer you want, you keep going with your learning. That is why college, university, or boot camps work because you have a direct mentor who can tell you to do this instead of that or at least lead you to the correct method of doing something instead of learning the wrong approach, then later on it would be hard to backtrack on this bad habit you built through self-learning!
Why are mentors or support systems essential in an online learning environment?
Aside from the direct personalized feedback, it will also make you feel you are part of a community; therefore, you are not isolated and alone, making you more likely to keep going instead of giving up since we are social creatures, and we perform relatively well under pressure.
How often have you thought you might not do well and then did well because you were under pressure, whether running away from a wild animal (as I had to do once) or maybe doing an exam? Also, a support system provides accountability and makes you keep going with your learning, and not wanting to stop because you have someone who would ask you: What you have learned thus far? Many of us hate to say, “Oh, I have not learned anything yet, because I didn’t study.”
That fear of confrontation forces you to keep going. And I know what you are thinking now! It is just a matter of being lazy! To that, I say it has nothing to do with being lazy. Yet, more about finding the answers quicker to learn faster and grow without losing momentum.
Online learning itself is not bad, and there is nothing wrong with it. BCSwift for example is the best online course to learn Swift, but the issue with it is the lack of mentorship and feedback like every other online course such as HackingWithSwift or CodeWithChris, you name it, it has the same problem. Learning online might work if you have the fundamentals and the basics of programming in another language; then, it is a manner of understanding a new language syntax, and you are golden. However, if you are trying to learn from the very start with no prior knowledge, you do need feedback to grow, whether that is live feedback from the instructor or in the form of a discord server (which I do not think a discord server is good by the way).
Moreover, we have seen some great implementation of feedback with MOOC.Fi with the Java course, where they had live support 24/7 available to answer questions by taking on tutors who used to be students and have them help incoming students, and those students were volunteers as well so it did not cost MOOC.Fi any money. Another example is CodeInPlace from Stanford, where they have what is called section leaders. Which they are students who volunteer to help other students by giving live support sessions two times a week (one hour each) to answer questions from new students, or how Udacity does it by having mentors available through a slack channel which is not optimal or the most elegant solution, but at least a solution that we can work with. All of those are fantastic options that BCSwift or HackingWithSwift or other courses can apply or take ideas from to have some sort of a support system, so a student wouldn’t be discouraged or feel lost because they do not get help when needed. Also remember, if you know how to do something and take it for granted, not everyone is the same as you. Some people need a hands-on approach more than others, which plays a role in the equality of education to people with historically disadvantaged backgrounds.
Note: Everything written is my own thoughts and ideas. I was not endorsed or encouraged to write or talk about the courses in any shape or form.
