I can understand your desire for a "peer review" really well, I've been (or am) in a much similar situation.
I have taught myself programming C++ and did some (rather small) projects in my free time. I was lucky to find a job in a nearby accounting firm where the former developer left them with a LOB application that was a total mess. I had never written a single line of "real business" code before and was only 16. But I managed to learn about their business problem and .net, Eventually I ended up rewriting the application as there was no way it could ever satisfy their requirements.
Of course I'm asking myself today why the hell they'd trusted me on this project, which really is a critical asset for the part of the company I'm working for.
Saying this, I can imagine it can be really tough to find a job with no experience and no formal education in computer science. I started as kind of a "student job/stand-in",so that's probably your best bet. On the other hand, your experience in a sales role can be a real bonus if you find a job that requires this domain knowledge (e.g. writing a CRM system).
This were my two cents on the job question. Another aspect I want to point out is that I think it's really important you try to constantly improve your skills (no matter how experienced you are).
When I started my first job, I was working alone for almost 2 and a half year. The biggest issue for me was that I had no chance to get some feedback or peer review in the form of "is it good what I'm doing here, will I run into issues with xyz?".
I consider getting involved on stackoverflow has been the biggest boost to my "career" that could have possibly happened. There's simply too much I would have to mention trying to explain how stackoverflow contributed to my personal development. So here are, mixed with some general comments, the most important things I've learned in my "self-taught career" thus far:
- Asking concise and concrete questions in written form benefits your ability to express problems. I can't overemphasize how important it is to learn how to express problems precisely, especially for a programmer.
- Getting involved in a programmer community will make up for missing experience up to a certain extent
- Writing real "business" code is much different from playing with programming exercises. While exercises are usually easy to grasp on the problem domain and it's your goal to master the solution domain, you'll experience the opposite when writing business code. Be flexible.
- Try to learn something new every day. Even if you can't directly see how a new technology, language or programming concept might benefit you where you are now, it will definitely prove beneficial in the future in one way or another
- Learn about the trends that drive the market and accepted best-practices: SOLID design, TDD, DDD, LINQ...
- Learn about development methodologies (Agile, Lean/Kanban, avoid Waterfall)
- Make contact with your local .NET user group, visit conferences and talk to other developers. Might also help you find a job
- If possible, try to get hired on an experienced developer team. Working with someone else on a project is whole different story then doing something alone. Since 4 month my company has decided I should introduce a second developer to the project. I consider this an essential experience for me.