It is something to theoretically know something. It is totally something else to apply it practically.

This is part of the life long education that one goes through.

This principle also applies in the programming world.

One can know all the algorithms and theories. However applying these concepts in practical problems is what differentiates good programmers.