I need to know the difference between two phrases "learn by heart" and "learn by rote". I would be grateful if you could explain it to me. I'm not a native English speaker.
To learn by rote is to effectively memorize a series of steps and conditions, with the objective of accomplishing a goal. This method has drawbacks if sufficient consideration for complications are not taken, especially if the learner is unable to memorize all the possible conditions which may arise.
To learn by heart is similar in concept, but without the constraints of a specific sequence. One can learn by heart (memorize) a specific series of steps but not have the limitations of only executing them in the memorized order.
The former typically does not require an understanding of the tasks to be performed.
To learn by rote could be considered a subset of "to learn by heart."
Welcome to EL&U. The difference is this: "Learn by heart" refers to the level of learning while "Learn by rote" refers to the method of learning. For instance when it comes to he arithmetical 'times tables' (2 times 2 is 4, 3 times 2 is 6 and so on) most children learn them by heart so that they can repeat them and, perhaps more importantly, can recall individual items randomly and in reverse so that they can do simple division in their heads (for instance 'how many times does 7 go into 42?' answer '6’).
The method by which most children learn their tables is by frequent repitition of the tables. This is 'learning by rote'.