... an algorithm is a series of steps to solve a problem. If he is good at problem solving, he should have no problem with algorithms.
Now, I think a lot of people are bad at remembering every algorithm they are taught in a class. Unless you use it a few times, it's not likely you will be able to implement it off the top of your head, but that is what the internet and all those useful CS books are for.
But seeing examples of non-trivial algorithms makes what you once considered non-trivial, trivial. A lot of algorithm design seems to be a kind of poetry to me - where one draws on similarities to algorithms she's seen before, as a poet would draw on metaphors or imagery they've experienced elsewhere.
Now, I think a lot of people are bad at remembering every algorithm they are taught in a class. Unless you use it a few times, it's not likely you will be able to implement it off the top of your head, but that is what the internet and all those useful CS books are for.