I don't have a formal education or degree in development, but I have experience. I seem to be having trouble getting past the interviews because of my lack of formal knowledge, though.
I've had a dozen phone interviews and several onsite interviews. The process seems to go similarly each time and yet I'm unable to pinpoint what I need to change.
I seem to do quite well at the personality and fit part of the interview. I genuinely like working on a team and solving technical problems. I'm a quick study but also I love to learn. All my personal projects revolve around me learning something new. I have a positive attitude. Don't have negative things to say about my work history (honestly don't. I've never been laid off and I've loved everywhere I worked and people loved me too). Work great with others. Enjoy the interaction with clients, gathering requirements, meeting needs, etc.
The challenges seems to be the technical parts of the interview.
I will often be asked questions about specific design patterns or things like "SOLID" was a recent one. I knew it was a design-related acronym but I wasn't able to say any more than that.
I've also had a question question in an interview yesterday where I was asked to compress a string like so: "aaabbcdd" -> "a3b2cd2" (I think that example covers the jist of it). I can't express how trivial this type of problem is for me. But in the interview setting my brain was simply frozen. I threw out a loop to traverse the string and put in some logic and eventually got it working but they were pointing out logical errors/mistakes along the way.
We went through some small C# methods that were passing objects, ints, and strings around by value and reference. These things are usually trivial for me in practice, but being on the spot I got one or two wrong but was able to explain myself and talk through to the right answer. But I felt like an amateur there.
I feel like these employers don't understand that it's not really important if you go in "knowing" exactly what they're asking. These things get learned on the job. It seems like such an employer's market that they can interview candidates until they find some guy, maybe not even as good of a programmer or as quick of a learner as I am, but who just happens to have the luck of knowing off hand the particular things they happened to ask.
Maybe I'm not nailing the personality like I think I am.
It's starting to feel impossible (for me) to land a job in this market and I don't even know where to begin fixing whatever needs to be fixed. But whatever it is if I had/get the slightest whiff of it I'll be motivated to work hard to fix it. I'm just searching to find out what.
I only wish I could have communicated better how good I am at solving technical problems and how competent of a programmer I am. But for all I know that's not even my problem.