<p>A better middle ground would probably be an applied math + cs minor. My school’s math department actually offered a “Math-CS” undergrad degree that was basically equivalent to that. At the time, I never considered majoring in it – because quite a few Math CS majors were people who couldn’t get into the CS department, we tended to look down on it a little. Now, however, I sometimes think Math-CS would have been a better choice for me given my career path.</p>
<p>As for job security, great software engineers are valuable so few companies willingly let them go. A good software engineer can easily be more productive than 2 mediocre software engineers. Have you read in the news about the secret agreements between Google and Apple not to poach each other’s engineers? Those companies aren’t cycling through graduates, and it’s not a coincidence that they also happen to be 2 of the most successful tech companies in the world.</p>
<p>At my current company, because of the amount of time and training required to develop a level of expertise in our field (wireless communications & mobile computing), the company prefers to get engineers relatively early in their careers and keep them for a long time. I have heard, however, that it’s harder for more senior engineers to get hired here for the very same reason.</p>