You don't have to "learn them by heart", just listen to how they're pronounced and take your cue from that. In terms of spelling, it's more difficult to differentiate between unstressed о and а, voiced and unvoiced consonants at the ends of words, etc. (unless you have etymological clues for those things)