There are so many circumstances which affect the model of hiring, let's try to consider these models coverings possible hidden risks for your business:
1) Hiring freelancers by yourself
It would cost MUCH more for your project in the long run, if you have made a wrong choice.
Advise: hire people this way only with recommendations from their previouse employees, or taking into account their profile score, for example it's easy to check on upwork: http://prnt.sc/cz3htz.
2) Hiring a freelancer while your decision is backed by an expert in the area
Gives you more confidence that candidate meets your requirements.
Still, you need to be sure that the original expert you’ve hired is really good enough to interview potential candidates.
Advise: usually this kind of experts has a good level of trust in the community. Check their blogs, references, etc. If you are going to invest in your team a lot (not just 1 position), visit relevant conferences and talk to speakers.
3) Hiring a recruiting agency
Probably it's one of the fastest ways to find someone,
Usually recruting agencies also test psychological profiles of candidates, so you can be sure that the person you hire is not just good enough as a tech expert, but is also the right person to work in the environment of your company
Still, usually recruiters are working for comission, so they are interested in finding someone faster. They do not guarantee that expert they’ve found is the best choice for you.
Good recruiting agencies cost a lot, you need do some research before hiring.
4) hiring IT company
You actually delegate all risks to your IT provider, because you are getting a tech partner, not just a developer or a team. If it's a good company, you are getting a client manager, legal support in signing up agreements, quality assurance support, business analytics, etc. So, actually you are getting access to the best resources a company has, thus the doors are open to their experience as well.
Pretty fast in getting resources to expand your team.
If they provide you with a good PM, you can be aware of risks, estimations and be confident regarding deadlines.
Ask for references from previous clients and case studies. Don't look at low rates, as usually low rates of an IT company bring some risks, because such a position means that the company doesn't have any other advantages before competitors like expertise, references, certifications.
Hiring an unreliable software outsourcing provider can sink you in more trubles even in comparison with all previousely described models.
If you have enough budget for this and software development is one of the specializations of your company and you have a good person on your mind and dedicated budget, go with this step. Find someone you can trust and deligate building tech support to this person.
This stuff can be helpful as well: https://qarea.com/articles/how-hire-developer-right-manner
I have been around this question for a long time, on BOTH ends.
As a non-techie, meaning you do not know a lick of programming nor how programmers actually work on a daily basis, it is pointless for you to judge one base on psychology alone.
So two options:
Trying to go at this yourself and "figure it out on the way" is the worst idea. Trying to assess after like 30% into the project is also a terrible idea, unless you rather waste money and time that way, worse yet, "settle" for whatever he can do. And yes, you will need money either way. There are about 0.001% of people who are qualified and may be willing to work for free/cheap with partnership, but surprisingly enough, that is becoming less and less and more just want your money.
Hire people as contractors first, for a specific task, or two.
This will give you the experience working with them, that should be enough to decide if you want to hire them full time.
There's an old saying in Hungary. You only get to know someone by living with them...
Or, working with them, in this case.
This will also give you a larger pool of expertise, for specific tasks, without spending millions on hiring a bunch of top experts.
But, be fair!
It doesn't mean you should consider people to be disposable!
If someone is good, you should hire them full time.