Working for free?
I work at a university in the admissions office doing boring data entry work. Nothing that has anything to do with programming.
My boss knows that I'm going to school for computer science and I've helped him in the past when there are some programming issues. I've also volunteered to be the school's webmaster because I enjoy doing it and it never taked more than 5-10 minutes out of my normal day.
But my boss now wants an iPhone (or other mobile platform) app for prospective students. I showed interest in designing and programming this iPhone app for him and even went as far as to create some mock ups and code snippets for a proposal.
He ended up hiring another person for the job (which is fine) but he wants all the proposal work I did to be sent to the other person since he liked my proposal and what I had planned.
I also know that he's going to have me help this person creating the app if they get stuck or need a second hand on the project, and after the person is done, I know I'll be the one to make any updates and fix any bugs. But I know that I won't get paid for contract work, only my normal salary.
Should I give up my ideas/work for this opportunity for experience? Does working for free like this (when not an intern) have it's advantages later in a career? Is this common practice for beginning programmers looking for experience?
Is there a point when I shouldn't offer my skills as a programmer any more? Where I should deny further assignments/jobs from an employer who isn't paying me for the job they hired me for?