One can study the laws of gravity, understand the mechanics of a bicycle and explain in detail how to ride a bike. This information will not teach someone how to ride a bike. To learn how to ride a bike one must ride the bike.
Software programming is much the same. Learning theories, patterns and getting certifications don’t teach someone how to program. It must be learned through experience.