Suppose that someone asked you to recommend something, what will be your reaction. I think, firstly, you will want to know if this person is known to you or an stranger (Really stranger can ask for recommendation and shop-owners/teachers experience it regularly). Secondly, you want to know area on which he wants recommendation.
As an example, think that asking person is student and he wants to know good material for preparation of math Olympiad examination since you cracked the same exam. So, now you are fine with not knowing much info about him. Instead, you can recommend good books which you gone through. Here you are recommending based on content and you are happy without knowledge of the user.
As a small twist, suppose that you have not cracked math Olympiad examination (Suppose, your kid/sibling is asking this info). What you will do? You might have heard feedback from other parents/teachers/kids about good material. So, you will recommend him the same. Here you are recommending based on other users feedback, a collaborative approach.
In both cases, if you know person, you can provide personalized recommendation. For example, if you know that the asking person is weak in number theory, you will emphasis on the material/book which will help him to learn this. If the asking person has already cracked junior Olympiad, then you will recommend him advanced course material.
Computer program uses similar approach in order to provide recommendation.
https://en.wikipedia.org/wiki/Recommender_system