As a self-taught developer who has also been recently interviewing devs from both self-taught and academic backgrounds, there are a couple major pros and cons that I see repeatedly.
Pros - Motivated to learn new things - Confidence to know that unknown tech can be approached and tamed - First-hand knowledge of what makes a system/language/framework accessible (or not) to beginners - Passion
Cons - Lack of theoretical background can start to catch up as you move into more senior roles (although this can be abated with continued hard work and independent study). - Lack of understanding of underlying principles can lead to unscalable and inappropriately hacky code. - Lack of understanding of algorithms can be lead to same problems as above.
These are very general of course, and definitely don't apply to everybody. I think the best quality that self-taught devs have is a real passion for programming and desire to improve on personal time (although plenty of academic programmers have that as well). The cons can also be overcome with hard work and determination.