100% agree. *Both* talent and passion are required to be a good developer. You can be OK with one or the other, or you can be a drain on your organization and coworkers with neither.
There are plenty of developers out there with neither, and I do not want to work along side any of them. Go do something rote, not software development.
Having said that, I feel like a lot of people mischaracterize both terms to either mean that someone is a natural genius, or spends every waking hour learning or programming, both of which are silly to expect from everyone.
Talent — The ability to think about things in an abstract way, and understand concepts at a programmatic level. I know multiple friends that are really smart, but can’t think that way. Not there fault, programming just isn’t their thing. Plenty of other careers out there.
High levels of talent makes development more “natural”, and enables easier troubleshooting.
Passion — Enjoying what you do. Having a drive to be good at it. Not seeing it as a simple rote job, but as something that is fun to do.
High levels of passion leads to side projects (not company time or company related), learning and keeping up to speed on new developments (critical long term), and not getting burnt out when debugging through boring code for hours on end.
If you lack both of these then you are doing yourself a disservice to take up programming as a career. It may pay well, but your better off having higher quality of life, and doing something you are good at, and enjoy. Not saying this as an elitist, just saying there are jobs for every kind of person. Don’t do one that isn’t the best one for you.