I remember back when I was a mid-twenties whipper snapper, I had read an article about polyphasic sleeping that sounded too good to be true. The gist of it was, after two weeks of discomfort, you can actually train your body to function normally on 15 minutes of sleep every 4 hours. This means that you are awake for roughly 22 hours each day! When I mentioned trying this to my friends, they all asked the same question.
To me the answer was simple, "I need more free time!"
I think the appeal of 22 waking hours per day is exclusive to people who actually have 22 hours per day of things to do. If my daily job was, for example, a butcher, I could not "butch" stuff for 22 hours per day. Not only is this impossible with store hours, but I don't think it would benefit me in any way, save gaining a few extra knife tricks. Same goes for being a manager at the Gap, a telemarketer or being a school teacher. Having extra free time is not a complete lost cause in those professions but, as a developer, this is particularly useful because of two things:
You get to learn new technologies.
You get to create your ideas.
These items are instrumental in shaping a programmer's career path and unlike many professions, we actually consider this side work "fun".
Ultimately, I didn't pursue the glory that comes with 22 waking hours and now I've been stuck with "regular" hours like common folk. It's difficult to get this point across but I hope that the fact I was contemplating sleeping for 2 hours each day gives you a general idea of how valuable free time is to a developer. As I get older, free time is becoming more and more elusive, so, with what little free time I have, why in the world would I volunteer my skills to non-profits?!
Your Ideas Suck
Sorry, it had to be said. Compared to the work you could do for a non-profit or charitable organization, there's a very good chance that your own idea isn't quite as useful to the world.
In this age of mobile and web, technology advances at such a blinding speed that every time you consider, "hey, having an app that does blah might be cool", you'll quickly realize that there is already 20 apps that do blah on the app store. Mind you, the apps I'm talking about are solo project apps, ones that don't require 8+ months and a team of 4 to get off the ground. Obviously, there's still a market for difficult apps, but for any app that you, yourself, could accomplish alone in a "reasonable" amount of time, the pickings are slim.
Developing an app that, for example, helps restaurants donate food to the hungry is probably a better use of your free time compared to developing an app that texts people "Yo" or another To-Do List. I'm certain your ideas are better than these but would they be more meaningful than an charity app that helps kittens find a home? Sure, if you volunteered your time, you won't strike gold by creating the next Twitter or anything but as the graph shows above, the odds are is already pretty slim and getting slimmer every day.
Volunteering with a non-profit will give your work depth and meaning in a way that many of your own ideas do not.
I may just have gotten lucky but thus far the organizations I've been dealing with are very reasonable, have low expectations and don't really have a lot of demands. They know you're using your free time to try and help them out so they're very understanding.
Do you have a feature that might get cut because you're running into some time constraints?
They're ok with it.
Do you want to use a specific technology in their app because it's something you're interested in learning?
They're ok with it.
Do you have some ideas that will make their app better?
They're ok with it.
It's a very easy going process and you likely won't feel pressure or anxiety while completing the project, which ensures the fun of learning new technologies doesn't dissipate.
Pad Your Resume
Any work you do for non-profits or charities are things you should mention in job interviews and employers love hearing about them. It shows that you're eager to learn new technology, you're not afraid of a little extra work and you care about helping those around you. It also shows that you can handle full stack work and be a lead developer or architect on small projects.
Most resumes and enterprise websites like LinkedIn have special areas for volunteer work or special projects, be sure to use that space extensively.
How Do I Get Started?
I hope you can agree that, as a developer with some free time that's interested in learning new technology in a way that both makes the world a better place, and advances your career, volunteering is the right track for you. Let's talk about how you get started.
While it's possible to find some non-profit or charitable work on one of the many freelance websites, I found that going through www.catchafire.org was the best experience for me. Not only is every posting on their site a non-profit or charity, they also pre-screen the projects that are posted and ensure that the organizations have sufficient backend technology in place and/or IT staff on hand to help you do your job.
Give it a try and I hope you have the same great experience that I did.