I'm learning to program from online classes but don't have any real world experience. Every "Junior" job on Indeed requires 2-4 years of experience. I'm a beginner but learning and eager to learn more.
The programming "Bootcamps" are way too expensive for me and no guarantee of a job after.
Can I volunteer to work for a company for free in exchange for some mentoring and real world experience?
I figure in the startup world there are smart developers who need help but low on funds, and I can do the work for them in exchange for some mentoring.
I don't know if this is a possibility to work for free for experience. I'm not in a university for college credit.
Web development jobs ask for experience, but what they're actually referring to is ability. You can "hack" this process by building projects publicly. Use GitHub, contribute to open source, and continue building for-fun projects to grow your skills.
Send your GitHub link along with applications, and you'll get some nibbles.
I'll echo Jason's comments on using GitHub and if you can build a reputation, Stack Overflow (but don't get downvoted). I'll also add my own too, since mentoring an intern in my own company is something I'm currently doing. I'm not currently looking to mentor anyone else atm, since it's a travesty for all of them to spread yourself too thin. Though am happy to discuss direction.
The short answer is yes, you can, but whether they're allowed to take you on in that capacity is another matter, since some countries rightly have laws to protect workers from exploitation. Plus, it crucially depends on the value you'll get from it and that they can provide. My experience has been quite positive taking on someone who is already degree educated, though in electronic systems engineering. My intern is very keen, has grasped the concepts of agility and DevOps well and my focus for them has been to get them doing two things.
The first, identifying a particular problem to solve and creating an open source project on GitHub to solve it. The second, blogging about it. The first encourages and attempts to exhibit technical skill. The second to communicate it. You can be the best programmer in the world but if nobody knows, you're as good as a nobody.
From the other side, you have to be willing to even present your own learning and development plan. It has to be as frictionless as possible. Especially in startup world. Many are low on funds, yes. However, they trade on time and skill. You have to respect that as every minute spent with you is a minute they're not trying to add revenue to their business, which risks them not having a business to fall back on. That does you no favours as then the reference you get isn't as powerful as it could be (though still useful). It's not uncommon for gem to spend 4 hours a week or more with you. If their revenue stream is normally 100K a year, then given a 40 hour week, that's 10K they've spent with you if they're not yet at the stage of passive income. However, it can still be a rewarding experience for both of you.
In any event, if you don't ask, you rarely get. So I wish you the best of luck in finding the right company.
I think there are 2 solid things you can do to gain and show your experience:
1) Built out a personal site and side projects. Take time and work on your own pet projects to learn the trade and build a portfolio
2) Offer to built a site or 2 for friends and family. It can be free or paid as long as the ground rules are clear. You will get a feel for the process with a bit of a safety net attached.
"2-4 years" can be a trivial requirement as long as you have something you can show potential employers.