No, of course not. There are exceptions, but those are the exceptions, not the rule. Just like there are people who never studied architecture and nevertheless are able to design great houses.
No knowledge is useless* and, even then, every student can learn the same stuff that dropouts learn (because all the resources are freely available) while also counting with very knowledgeable and experienced guidance, many immediately available like-minded people with whom to discuss and very good facilities with which to practice (for more complex stuff).
For that matter, let's leave it to one of the best himself: Linus Torvalds: I do not believe everybody should learn to code.
The bottom line is that what makes a good programmer is on the person and how motivated they are, not on how they learned. That said, people who are motivated to learn a trade, generally study something related to that trade.
*I've seen many who weren't even dropouts (merely studied something else, even an engineering), who, although they could write code, didn't know about complexity or about several software engineering best practices; more than once I saw people having to be introduced to scrum.