Hacker News new | ask | show | jobs
by pmoriarty 2409 days ago
If you're memorizing very specific information that's going to be presented to you in exactly the way you've memorized it, this is great. I am a little skeptical, however, about how well the specific information you've memorized generalizes to knowledge of the principles behind what you've memorized.

Taking one example from the article, if the front of the flashcard is:

  var a = 5 + '5';
  // what is a?
And the back is:

  '55'
  If either side of + is a string, the other is
  converted to a string before adding like strings.
I'm sure it would work great if in a real programming context you're ever presented with literally: 5 + '5'

But whether you'll remember the principle that "If either side of + is a string, the other is converted to a string before adding like strings" when you see, say 237 + "foo" is open to question.

Of course, in this highly simplistic case you probably would remember, as it's not difficult to memorize this principle even without the flashcards, but with more complicated examples I suspect it could be a real problem.

1 comments

If you're memorizing very specific information that's going to be presented to you in exactly the way you've memorized it, this is great. I am a little skeptical, however, about how well the specific information you've memorized generalizes to knowledge of the principles behind what you've memorized.

Difficulty in generalizing things is a common problem from learning. Unfortunately, from what I know from research, the best way to overcome this is through lot of examples, especially examples that seem contradictory.

No, the best way is to read a proper explanation and understand the concept and the apply what you learnt writing some code in a different context. If you are trying to understand a programming language just by reverse engineering it and memorising the keywords in Anki then probably is not going to work.
No, the best way is to read a proper explanation and understand the concept and the apply what you learnt writing some code in a different context. If you are trying to understand a programming language just by reverse engineering it and memorising the keywords in Anki then probably is not going to work.

What make this difference from generating and creating your own examples, as I suggested?

As I said, this is a common problem in learning, not just programming.

Conceptual explanation is not enough, and neither is a single example. Otherwise, you will get surface level misunderstanding instead of deeper understanding.