Are videos really the best tool for the job of educating coders?
Hello,
I've been hacking on a new tool for teaching JavaScript. The main idea is, instead of using videos or articles to explain concepts, I used just audio that's matched with an in-browser editor. I used time cues from the audio to programmatically change the content of the editor and execute code. After each session, a challenge with code assertions can be used to validate what was learned.
Here's a demo (using a basic React example): http://jscomplete.com/interactive-learning-demo/
I'd love to hear what you think of this idea and educational delivery format.
Thanks!
https://edgecoders.com/are-videos-really-the-best-tool-for-the-job-of-educating-coders-e550a3be54a1
46 comments
[ 12.4 ms ] story [ 1393 ms ] thread1. https://www.khanacademy.org/computing/computer-programming
I make things like this for product trainings with my company using a graphical tool (Articulate Storyline), and I think your idea and execution are both quite good.
Check out the book "ELearning and the Science of Instruction" for research-based tips on fine-tuning things you're doing.
At first glance, the visual indicators (code or box highlights) are really important and a little understated. I would make them more prominent visually.
Secondly, I would think about feedback on incorrect answers as well as hints. E.g., on section 1.1, the user may feel stuck without a clear memory of how to write Hello class. Allowing for something like "show me the next line" to get started would help learners who need more support.
I've been thinking about feedback on incorrect answers and providing hints when the learner is stuck. I want to try and make this dynamic based on what the learner tries. Of course there are endless possibilities there, but at least if they do something that's known to be bad, it's a good opportunity to teach them why not to do so.
https://github.com/markm208/storyteller#storyteller
It's just so damn slow. I can read and absorb information about 5x faster than I can watch a video. That leads me to feel a lot like the video's just wasting my time.
On occasion I've even considered sending tutorial videos to a transcription service.
So - personally, I much prefer a textual alternative. But I know some people like video.
Given you are doing video-like things, please make sure they're as tightly edited as possible. Really tightly-edited audiovisual content is a lot more tolerable. There's very little more annoying than a two-hour-long, rambling tutorial that could have gotten to the point in 12 minutes.
You can make even the most boring/slow presenter sound peppy.
But I am sure there is a majority of learners who prefer video/audio medium ( given the vast amount of video tutorials out there ) . If anyone reading this falls in that category, why do you prefer it? Genuinely interested.
Videos that effectively engage you visually are very powerful learning tools. For example, back when I was learning sorting algorithms, I was having trouble understanding merge-sort. I read about it in numerous texts, and I could implement it, but only because I had memorized the coding pattern. Then, I came across this video:
https://www.youtube.com/watch?v=INHF_5RIxTE
and in an instant it all made sense. Doing it well takes time, preparation, creativity, and often times a bit of resources. The youtube series Kurzgesagt – In a Nutshell does an excellent job of engaging you visually and I wish more online coding tutorials would adapt some of their techniques.
But, it's rare to find that so I when learning a new topic, I'll generally inhale a book or two on the topic.
If I'm watching a video tutorial from someone who understands the medium and is using it to its full advantage (including understanding editing and visualisation) that's a different story.
But - speaking as a former filmmaker - I know that doing something like that is neither quick nor cheap. It's "I wrote you a long letter because I didn't have time to write a short one" x1000.
Hopeless for reference, though, obviously.
Fast forward to today, I think a great blog post with links to code and break outs of sample pieces of the code explained in the blog post do a much better job.
Never took the extra time to polish it up after the hackathon, but if someone is interested I'd be happy to work together on improvements.
I have a similar tool but it allows the comments to be added to the code as it evolves:
https://github.com/markm208/storyteller#storyteller
The main difference being that the context of the comment is always in line with code at the point the comment is made. One other difference is that a person can add drawings and audio to their comments.
In most cases, I believe they are. Let me explain why.
I checked out your React example and noticed 2 things.
1) You jumped straight into coding, whereas your audience might be at different levels / experience in their coding history.
2) Your audio-only format works well ONLY for client-side stuff like Javascript, HTML, CSS programming. It quickly falls apart if you are teaching ASP.Net, or iOS Programming, Webservices, SQL Server, Oracle, pretty much anything that involves more than just saving a file and clicking refresh in the browser.
#2 is where videos shine. If you take a look at PluralSight videos, or even Udemy coding videos, the Instructor is able to SHOW the IDE, the things you've build by going to various browser, folder locations, as well as menu options, settings etc in the IDE. How will you do such things in Audio only format? It will take a lot of words, and if the student doesn't find it then they panic. Whereas in Video they can see EXACTLY what you are doing.
Some people learn better from video. I've never heard a programmer claim that they were one of those people, but it's surely possible. But consider all the text you deal with on a daily basis and why you use it.
Can you imagine a man-page-as-video: "You can type dash capital A to list all entries except for the current and parent directories. This is always true for root anyway."? That'd be hellish. Did they already get to the part about how to display inodes or do I have to wait for it? Wait, what was that bit about the recursion? In short, you can't search through video or instantly go back a sentence with a flick of your eyeballs.
Well, that's exactly how I feel about videos trying to teach me how to install something. I can't trivially skip past the part where they discuss the differences between RedHat and Debian. I can't go back. If my ears are tired, I can't adjust the "contrast" to make it easier to listen to (although I suppose some video players have audio compressors/expanders). I can't copy and paste it into an editor to see how it works locally.
Your idea goes a long way toward addressing those problems. I could see it being great for people who prefer listening, but still want to, you know, interact with the thing they're learning. I'd vastly prefer this approach to Yet Another Youtube Video.
ETL tools like Informatica, SSIS etc also need a visual, otherwise you get quickly lost. And how will the instructor do it in just audio "Oh, on left you will see a toolbox, look and locate the one that looks like a grid, but not the one that has an X on top right, also not the one that has a red cylinder icon at the bottom."
The 1 caveat I see in video instructions is that you have to constantly pause the video and code and then un-pause again, if you are following along with the coding. I get around that with the dual monitors.
I hate videos for non-visual things - like code.
One thing about the speed control. You should consider making it a [-|spped|+] button rather than offer 1 1.25 and 1.5 as predefined options. I can usually handle audio at 2x normal speed or sometimes even more. This Chrome extension[1] is my best friend.
[1] https://chrome.google.com/webstore/detail/video-speed-contro...
I personally prefer "type on the browser following written instructions" than videos. Pace on video is very hard to set right.
I only checked the first and second lessons, but I did like your tool! As I can type while the voice is still talking, I can move faster if i want. And listen to instructions while highlighting the part of the code on the screen felt natural.
So I think you are on to something and you can have the best of both worlds, clear instructions that stick on your brain and flexibility to follow anyone's pace.
The features I would ask:
i) allow me to click at the bar of the bottom and go back (or forward) to the part of the audio that I want to read.
ii) mark at the bar the exact moment where you objectively explain the key concepts of the class (and make sure at each lesson you have one sentence that explains each concept very directly, like "render function is..").
good luck!! Sounds very promising! :)
Example
Video can also be useful for learning how to setup a development environment, to show how to use developer tools in FF/Webkit, setup an Xcode project, etc. Instances where a student needs to navigate a complex UI to begin the work of actually coding.
For coding there's many problems with video. One issue is bandwidth: text can be scanned and consumed very quickly. Text can be given a hierarchical structure that a student can jump between, which makes it easier to understand complex relationships between concepts. Video is linear. Code is not. Code has a relational and web-like structure that is more accurately represented by hypertext.
Your idea sounds like it might be quite good, just try and keep interactivity fairly often, perhaps.