Hi Jinchao
Sorry for the late reply -I missed this one.
This can be done through the use of hidden categories, creating learner roles for categories that have the view See hidden category and Show hidden courses allowed for the role.
You would then assign the learner category role at the course category level you want the learners to see.
When you select the Find Courses menu when logged in as a learner the hidden categories don't show. When you login as someone assigned the category learner role the categories don't show - but if you select show all courses the category amd courses that has been assigned to this role do show.
with the following course and categories
When logged in as learner without view hidden categories
When logged in as a user with the learner category role assigned to the Computer skills category
I think this works - there may be an easier alternative - the separation of users in Totara is being looked into making a lot easier to do.