Background/humblebrag: my brother was an officer in Soviet Strategic Missile Forces, a branch of the VVS (no, he didn't ride ICBMs like Dr. Strangelove, he programmed Forth instead). My father was in the Soviet equivalent of ROTC and was commissioned as reserve tank officer, my grandfather fought as a captain in the artillery unit during World War II -- from the very early battle all the way until the storm of Berlin -- and retired as a colonel afterwards. In short, while my family had been on the wrong side of the iron curtain, I think I'm qualified to give some advice -- from many stories my family has told -- as fundamentally, military forces are military forces.

There are many good reasons to join the military, but yours isn't one of them. To be sure, it may be beneficial for you, but exactly for the reasons you don't expect: there will most likely be no adventure for you, there will be a great deal of incredible boredom, and forced discipline.

The question is, how well do you learn/change your behaviour in a strict, highly structured, and top-down (but pretty much close to meritocratic) environment? Have you enjoyed working traditional (non-technical) jobs? How do you respond to bullying (while infamously and atypically pervasive in Soviet Union, it is something nearly all military forces have to a certain extent -- it is (wrongly, IMHO) justified as a way of maintaining "esprit de corps")? I personally would collapse in that kind of an environment -- and the big reason my family moved to the US is because they knew I wouldn't survive compulsory military service (even if I entered as an officer via the ROTC equivalent as a university student -- which was from time to time cancelled then reinstated).

Other people strive and advance: again, military is the closest thing we have to a meritocracy (look at the percentage of top military brass that come from ethnic minorities; compare that to the percentage of top business executive from traditionally disadvantage groups), you'll interact with a cross-cut of your country's population you'd otherwise never see, you'll probably see the world, you'll develop genuine relationships. If you manage to enter the right branch, you'll also possibly build technical skills you can use elsewhere. My brother who entered via the Mozhaev Military Institute -- Russian equivalent of Westpoint/Air Force Academy -- was able to advance his technical skills tremendously (both as a student and during his service). Needless to say, the description my grandfather has given of liberating French resistance prisoners from a concentration camp was one of the most powerful stories told.

This has a great deal to do with your personality: if you're a quiet and independent introvert, I'm slightly skeptical that the military will be a good place for you (but you'll be hardly the only one -- again, it represents a wide cross cut of society and can be an advantage for certain roles). If you're sociable, see obedience and patriotism as virtues (as opposed to morally neutral qualities -- useful only when they serve a greater cause like justice, kindness, liberty, or benevolence) you'll like it; if you've read Heinlein and were surprised when others found him objectionable, you'll enjoy it as well.

However, since you enjoy programming it likely means you've an aptitude for it: rather than start the endless search for "the right occupation/vocation", learn how to apply your skills in the right way.

Here's my advise: learn to overcome being distracted and bored easily while sitting, if you're boredom with the kind of programming you do now, explore different branches. By writing software you can help others an immense amount, especially those in the military. There's still time for you to join the military, especially if you're fine with joining, e.g., cost guard, air national guard, reserve, etc...

Save money, if your state lacks a good commuinity college system (which is probably true for any state other than New York or California) and you don't have the money to attend a state university, move to a state that does. In terms of California, sublease a bedroom in Cupertino, San Jose, or Santa Clara (you can't afford SF), work full-time until you've established residency (you might not be able to get a job as a programmer, but you should be able to find a position in IT, NOC, or tech support -- which can be a stepping stone to software engineering or production-facing operations), then start attending De Anza or Foothill College (you can even do this while working full time, but it's difficult -- however, part time work is actually easier to find in entry-level technical positions); afterwards transfer to a four year university (any will do -- Berkeley/UCLA/UCSD are best, but Davis, Santa Cruz, Riverside, Irvine, Cal Poly, Santa Clara, etc... still send many graduates to top-tier software companies). If you're still interested in the military, do ROTC. Study a technical major as it's much easier to, e.g., go to law school or medical school with a CS degree than it is to be a programmer with a psychology degree (though it is not impossible either).

For what it's worth, the cold truth is that United States is moving towards a society rigidly stratified by education and occupation -- if you're not doing knowledge work, you can at best hope to live paycheck to paycheck. It may not be just or fair, but I don't see any other scenario playing out in the long term. Whatever steps you take, you will have to choose between a decent middle class lifestyle and starting at a computer screen all day (even if you're not programming) OR doing something else and just getting by. If you spend time in the military, unless you plan to make the military your career (becoming a career officer) or perhaps entering the foreign service -- all of which require a college education anyway -- you will only delay that choice. A smart move could be to enter a military vocation that helps you along (e.g., becoming a network engineer in the military, then using G.I. bill and an IT job to pay for college/grad school).

Good luck, but make this choice based on reality of the military rather than some romantic view -- otherwise, you may quickly discover that Navy stands for "never again volunteer yourself".