"Learn"? No need to, there aren't that many of them. At least not that many you actually need. And our nice syntax-highlighting text editors prevent us from accidentally using keywords we might not know about (though again, there aren't that many keywords so that's rather unlikely).
If you're talking about stuff like the standard library - I remember the classes and how to generally use them, and always keep a tab for the documentation open so I can look it up if I can't remember something.
No, when I need to use them they just flow out of my fingers. It's like writing. I never memorised a dictionary; I just write, and now and then I need to double check something so I might open a book.
Generally the hard things in programming are not working out which keywords to use. Programming is not a game of memorising syntax and to think it is is to do yourself no favours.
@Mta: I din't get what moschops is trying to say. Does he memorize them or not? Or does he open the book when he needs them? What about u Mats, btw, how do u use them? Did u learn all of them? I'm talkin about reserved specific keywords, datatypes( Variables) n stuff.
Exactly. You learn them as you go and reference them if you can't remember. Forget learning them all. If I need a keyword I rarely/never use, I will just Google it quickly. My understanding of programming itself allows me to do this. I have not learnt the keyword, but how to program. This is what moschops is trying to tell you.
@yani: nobody is saying you _can't_ write them down on a piece of paper, if that helps you learn them. Eventually, you will have "most of them" in your head, so you can concentrate on higher level things (like how to structure your design) - this is just part of "becoming familiar with the language." Which is why it's good to practice, do examples, etc - you'll find yourself using your "cheat sheet" less and less, as the language becomes second-nature.