Unpopular opinion on learning approach.
Tags: learnfaster
Published: 2021-06-02 08:54:28

---
title: Unpopular opinion on learning approach.
published: true
description: Learn 2x time faster than your peers, give it a try first.
tags: learnfaster
cover_image: https://source.unsplash.com/CiUR8zISX60
---

Have you ever seen a scene in Dragon Ball where Goku went on training in other dimension? If you didn't you can watch below

{% youtube _Ib0avVtpEg %}

The idea is, you get to train 1year in other dimension which is equal to 1 day in earth. But can we apply the same to our real world?

> Yes, but there is trade off.

You can achieve this when watching a video or listening to audio. But, in this article, I would like to share more on video, since I'm rarely listen to any audio(podcast etc...)

Have you notice that Youtube have `Playback Speed`. You can find this at youtube's gear icon(bottom right side) and then click `Playback Speed` and it will show you a list of options which is `0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2`. Try to change it to `2`. The video play faster right?.

At first it's quite hard to understand some of the content creator's message or when they communicate and you have to really focus and listen carefully what they said. You can set to `1.25` first and then, after few trials, try set to `2`.

Imagine that you are watching a video 30min long, and if you set the speed to `2`, averagely you only watched the video in ~15min long instead of 30min and this save you 50% of time.

```md
// formula
videoLength/playbackSpeed = new total video 
30min/2 = ~15min
```

In other words, if you allocate 1hour to learn everyday, you can actually enjoy learning up to 2hour of content while other people only spend 1hour!!. Unfortunately its not 1 to 1 mapping with Dragon Ball, but this is good enough.

Remember when I mention that there is `trade off`. Yes, it does have trade off as follows:
* Sometime its hard to listen the video clearly.
* You might miss the essential part of the video. And usually if I didn't understand it, I had to go back to previous frame multiple times.
* You need to have a good internet connections as well as CPU and RAM (I'll explain down below why)
* Generally, if you are learning something that is not in your expertise, sometime it's hard to understand few keywords/jargon that they are using. I experience this a lot when learning finance terms. It is very challenging path.
* Depend on content creator effort. Creating a content it's not an easy task. It require huge passion to create a video.
(Please thumbs up creator's video, they'll feel appreciated)
* Can't really rely everything you learn in youtube. Might be misleading. Hence, still need to have other resources.

However, I believe that, the PRO out-weight the CONS:
* **Save you a lot of time** and you can spend learning other things as well.
* If you didn't understand a word in a video, you can just search another video with the same content. You might be able to understand the next one.
* Huge benefit if someone who would like to sharpen their practical skill. Cooking, sewing, renovate, makeover room to name a few. In some cases, you don't really need to hear the audio at all.

Lastly, this is just **my opinion** and do give it a try. Who know you might like it.

## Now that we are done with theories let proceed to, how behind the scene is done with Javascript.

Usually a video will render in this kind of element in DOM, while for audio is `<audio>`
```html
// taken from youtube html and stripped few things
<video class="video-stream html5-main-video" src="blob:https://www.youtube.com/...id"></video>
```

So how do we change the playback speed rate? Every `<video>` and `<audio>` element exposed a `playbackRate` getter and setter. You can set this to any speed. 3, 4, 5, 6 and so on... its your call. Just be aware that, higher the number might hang your browser since its your browser doing the work. 

Let's get hand dirty with javascript. Open the `console` in Devtool and paste this. It will find all video element and set the playbackRate to 2. This is useful if the website still didn't implement playback rate like in facebook, twitter, vimeo, netflix and etc...

[MDN Doc](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/playbackRate)
```js
document.querySelectorAll('video')
        .forEach(i => i.playbackRate = 2)
```

But to write this code to every website and open Devtool its not cool. And I want to share 1 extension tools that I used. Just install it and press `s` to slower, and `d` to faster. And you can set the speed more than `2`. You can find other extension tho, I'm just lazy to try others 🤣.

Video Speed Controller
- https://chrome.google.com/webstore/detail/video-speed-controller/nffaoalbilbmmfgbnbgppjihopabppdk
- https://github.com/igrigorik/videospeed

Hope you enjoy this article and learn something.

image source: [jakobowens1](https://unsplash.com/@jakobowens1)