That may be true in Silicon Valley, but I got news for you there are tons of programming jobs outside of Silicon Valley or even the west coast. In the DC area, defense contractors are the highest paid folks due to the enormous expenses in both money and time involved with getting someone a clearance.
- "Defense contractors are infamous for treating employees somewhat lousily"
Where do you get this information? I worked as a government contractor for 15 years and never saw programmers get laid off. Sure the big contracting companies (Lockheed, Boeing, Raytheon, etc.) have layoffs occasionally when there is a downturn in government funding, but they aren't typically laying off the folks that are their technical bread and butter, but rather folks who are pure overhead (HR, accounting, marketing, etc).
- "In fact, I would seriously bat an eye at someone who, with offer letters from both, chose to take a job at a defense contractor rather than Apple."
This seems to be a rather biased statement. Given the choice to work on software for controlling a satellite, software for data mining social network data to discover members of terror networks, software used for analyzing IED fragments, etc. versus software for sharing vacation pictures, dealing with spreadsheets, playing MP3s, etc. I will take the former most of the time because it is a much more interesting problem space. I also very much enjoy the satisfaction of knowing that my work may have helped save the lives of many people by preventing terrorist attacks.
- "The main thing the defense contractor job has going for it is the working hours are likely to be standard 9-5 with little or no overtime (as that gets billed to a government contract, so you're generally not allowed to work overtime without special approval). At high-profile places like Apple, unpaid overtime is generally expected to some degree."
This is also only partially true. If you are just a low level programmer, sure you work your 8 hours that are billed to the government and then go home. As soon as you are mid-level and above, that is no longer the case. All time spent doing reviews, interviews, internal software for the company, proposal support, etc. is above and beyond your 8 hours billed to the government. None of that time can be billed to the government and you are expected to bill 40 hours per week to contract so the rest of that work gets done above the 40 hours you bill.
No one is going to come down to a choice of defense contractor vs. Apple. They aren't even located in the same place: defense contractors have no presence in Silicon Valley that I've ever heard of. So you can't even make a choice between the two without considering a cross-country move (military stuff tends to be concentrated on the east coast), though there's a bunch in Phoenix too.
A better comparison would be defense contractor vs. working at some small generic commercial company. They can be located near each other, both are likely to have lousy pay for engineers/programmers, and neither is going to look that great on a resume (actually, depending on what you work on, the defense contractor will probably look better).
In any case, if you think that some small generic commercial company would be a better comparison, then pretend I said that. My point has nothing to do with Apple, it was just a convenient example.
- Apple pays a lot better
- Having Apple on your resume is far more prestigious (in fact, it's probably one of the most prestigious names to have on there, and I say that as someone who does not like Apple too much and generally sneers at Apple fans)
- Defense contractors are infamous for treating employees somewhat lousily (see: furloughs)
In fact, I would seriously bat an eye at someone who, with offer letters from both, chose to take a job at a defense contractor rather than Apple.
The main thing the defense contractor job has going for it is the working hours are likely to be standard 9-5 with little or no overtime (as that gets billed to a government contract, so you're generally not allowed to work overtime without special approval). At high-profile places like Apple, unpaid overtime is generally expected to some degree.