Since I started writing software not because of any love for it, but to solve various problems I was having at the time, it's always sort of shocked me that some people manage to get so far into their careers without realizing what they're being paid for.
I quite enjoy it now, but rarely in the revel of pure creation. Usually it's from the satisfaction of a problem solved in a reasonable amount of time under well considered constraints.
A small example: you have some internal database, and now different teams want to have some data analysis done.
The fun thing to do would be to write a generic reporting front end, and easy enough to use so that non-technical people can use to create their own report.
And the pragmatic solution that is to instead spew out all relevant data as CSV with a BOM, so that Excel can easily read it. Turns out a generic data analysis tool exists, and it's unlikely you can beat Excel at its job.
Producing some CSV files from a DB is orders of magnitude less work than creating your own analysis front end, so in nearly all cases, this is the solution you're paid to do.
I believe you. But that's also because you started this path in life a long time ago. If you're 40+, you've never done freelance/contract work and you need to start finding customers or new employment in a hurry then it's going to be a hungry winter.
experience = programming if you can show a active github profile with clean code that shows you are pro-active or a expert in stack or domain, why would "they" not atleast contact you back.
on the other side, if you have just been coding closed source, brain farts and clones that have no innovation or any overlapping area in what you are applying for, then why would they hire you.
if your looking to get hired by a Oracle or a HP, freelance experience wont cut and i doubt a github profile either, but besides huge corporate companies. most small/medium sized startups are willing to hire programmers that can learn and supply added value.
value is the keyword here, having more then 1 trick in your bag is a must if your coming at it from the "no diploma" angle. Thats why i recommended people to write code for readabilities sake. if nothing else, someone can read it. even if its some crusty 10 year old code.
Because you're older, or a minority, or female...
What I'm suggesting is being the first to present a believeable plan to solve someone else's problem. You're right, finding them and figuring out what they need isn't easy. But once you do, you have a huge advantage over all the other "unemployable" programmers.
The problem is "value" comes through a subjective lens. Different employers value a given work product differently. The OP's big-co employer is likely to value process and documentation.
In this start-up environment, speed is also relevant. Make lots of value quickly.
edw519's 90 pitch works largely because he presents himself in a manner for his customer to clearly see the value he would create. He spelled it out.
Its less about talking about yourself and more about talking about them.
The key thing the OP needs to do (and should have been doing) is networking (outside of work). As others have pointed out, with that much experience, you also should have a network of folks to reach out to.
It can take a long time to build a network. Fortunately, there are tons of opportunities in tech to do so. I'd imagine one of the best paths might be to fine a moderately significant trending (but not trendy) open source project and start getting involved in the community (in whatever way the community needs (maybe not coding initially)).
Learn the code base inside and out. Read the forums, discuss things with people. Create value! Find something needed and do it!
You'll meet people (virtually) along the way. Build a public reputation (very important), and maybe find a job. At least you'll be able to reference your relevant skill in said open source project. You'll then be an older developer, but with very relevant job skills to someone out there.
[1]: http://www.cracked.com/blog/6-harsh-truths-that-will-make-yo...
When writing resumes and doing interview prep, I always try to put myself in the other person's shoes. Would I hire me? Would I be offering what is wanted?
Some people are perfectly capable of doing the work, and are passed up for completely irrational reasons. Empathy, try it, please.
It's not about you. It's about your user and what they accomplish with the tools you build for them.
It doesn't matter who you are, what you know, what education you have, where you've worked before, what turns you on, or what you think is cool. It only matters what you can do for others.
It's really that fucking simple.
So forget about all the window dressing and find a way to demonstrate to others what you can do for them. The first step is to find out what they really need.
Like many others here, I am self taught, pretty decent, and love what I do. But the thing that has always separated me from other just as capable but "umemployable" programmers has been my absolute resolve to program for others, not myself.
I even remember one interview when I didn't present a resume, but instead a one-page project plan itemizing exactly what I would build over the next 90 days to help them solve their problem. I got the job instantly. (An extreme example, but you get the idea.)
I have never lacked work. And I'm confident I never will with this attitude. Try it, please.