Thanks for the writeup, some good points!
I came across this article which offers a somewhat different approach:
A point which he makes and which I agree with is Upwork and similar "market places". Personally I strongly dislike them because they make you play within their rules, and their best interests are definitely not yours as a freelancer (look at the fees and commissions that some of these 'platforms' are taking). Being truly independent makes it possible to get the best out of yourself.
For me the trickiest thing was/is how to determine my niche/specialization - that is, what exactly am I selling? Specialist or generalist ... develop a product or offer a service ... fixed price or hourly billing ... what's going to be my strategy?
Main problem was that I felt I was "too broad". This has pros and cons - the advantage is that you can take on a wider range of projects, the drawback is that your "sales story" becomes more complicated, and that it's almost impossible to keep up to date with such a wide range of technologies.
High quality and efficient development with these tools, whilst putting soft skills (top notch communication, analysis, design and project management) front & center, is what I want to formulate as my "value proposition". Make it clear that what you have to offer is worth the price.
In case the client insists on a different selection of tools/technologies, then I can fall back on my "broad skillset", but in that case I'll want to raise my hourly rate (I want to make my favorite tool chain more attractive for them than the alternatives).
Offering this clear and articulated "value proposition" also makes it easier to attract higher quality clients, and to set a good rate (this was/is my second biggest issue, I almost always "go too low" for instance because the client just doesn't have the necessary budget).
Of course this only works if you build up a larger set of prospective clients so that you can say "no" to the ones that are not prepared to pay what you're asking. With a bigger pool of 'prospects' you can just say "no" more often.
So how do you get this larger pool of prospects - that's where the second part comes in: build your authority, and based on that do your marketing. Blogging, open source, networking, offering useful "freebies" that you developed as 'side projects'. I've only invested a little bit in these activities but that's already taught me that this can be very effective when done right.
Someone like Brennan Dunn (doubleyourfreelancing.com) has some good ideas in this area (I'm in no way affiliated with him, but I got inspired by some of his ideas).
Just some thoughts, but as always the truth is in the middle and the answer "what's the most effective approach" is "it depends", what works for me might be entirely different from what works for you.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.