I think what makes one great in craft is deeply caring about the craft. It's not just a means to an end, it is something one truly feels passionate about. When one has that visceral calling for something, I think they find ways to get better at what they do. The greatest attribute of humans is that they adapt and learn.
I know several people who could be great programmers, in terms of the ability to solve complex problems, but they do not care enough about their code to do so; which is fine, they find passion elsewhere.
Programming is not for everyone, but I do think that it can be learned over time with patience, passion, and practice.