Hi @nashat.msamy !
Sites like upwork and fiverr are very competitive.
There are thousands of people looking for work.
When it comes to freelancing, the more experience and skills you have the better you will be able to compete in the marketplace.
Also, freelancing requires another important skill set which is the ability to sell yourself so you can attract clients.
It will take time to land gigs and build up a clientele.
Well it sounds like you are still early on in the learning stage.
So the best thing you can do is build up a solid foundation in the fundamentals.
When you are on the job, you will be asked to work with technologies you have never worked with before.
If you don’t have a good starting foundation then it will be tough to get started with the job.
Don’t rush through this process and create serious holes in your education.
Take your time and learn it right to the best of your abilities so you can be successful on the job.
As for the portfolio, I would just focus on building tons of projects for the experience.
Most of the projects you make early on won’t be used on your portfolio anyway.
I built tons of small projects just for the learning experience and never bothered deploying them.
As I continued to learn and build I would make sure to keep challenging myself and build on project complexity.
Once you get to the point where you can build projects with some good features and some complexity to it, then you can add that to your portfolio.
Remember your portfolio should contain projects that take a few weeks to build and have some substance to it.
Not projects that took an hour or two to build and are small and basic.
Without prior programming experience, your portfolio should demonstrate that you can learn and will be up for the challenge of a full time developer job.
Hope that helps and good luck