I've noticed it's a lot like playing guitar. For the first few years, you'll learn and have small successes, but still won't feel like you can truly "play". It simply takes time to master your craft

.
Afters a few years of grinding out projects, you'll hit milestones where things just kind of click and concepts become way easier to understand.
Definitely never stop reading books / online resources either. If you're learning PHP, i'd recommend OOP design pattern books, or learn to use frameworks like laravel, yii, etc so that you'll be conditioned into only using best practices when you code
.... and if you're truly passionate about this and want to make it your career, learn test driven development (ie unit testing), then you open doors to mainstream where the real moneys at hahahah