Companies across the country are desperate to hire programmers. But they only want to hire developers with real-world experience.

If you learned to code in college, chances are you got this experience through an internship. But if you're one of the thousands of people teaching yourself to code through interactive tutorials, online courses, and other web-based resources, you might not be able to take that kind of time off from your day job.

Free Code Camp offers another way: volunteering your new-found programming skills to non-profit organizations throughout the world.

Dozens of companies have emerged in recent years aiming to train the masses to fill the estimated thousands of available programming jobs in the US. So-called "code bootcamps," which aim to teach students the basics in only a few weeks, are one popular choice. But not everyone has the time or money to attend a six-week, full-time program. Other companies offer interactive tutorials or online courses, but it can be hard for their students to find real-world experience.

Many students lend their new skills to open source projects, which is an important part of the modern programmer's résumé. But Free Code Camp offers an intriguing new way to give students more hands-on experience. By building apps for non-profits, students learn about planning a project and how to work with a team. What's more, Free Code Camp, as they name suggests, is free.

Committing to Code

But just because it's free doesn't mean Free Code Camp is easy. It doesn't just throw its students straight into working for a non-profit. Getting good enough to code in the real world takes time.

The site features a sequence of online tutorials to help the absolute beginner learn become a web developer, starting with building a simple webpage. Students move on to programming with JavaScript and, eventually, learning to build complete web applications using modern frameworks such as Angular and Node. The curriculum also includes outside resources, such as Stanford University's online Computer Science 101 course, and tutorials found on Codecademy.

Once you've completed the full curriculum, an estimated 800 hours of work, you can sign up to volunteer to work for a non-profit—another 800 hours of work. Since the site launched in October 2014, only a few of its more than 30,000 students have completed the full 1,600 hours yet, says Free Code Camp co-founder Quincy Larson. But of those who have, some have already landed real jobs in the real world.

Right Place, Right Time

Branden Byers spent the past two years as a stay at home dad. He read about Free Code Camp on Twitter soon after the site launched in October. After completing the first 100 hours of lessons, he volunteered to help build new interactive tutorials for the site. His task was to write software that could verify that the code a student wrote as part of a tutorial was correct so that the student could move on to the next lesson. As luck would have it, he described the work he was doing to a friend at a local tech meetup in Madison, Wisconsin, who just happened to know someone who wanted to hire someone with exactly that skill set. Soon, Byers had a job at a Mid-Western software company writing code to automate the test process of the company's web applications.

"It was a case of being in the right place at the right time," he says.

Cristián Berríos Vergara, on the other hand, was an experienced programmer who wanted to switch careers. His background was in embedded systems programming – a field that involves writing software for devices like networking gear, digital watches and other microelectronics – but he wanted to work in web development. The problem was that although there was a wealth of information to help him learn the new skills, there was no structure to help him progress from one skill to the next.

"I was learning bits from here and there and I didn't felt like I was making much progress," he says.

Free Code Camp founder Quincy Larson. Free Code Camp

After completing the 800 hours of work, he was assigned to Kopernik, a non-profit that provides sustainable technology to the developing world. The organization's Wonder Woman initiative provides biomass stoves and solar powered lanterns to women in rural parts of Indonesia who can then sell the equipment in their communities, establishing sustainable businesses and spreading environmentally friendly technology. Vergara and another Free Code Camp student built a simple Chrome plugin that can be used to record sales data while offline and then sync that data with the server when an Internet connection is available.

After that, Vergara, a Chilean national, decided to start looking for a job. "I wasn't sure if I was ready for tech interviews," he says. "But the community convinced me so I started applying at online job portals." He landed a job offer – and a visa – to work at a Houston-based consulting firm.

Smart Enough

Larson and a small team of volunteers are building Free Code Camp on their own time. But he says eventually he hopes to make money from the site, possibly by helping to match students to employers and earning a recruitment fee.

Larson, who ran an adult education center before learning to code, admits that online learning is still an experiment.

"I think if we had teachers, if we could afford to hire them, we'd have better outcomes," he says. But affordable teachers with enough experience are hard to come by, he says.

In lieu of dedicated teachers, Free Code Camp focuses on peer learning. The company manages several chat rooms on Slack, a workplace chat platform popular among coders at startups, where students help each other out when stuck. The company also coordinates local Facebook groups around the world so that students can meet up in person and practice pair programming, a technique educators believe is a more effective way of teaching programming than traditional solitary study.

Although both Byers and Vergara cited the structure and the chance to work on hands-on projects as hugely important elements of Free Code Camp, they say that the Free Code Camp community was perhaps the most important part of the experience. "I started struggling and wondering if I was smart enough," Byers says. "But I realized once I started talking to people who were going through the same thing that this is just the struggle of learning to code.

Vergara agrees. "When you are self-learning, it's easy to drift away from your goals," he says. "But when I joined Free Code Camp I found that many people like me were trying to achieve similar goals, and I also found that apart from learning I could help other ones that knew less than me."