Last month, I was lucky enough to be invited to be a coach for Rails Girls Atlanta, and it was a great experience. The event is a way to introduce women to programming—as well as to introduce programming as a career option.
While I was preparing for the workshop, I was practicing my explanations of basic web and MVC concepts, expecting that most of the participants would be completely new to programming for the web. To my surprise, a number of the people I coached had already built functional Rails applications on their own. Instead of the basics, they were interested in more advanced topics like testing and refactoring their code. Since the program was meant to be more of an introduction to Rails, it took me a while to understand why some of the more advanced students would even be at an introductory workshop.
And then it dawned on me. While many of the participants easily had enough experience to apply for an internship or even a full-time job as a software developer, they weren't confident that they were ready for the job. They hadn't gotten to a point where they felt that they could give themselves permission to take the next step in pursuing a career in software, and they were using the Rails Girls event as a stepping stone in that direction.
There are other factors at play with this particular example, but I think that this problem is faced by anyone who wants to move into the software industry but didn't go through a conventional Computer Science degree.
Those of us who did earn that degree got a ceremony and a piece of paper stating that we are now "qualified" to do the job. We spent years listening to professors telling us once we completed the course work, our dues were paid and we'd be allowed to work in the industry. As a culture, we have been conditioned to think that we must complete a structured educational program before we can do our jobs.
Someone switching professions in order to become a software developer doesn't have that permission built in; they have to find ways to convince themselves that they are allowed to apply for jobs. For some, this is releasing their first side project to users. For others, it can be completing an internship with a company. But it won't be the same thing for everyone.
While they don't serve as a full replacement for a formal education, programs like Rails Girls can give those who have a knack for self education a sense of completion. Even for students who taught themselves the basics, it can still be important to be able to point to a program and say "I completed that."
One thing that I think will ring true for everyone is that if they are serious about pursuing a major change, they need to understand what they will need to do to convince themselves they are ready and can leave their current job for something new. They need to figure out what will make them say "Fuck it, I'm awesome, I can do this."