In engineering the quip was always "if you're paying for graduate school you're doing it wrong" ... to even get in the door for most hardware jobs fresh out of school you need a MS. A PhD may be preferred, and will start with a higher salary -- but put in ~5yrs instead of 2. As long as the tuition is covered and you make money as a TA or RA in a low-cost of living area you should come out ahead in the engineering field. Not sure how that translates to software.