My advice: learn programming but stay the course. I'm passionate about technology, I love the work, and I love what we can do with our abilities, even if not what most engineers actually do. I'm 30 years old and now at the point where quality projects are the norm rather than the exception. But it is a hard road, and if you can stomach finance's long hours and get the credibility that way, it might be easier.

Look at the people tapped for important roles in serious startups, and those who get funded. At least in New York, most come from finance. Tech has as much prestige-whoring as finance (see: Clinkle, which is Stanford Welfare at its worst). The difference is that tech denies it. There's a lot of passive-aggressive cattiness in the hot startups and credibility really matters, despite what people say. The claimed meritocracy is code for "don't question my decisions" (whereas bankers will, at least, admit that they screen on pedigree because there are just so many applicants and it is impossible to evaluate them on deeper criteria). Finance, if you can get in, is a great way to get that credibility. Remember that the people who actually matter in Silicon Valley are the VCs, most of whom did the IBD -> B-school route. It shouldn't be this way, but people who got into VC from technology are extremely rare-- they're only let in after winning the startup lottery, in which case their VC jobs are victory laps to give them something to do, rather than jobs they actually need.

Also, the bubble world that the VCs have created will have dissipated by the time you are in position to take advantage of it. There will still be a lot of work in true technology; there's perennial demand for smart, passionate people who can work hard. Real technology isn't "cool" but it is always real. But the VC darlings-- the hypersocial anal vibrator app companies whose pimple-faced executives get profiled on TechCrunch and Valleywag-- and the "scene" surrounding them will probably be well into decline by mid-2015.

In short, I think you might have "grass is greener" syndrome.

That said, investment banking hours (for IBD analysts) are truly horrible, so I sympathize. Having hyper-networking douchebag co-workers ("those who synergize") is not enviable either. There are plenty of sane, 10-7 financial jobs where you'll have decent co-workers, even in the front office, but the IBD track is not going to lead that way, and those are not the prestigious or high-paying routes.

There's somewhat of a silver lining, which is why the hours in IBD are so bad: the structure of the workflow during the day. People delegate out the door, and everything has a tight deadline, so analysts are getting their work (due next morning) around 4-6pm. Analysts are shift-workers who have to show up 7 hours early, but there is a lot of down time during that period that people spend avoiding additional work so they are ready to play from 4pm to 2am. If you have the energy, you can learn programming in that down time. This does mean that you're actually working 2 jobs as opposed to working one but the hours of 2 (like most analysts). Of course, anything you plan on actually using must be on your own time and resources; but most of your projects in the first year or two you are just for learning.

You should learn programming. Like they say about trading, if you get the opportunity when you're young, you should take it because (a) you'll learn a lot, (b) you might be really good, and (c) if you are good, it's a lot of fun and (sometimes) handsomely rewarded.

Still, I'm not sure that giving up the insta-credibility that comes with banking pedigree is worth it. The software industry has no safety net at all (and don't get some macho delusion; that's not a good thing). Software companies fire good engineers for political reasons that would never fly in banking or law (rule 1: don't fuck with a lawyer, not even a 26-year-old junior) with zero severance and often not even a good reference. Why do startups get away with that nonsense? Because a lot of software engineers are pussies who won't fight for themselves. When banks lay people off, they announce that they are cutting personnel and that protects the reputation of those let go, and they offer severance. When tech companies have layoffs, they usually pretend it's a "low performer initiative" and humiliate people with PIPs (which means there will be no severance, and usually not the guaranteed good reference either) instead of just admitting that business is rough. Again, they get away with that because most engineers are pussies who don't fight for themselves.

Good software engineers (top 3-5%) are treated well after a while, but you have to get high-quality work to get good and it takes years. Average software engineers get no respect, mediocre pay, and no investment by management in their career advancement or opportunities to get better. Getting high-quality work in software is a crapshoot-- for every one working on compiler architecture or machine learning or R&D, there are 10 in this industry working on line-of-business apps with minimal autonomy. You have to fight for yourself to get good projects and when you're young, usually this means changing jobs a lot (but after you've had 7 jobs in 6 years, getting back into finance is extremely challenging, because banks don't like "job hoppers").

What might be a good option for you, if you can get it, is a position in venture capital, given your interests in finance and technology. Unfortunately, most Sand Hill Road VCs are dickheads so getting a VC job out of college, even if you're brilliant, is impossible unless you're coming from Stanford. But you might be able to learn the ropes in less of a brand-name firm, or outside of SV, and then get an MBA. People rip on MBAs here, and that's mostly because we get stuck with the bad ones in startupland. Good MBAs (who are actually intelligent) end up working on billion-dollar deals or at statistical arbitrage desks, while the VP/HR who tries to institute stack ranking in a 77-person startup was at the taint-bottom of his class and is almost certainly a complete failure at life who cries while he masturbates (but, sadly, still has power over you if you are an employee of that 77-person startup).

I don't want to turn you off from technology. Becoming adept at it is an investment that, over time, pays off handsomely. And the work can be extremely rewarding. And it's one of the few domains in which one can make use of very high (140+ IQ) intelligence. But the road to get credibility is hard as hell and (to be blunt) you probably won't get good projects in Silicon Valley given that you come from a public school-- except possibly Berkeley, but even that's a stretch. (If you can find a job locally, or in a talent-hungry emerging tech hub like Austin, Portland or Baltimore, your odds are much better.) Keep learning and investing into your technical knowledge.

Okay, that's a huge brain dump, and not even 1/10th of what I could say on this, but I sincerely hope this helps. Technology is a good field, but I want to make it clear that, for most people, the grass isn't greener than it will be if you can get a good job in finance. If you're going to do tech, you better be laser-focused on becoming extremely good at it, and you'll probably face managerial headwinds to your career advancement and learning in your first 5 years because even though the best tech companies are probably the best overall companies, most tech companies are crap. Banking is the safer route that confers credibility even if you are average in success level, which most people are.