When I graduated my resume was fairly sparse. Whilst looking for my first job, I approached a local charity and built them a web site. They gladly accepted.
Doing this had many benefits:
- Firstly volunteering your skills for a good cause feels good
- It was a valuable addition to my portfolio/work experience
- I gained valuable experience
- I had additional experience to discuss in subsequent interviews for paid jobs
- The charity also nominated me for the Volunteer of the Year Award (I didn't win it :) ), but even the nomination was good addition to my resume
I'm glad I did it.
I would have been less inclined to work for a company for free, but it depends on the organisation. You have to weigh up whether offering your services for free with the chance of a good job/career is worth risking your time.
Contributing to open source projects, or even starting your own, is another good way to hit many of the points I listed above.