> You can just google syntax so I don’t bother memorizing syntax. Specific syntax is never going to be the thing I remember that puts all the pieces together.
As you continue programming in a given language, you automatically memorize low-level things like syntax and idioms. That's not something that everyone needs or wants to practice explicitly with flashcards or whatever (that's not how I learn, anyway). But memorization of syntax is absolutely critical to achieve "fluency" in the programming language, just as in human language.
Imagine a monolingual English speaker learning German and scoffing at their classmates' attempts to internalize the grammar rules. You can Google or look all that stuff up in a few seconds! But having to pause and look up every conjugation or word ordering is exactly what prevents the learner from actually communicating clear ideas at a useful speed in their target language.
My biggest problem is remembering the things that are done similarly everywhere: is it .length, .len, .size or .count? Or are they methods? Or globals? Why do these things have to differ even between SQL dialects
This is why I'm such a big fan of good code completion. I don't need it that much in my main language, but when I use other languages every once in a while it's much much quicker than googling these things.
Yes to that! Last semester I had to program in Java, and while having very little specific knowledge of the languague, the IDE (and some basic OOP understanding) basically enabled me to solve the tasks without any troubles.
Java is especially good for that, though. You just add a point to a variable and choose what you want (out of 1000 methods).
> As you continue programming in a given language, you automatically memorize low-level things like syntax and idioms.
I thought so too. Then I ended up with having to write a lot of tSQL. And even though I used them quite regularly, I always had to look up the syntax for things like MERGE, or PIVOT. So I made flashcards, and it has increased my productivity enormously. Not so much because looking up the syntaxes took particular much time, but it always interrupted my train of thoughts. And before I know the syntax by heart I always felt this slight resistance to use these constructs because I knew I had to look them up and would probably make some small mistake somewhere et c.
As you continue programming in a given language, you automatically memorize low-level things like syntax and idioms. That's not something that everyone needs or wants to practice explicitly with flashcards or whatever (that's not how I learn, anyway). But memorization of syntax is absolutely critical to achieve "fluency" in the programming language, just as in human language.
Imagine a monolingual English speaker learning German and scoffing at their classmates' attempts to internalize the grammar rules. You can Google or look all that stuff up in a few seconds! But having to pause and look up every conjugation or word ordering is exactly what prevents the learner from actually communicating clear ideas at a useful speed in their target language.