I'm in the same boat - I'm starting out too.
When I estimate time I come from a software engineering perspective. I try to get as exact as I can on how long it will take to do the tasks I've laid out to complete the project. I tally up the hours. Then I double it and add twenty percent. That figure, in my experience, has been pretty close to accurate every time. There are always things that pop up that I'm going to lose time on - learning how to do this or that, getting necessary information, etc. Figure the hours times the rate of pay you'll accept and that's that.
However, I doubt that will work for corporate contracts that you're going to bid for. You'll have to figure out the minimum you're willing to accept.
Also - user requirements are a beast to deal with. Get them to be as specific as you need them to be. Mock-ups and prototypes will help them to get an idea of what they want. It will save you a lot of hassle and let you make better estimations of time and cost.