Learning something and applying what you've learned are fundamentally different tasks. When you're a kid learning to read, reading is tough. But once you've got enough practice, it becomes easy. Coding is the same way--it's difficult for everyone in the skill-acquisition stage. Frustration is normal. But once the skill is acquired things become a lot easier.