The thing is that with those two options, you need to evaluate a lot of things related to your lifestyle. This is super subjective, but let's say you use 3 hours a day to study, then you can become a junior frontend developer in 4 months, but a full-stack in 6 to 8 months.
If you want to be a freelancer, being a full-stack is the way to go, but have in mind that doing a complete app by yourself is an enormous challenge. You'll have to endure months of your own frustrations and your client's.
There are a lot of courses out there. I have read good things about this one, to become a full stack:
https://www.udemy.com/course/the-complete-web-developer-zero-to-mastery/
The important things to understand here are:
-There are tons of languages out there, I can't recommend any one in particular because all of them have different uses.
-The time depends on your own pace.
-Do something that you love, because the road is long.
-You'll realize you're a better programmer in some months, but is not an overnight change. Check Veritasium's video 'The 4 things it takes to be an expert'
-Some decisions will be based on money, some on the technology that you like the most, some on technical aspects. You can only read more to take informed decisions.
-I started as an entrepreneur, I created apps by myself, but it was when I entered a company that I understood the good practices. The difference is brutal.
-To become a mid or senior developer, you need to read the books about your framework and language, is the only way.