How I learned ES6: I have a 1 hour commute each way. When I was learning ES6, I spent roughly half my commute creating Anki cards and half my commute studying those cards.
The process of creating cards: (A) read a paragraph. (B) make flashcards for everything new introduced in that paragraph. (C) goto A.
As for B, I would take great pains to make the cards as terse as possible while still drilling the concepts. Over-verbose examples should be rewritten more tersely (and tested in the browser to make sure you didn't screw up).
For example, from the first paragraph of Section 4.1 I might make this card, among others:
(Front) Evaluate:
var x = 0;
function f(){ if(false) {var x;} return x; }
f()
(Back of card) undefined
(Notice how I distilled the much-more-verbose examples from that paragraph down to a core that illustrates the key point.)
If you're serious about this, it'll take a lot of time. I used it to crash-learn basic kdb in about 1 month, but that required spending ~4 hours/day that whole time. Making cards is a skill in itself, you'll get better at it over time (a lot of my early cards are way too verbose and sometimes I'll rewrite them now that I've gotten better at making terse cards)
Wait a second. This is not how programming works at all. Flashcards are for memorization. If you need to memorize the answer to your "var x=0;..." example, that means that you have not understood how your programming language works. This sounds like a horrible idea. What happens if I change the variable names? Would you still know the answer? You can memorize as long and as perfectly as you want; if you struggle with such basic understanding of the programming language, I will not let you touch any of my software products.
I cannot believe that you are following such a strange approach to learning programming. In fact, I believe that you are using Anki for something completely different than what you are claiming here. You are not making flashcards and you are not memorizing the answers. You are making quizzes and you are using Anki to check whether you are able to solve them. At least, that's what I hope.
> You are not making flashcards and you are not memorizing the answers. You are making quizzes and you are using Anki to check whether you are able to solve them. At least, that's what I hope.
I think you have this weird idea that flash cards are only good for memorizing the things written on them.
That's a really limiting, and false, idea.
A flash card is just a pairing of a specific question with a specific answer. How you use that simple framework is up to you.
I used them for trig identities. That was straight memorization.
I also used them for proofs. As in 'Prove every edge in G^k is a walk of length k in G'. Then I'd work through the proof, and check my answer against the one on the other side. That's not memorization.
I don't see it in such a bad light; a correctly targeted quiz that effectively targets one unique concept, is asking you to use that concept, and for that you need to remember it. It is testing another dimension of how you learnt that concept. Although I agree it is not the most efficient way of learning to program, it sure seems like a good way of not forgetting corner cases of the language...
I created cards by going through this excellent free online book (I skipped chapters I wasn't interested in): http://exploringjs.com/es6/index.html
The process of creating cards: (A) read a paragraph. (B) make flashcards for everything new introduced in that paragraph. (C) goto A.
As for B, I would take great pains to make the cards as terse as possible while still drilling the concepts. Over-verbose examples should be rewritten more tersely (and tested in the browser to make sure you didn't screw up).
For example, from the first paragraph of Section 4.1 I might make this card, among others:
(Front) Evaluate:
var x = 0;
function f(){ if(false) {var x;} return x; }
f()
(Back of card) undefined
(Notice how I distilled the much-more-verbose examples from that paragraph down to a core that illustrates the key point.)
If you're serious about this, it'll take a lot of time. I used it to crash-learn basic kdb in about 1 month, but that required spending ~4 hours/day that whole time. Making cards is a skill in itself, you'll get better at it over time (a lot of my early cards are way too verbose and sometimes I'll rewrite them now that I've gotten better at making terse cards)