Yes. Passion is not required, but makes things easier.
Talent is a myth.
Skills come from training.
Training is done if you want or have to do it.
Passion can make you want to train.
And yes, there is a huge amount of programmers who have passion but are simply bad. Because they like to program, but they don't train.
It's like learning new songs or techniques on guitar vs just playing the stuff you already know. The last makes fun in its own, so many people just don't learn to play better.