Personally, I’ve always had the most success with real, live instruction from qualified teachers combined with some immersion. Immersion and conversation partners alone are excellent for practice, but they’re not going to drill you on grammar or necessarily correct your mistakes in the ways I (and I suspect most people) need to speak well.
The only languages I have ever picked up successfully almost entirely through self-study have been Italian and Portuguese, in which I am a middling intermediate, but I can actually do things like travel, make small talk, navigate hotels and restaurants, and lately, get COVID tests, in both. But the only reason this was easy for me was because I already knew Spanish fairly well (had six years of classes in school) and it was easy for me to see shared patterns and structures. I can read and speak a crude pidgin French as well, but my pronunciation is bad and instead of proper grammar I just end all verbs with hon-hon-hon noises.
I am currently learning German, because I live in Switzerland and was required by law to learn it; I had a few intensive courses at Berlitz when I first got here, and I got up to B1 (B2 on a good day) within six months or so. But it’s hard to immerse here because nobody actually speaks Standard German on the streets, but Swiss German, which is different enough that most Germans I know can’t really understand it. Even when Swiss people speak Standard German it is usually distinctly Swiss-flavored. I understand it better than I used to, and I have a Swiss accent in German, but I would be lying if I said I could actually speak Schwiitzertütsch.
So I have sort of plateaued at the B level for a long time. I’m using Duolinguo a bit while I wait for either my next German course or a dialect class, and I find it fun and surprisingly good for acquiring new vocabulary and drilling in the syntax, but I don’t know that a rank beginner would be able to actually learn the language just with that.