+1 for learning to do it yourself.
As has been said, Unity is pretty good to get you started. If you are willing to invest some time and are quick to pick up new things, you get things moving in Unity quickly. They won't be pretty, there will be lots of problems to sort out yet and it might not be exactly what you imagined, but its a working game, kind of.
As Rld_ said, be aware that you might be years away from realizing your dream game on your own (but most probably also multiple years of savings away from paying anyone to do it). If you don't like that thought, either scale down your idea to the bare minimum or abndon the idea to create your own game.
Relying on others to do the work is always risky, even more so if you cannot pay them. If you are not on the same page about your idea with your programmer friend, that might be a problem. If you are not able to work close together, it might be a problem, as Unity projects get big quickly, and there is a problem working on the same project with multiple people. You will need some way of synching your work and making sure nobody is overwriting stuff someone else created in the meantime. I am sure your programmer friend knows all about these pitfalls, its solution is what is known as "sourcecode management" or "version control" in the technical world.
I'd say you should learn some basics anyway even if working with your friend works out. If all you can provide are ideas and mechanics, you will be not very valuable for a good part of the development. No offense, but usually you should have more programmers and artists then game designers in a team. If you cannot get to grips with code, make sure you can contribute the art. This way your contribution will be "easier to grasp" so to say, and your programmer friend will see you as valuable co-workers on the project.
Also, somebody has to do the level design. This is, thanks to the easy to learn Unity Editor, more something that needs a lot of time than technical knowledge or artistic skill (of course, level design is both highly technical and an art if done right... but to start off with it, you just need to be able to use the editor). I am pretty sure your programmer friend will be quite happy if someone of you two will take on this role, to make sure he can use his time for programming instead. Here of course the issue with exchanging your Unity project will be the biggest issue which you need to solve first.