The most common question I get about Learn JavaScript is: "When will Learn JavaScript be complete?"
If you don't know, Learn JavaScript is my flagship JavaScript course. [You can find out more about the course here](https://learnjavascript.today 'Learn JavaScript with Zell').
The best answer I could come up with was: "I don't know".
I hated myself for saying that.
I've been writing Learn JavaScript since last August. I promised myself a certain deadline twice. And I failed to hit the deadline twice. I feel ashamed for creating content so slowly.
I came to a point where I'm scared to promise a deadline. I don't want to disappoint my students. I don't want to disappoint myself either.
But I realize that I can't say "I don't know" to students who already bought the course. They have a right to know. So today, I'm going to overcome my fear and provide you with a proper estimate.
A world where I have created this video, and you're watching it.
A world where I have created this video, but you're not watching it.
A world where I did not create this video.
In this parallel world concept, a Git branch is a parallel world.
You can have a branch that stays the same in one world. Then, you branch off into a different world. Once you finish your code, you can complete the initial world by merging the changes into it.
When I launched Learn JavaScript in July 2018, I used a refund policy that says:
> "I’m happy to refund your money if you don’t manage to learn JavaScript through this course. Send me an email within 60 days, show me you did your homework and I’ll send your money back."
I want to let you know that I'm changing to a new refund policy. I want to tell you about the new policy, and why I'm changing it.
Let's say a friend of made a change to your repository and pushed the changes to the Git remote. At the same time, you also made a change to the same line of code.
When you pull their changes into your local repository, you'll notice that there is a conflict.
This happens because Git no idea whether their version is the updated version or your version is the updated version.
I made a terrible mistake when I tweeted about :empty and :blank a month ago. I said that :empty wasn't useful, and :blank is much more useful than :empty.
<Image
src="/assets/2018/empty-and-blank/tweet.png"
alt="Blank is not supported by any browser"
/>
I was wrong!
:empty is actually good enough. We don't even need :blank!
Note: This the fourth video in the Git for beginners series. [Watch the first video here][1].
When you make a change to a local repository, you can push a change to a Git remote. Likewise, when the remote gets changed, you can pull the changes back to your local repository.
Today, you'll learn how to do the pull from the remote back to your repository.
Let's say you want to teach a person something. Why does the person not understand what you're saying?
One of the main reasons is because we like to use big words and industry jargons. These jargons may mean something to us, but they mean nothing to the people we're trying to teach.
The next time you try to teach programming, watch out for the words you use.
Note: This the third video in the Git for beginners series. [Watch the first video here][1].
In Git terminology, we call the Git repository on your computer a local repository.
A Git remote is the same repository stored somewhere else on the internet. It can serve as a backup. If your computer crashes, you can always get the latest version from the remote back onto your computer.
Many beginners believe they cannot understand JavaScript because JavaScript is abstract.
But JavaScript isn't abstract. Programming isn't abstract either.
People feel that programming is abstract because they don't have a proper hook to understand it yet. Programming can become real and relatable once a proper hook is installed.
A good article shows a student how to think through a problem. The student will go "oooohhhhh!" as they read through the article. They'll understand the concept they're trying to learn, and they'll stop searching the web for the same topic.
Lousy articles do the opposite. Students get more confused as they read through the article. They may even wonder if they have what it takes to learn programming.
It doesn't take much to turn a bad article into a good one. The content can remain the same. You only need to get five factors right.
They know how to communicate well, They know how to explain things, they know how to tell if students are confused. They also know how to tease questions out of students.
There's a never-ending list of things to get good at if you want to teach well.
But there's just one thing that holds them together. If you get this one thing right, everything follows.
We never expected this to happen. Last night, we came back happily from eating a Wagyu beef buffet. It was great. My wife left the restaurant smiling from eye to eye. She was completely satisfied with the meal.
But this morning, she felt breathless. She didn't have the strength to move around, and she felt her heart was beating so strongly that it almost beat out of her chest.