I'm 25 as well. I share a bit of my own experience, in the hopes that you may find lessons (both positive and negative) from it. I don't pretend that anyone should consciously follow the path I took, but it did work out pretty well for me.

I graduated college with a degree in electrical engineering not really knowing anything about what I wanted to do for a living or where I wanted to be in five or ten years. So I sort of drifted into a master's program, again in the same field, hoping to figure out what I was doing before I was forced to confront the job market or academia proper.

I didn't realize until the second half of my first year at that graduate program that I enjoyed the CS courses I was taking as electives far more than the normal engineering courses. So I ended up taking my second year and throwing all my effort into taking as many CS classes (which were cross-listed departmentally) as I could: operating systems, databases, compilers, etc. I made some stupid mistakes choosing some classes that turned out to be neither interesting nor relevant, and skipping on classes that would have been extremely useful or informative.

When I graduated, I took a position at a startup in the area, doing work that fell between the interface of EE and CS. I realized that I wasn't too fond of the work or the company (for various reasons), and so I spent months teaching myself the practical and theoretical stuff I had missed out at school, whether out of inexperience, disinterest, or sheer decision-making ineptitude. Some of this stuff was useful for my position at the time, other topics were completely exploratory in nature. And when I was ready, I started sending out my resume and interviewing for positions. I did get a new job, and I'm a software engineer at a well-regarded mid-size tech company in Silicon Valley right now.

Some thoughts regarding your position:

- CS is one of the fields with the lowest barrier to self-teaching. You don't need expensive lab equipment or fieldwork - just software, much of which is freely available, an ordinary computer, and enough motivation to actually utilize both.

- You don't need a 4 year degree. In the US a lot of schools won't even allow you to enter their bachelors programs if you already have one. A BS would be a waste of your time.

- The MS degree isn't a prerequisite. Build something substantial, and people will take notice. If you don't have anything you can show them, the degree can sometimes be useful. I'm not proud of this and it's actually really shitty, but the name of the school on your resume may sometimes make the difference between people taking a look at it and throwing it out (at least from my experience).

- If you do go back for formal schooling know what classes you should take, in order to acquire knowledge you need to have. You mention data structures and algorithms in a comment earlier; there are classes which focus on those; there are also classes that focus on discrete math, statistics, and other foundational topics. You should build an OS and a compiler while you're there. I always thought this was a thought-provoking read: http://matt.might.net/articles/what-cs-majors-should-know/

- A lot of MS programs are coursework programs; they've been charitably described as financially lucrative to their host institutions. Mine almost certainly would have qualified (both the EE and CS programs). This is not necessarily poison, but it does mean that if you attend, you should make the most out of the classes you take.

- If you are interested in working at certain companies, see if you can get someone to give you an internal referral once you're ready to begin the job application and interview process. A lot of companies (again, this is a controversial topic) seem to give more weight to internal referrals than unsolicited submissions. Contact with most of the companies I was looking at started either when a recruiter reached out, or when I asked someone I knew to put in a word. If you feel that people are loath to consider you due to your late start/lack of formal credentials this may be a way to offset that.

Finally, the fact that you are considering this move because of passion, interest, and demonstrated competence bodes really well for you. Best of luck!