by hn17 on 11/8/19, 11:55 AM with 43 comments
by munmaek on 11/10/19, 6:13 PM
I don't see the value in memorizing programming -syntax-. It's irrelevant to me to remember how to open a file in ruby or do a specific command- that's what search engines and then my personal wiki is for.
If I worked -only- in ruby, then I'd likely remember those specifics much more, but since I hop around with rust, python, c#, clojure ... depending on our clients, there's no way I'm going to remember stuff like that for every language. Especially since languages tend to get updates and changes!
I would use anki to retain knowledge of stuff like more complicated data structures. Right now, I just search for what I need, then toss it into my personal wiki folders. I can then use notational-fzf-vim to rapidly fuzzy search my markdown files. [0] I keep these synced across computers with a selfhosted nextcloud instance.
by zelly on 11/10/19, 6:44 PM
by anaphor on 11/10/19, 5:57 PM
Also a huge component of memory is contextual cues, which is why people find it so hard to code on a whiteboard vs. being at their normal computer/keyboard.
by daenz on 11/10/19, 6:06 PM
If anyone has had similar experiences, I've found the best way to learn has been writing about things that I use, as I'm using them. The rule for writing in that way is only write what you've come to understand...don't just copy text that is "useful" from another source. Dive deep and learn the shape of the concept, then write about it in your own words, then move on.
By writing from your own perspective it has 2 effects: 1) it helps solidify the concepts a bit more, because you can only explain something once you've reached a certain level of comprehension. and 2) it serves as a "stack snapshot" of your mind when you had a handle on the concept, and re-reading that snapshot loads the context back into your mind very quickly.
by gambler on 11/10/19, 8:17 PM
var a = new Array('5');
// what is a?
var a = 5 + '5';
// what is a?
It's sad that many languages force people to memorize trivial stuff like this.This is one of the things that really impressed me about Smalltalk/Pharo syntax when I started learning it recently. The language itself encourages you to name things in a way that labels all the parameters. E.g. you can have a constructor like this:
OrderedCollection ofSize: 5.
And method names are composed of parameter names: array insert: 11 before: 2.
Instead of array.insertBefore(11, 12);
by imedadel on 11/10/19, 7:23 PM
A while back I made a Chrome extension for LeetCode. [0] It takes care of scheduling problems for you and the extension users love it :) It costs only two dollars, so you might want to try it :)
by jeffshek on 11/10/19, 9:06 PM
https://senrigan.io/blog/everything-i-know-strategies-tips-a...
by pmoriarty on 11/10/19, 6:07 PM
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.
by deboflo on 11/10/19, 5:52 PM
by mailjenil on 11/10/19, 7:18 PM
Its working well so far.
by smabie on 11/10/19, 7:35 PM