It is better to start from the end: decide whether you are preparing yourself to work for hire or on freelance? The set of technologies and the demand for tools on these two paths are different. If hiring usually implies a good knowledge of a limited technology stack, then freelance is more in demand for quick solution to problems in a variety of technologies, for most of which it’s enough to read several articles and study sample code on StackOverflow.
Even in the junior position after the usual courses you most likely will not be accepted. And it’s not even a matter of having a portfolio, but of your shallow knowledge of technology and the experience of completing tasks. I would advise you to see dozens of vacancies in your field and make a list of requirements. In fact, this is your roadmap, something that you must learn to practice in 1–4 months to successfully get a job. You need to allocate 2-4 weeks for each technology step by step, reading everything that is on the Internet, and try to apply it.
If possible, I would advise you to find unpaid internships, where you will always have people at hand who you can ask for, and where you will get your hands on real tasks and gain experience in teamwork. Many people forget, but a good programmer is not only a person who knows how to write code, but also knows how to interact with teamwork, work with team development branches, comment and test code, plan your time, ask colleagues questions correctly and much more.
If you show yourself well at the internship, you are more likely to be hired by the staff, and in the worst case, you will get the necessary practical experience. To be honest, I have not seen people who would not find work after three internships.
And if you are absolutely extreme and want very fast growth, go to startup events and try to join projects that interest you. Yes, there you most likely will not make money, and it is very unlikely that you will be lucky enough to get into the new Facebook, but you will quickly grow because there is more space for choosing technologies and fewer requirements for the quality of the code. The main thing is to quickly show the result.
After working at startups for at least six months or a year, many of my friends jumped over several years in building a career due to the experience gained, and then they were taken, if not in CTO, then with strong middles or, if the person was very strong, then immediately with seniors or even teammates .
But, as I wrote above, the main thing at the beginning is to decide what you want on the way out: work in a company or freelance.