Most of the development job descriptions I've seen lately have had a "minimum years of experience" requirement--some of them even list the required years of experience per technology (5+ years of Swift? Very confusing). I understand the motivation to list these requirements. Even with the strictest standards, any interviewer will have the unfortunate (and frustratingly frequent) experience of wasting an hour finding out that a seemingly qualified applicant doesn't know how to code. This leads companies, especially big ones, to constantly raise their standards, hoping to weed out unqualified candidates.
If you've never been on the other side of the table, here's a brief explanation: there are many, many people in this world who have the experience of a senior developer and the approximate coding ability of a mountain goat. Weird, right?
The flip side of this is that there are plenty of developers who only have a few years of experience on their resume, but are excellent programmers. As an extreme example, consider Simone:
Liquid error: internal
Simone has 0 years of career experience as a programmer. Her resume wouldn't get past the scan-and-reject stage of the average Human Resources office. But she has curiosity and passion and twice as many solo projects as me. And if there's a single software shop in the country that has a clue, she'll have a job offer waiting in her mailbox the day she turns 16.
Simone is particularly bright, but she's hardly a rare exception to the rule. Many developers (myself included) started coding as a childhood hobby. Code comes easily to many kids and teenagers. Maybe it's because the world still seems like a logical and organized place to them, so their ideas find easy expression in code. In any case, a few years of hacking on fun projects before adulthood is the most underrated form of experience in the development world. Where do you put that on a resume? How do you communicate to a potential employer that long before high school, you figured out how to mod your favorite game? That you customized an Android build for your first smartphone? That you programmed a robot to wash dinner plates, and that you've been totally in love with code since you were twelve?
Another too-often-overlooked form of experience is the hobby project. Building a simple app or tool from scratch in order to satisfy your curiosity or try out a new technology is just as valuable as doing a similar project in the workplace, if not more. After all, if you're the sole proprietor of a project, it forces you to become an expert in the technologies you're using and the problem you're solving. No one but you will fix it if it breaks. No one but you will build the parts that you don't know how to build. If your knowledge is fuzzy in a couple areas, it will have to get un-fuzzy because no one else is bringing in expert knowledge. My GitHub graveyard has been far more valuable to my computer science education than any job I've had, even though I haven't invested nearly as much time in it.
But again we face the same problem: how do you demonstrate this value to an employer? Where on your resume do the passion projects go?
I could add several things to this list and so could you. Many developers contribute to popular open-source projects and although this builds their skill set in a big way--both technical and soft skills are required for effective open-source collaboration--it is usually overlooked by employers. Some developers mentor others, which in my experience is a more powerful learning experience for the teacher than the learner. And even developers who choose not to code outside of their 40-hour work week are often incredibly motivated on the job, voluntarily taking on difficult projects and punching above their weight.
Employers are constantly at risk of hiring developers with 20 years of job experience but no passion or drive, instead of developers with 4 years of job experience, 6 years of childhood hackery, 3 years of weekends on GitHub, and a lifetime of enthusiasm for cool software.
It's a disservice to you to be judged only by your three or four most recent jobs. And it's a disservice to employers everywhere to unknowingly reject awesome candidates without a technical interview because they don't have enough "professional experience."
What's the solution?
We have to demand that employers meet us halfway. Put a GitHub link on your resume, and give preference to employers that indicate they've looked at your projects. Mention your open-source and hobby project experience in your cover letters. If you're a junior developer, prove that you deserve to be treated like a veteran. Learn about code quality, and show that you care about it. When someone gives you a technical interview--especially if they're dubious about your skills--blow their freaking mind. Teach the world that developers are more than their resumes.
And then, in five or ten years when you're a full-fledged senior developer or architect, remember where you've been.
Listen: I'm not saying that experience doesn't matter. Of course it does. The wisdom of decades in software is immediately apparent in the senior developers I work with, and it's super valuable to me and to the company. But experience comes in all shapes and sizes, and someday I hope that developers like me will be measured by all of it, not just the parts that look good on a resume.
EDIT: As many have brought up in the comments, open-source and side projects should definitely be a part of your resume. It sounds like there are indeed some companies that value this as highly as job experience, which is very cool.