<p>“So from what I can understand a lot of programmers/engineers take their skills to non tech industries and non-tech firms. For example a lot of CS people will work in finance, writing trading software, working on network security or doing financial modeling etc.”</p>
<p>I don’t really think those are necessary “non-tech”, especially for CS (or math) graduates. It’s just a different quantitative (and computational) area of application. Trading software, network security of financial modelling are not “non-tech”. Software and networks are tech, modelling is maths.</p>
<p>“My question is, is working in non-tech industries/non-tech firms generally desirable or undesirable for engineers and programmers?”</p>
<p>No, if it interests you.</p>
<p>“I’ve been reading that a lot of non-tech companies are hiring CS people now. But are these jobs really desirable? Because you’ll be more of a “support” person as opposed to a programmer at Google who works directly on the products that the company sells.”</p>
<p>No. The reason why companies hire CS grads is that almost everything “not directly spoken” or not applied physically that they operate on uses computers and software. All their information and information management is run on computers. And if there’s any quantitative information that runs in software (i.e. has to be programmed, modified or analyzed). CS grads know computer software plus quantitative analysis.</p>
<p>There’s nothing wrong with “support”, because I think you’ll learn soon that the real world is not a single-player game. I.e. whatever “support” there’s, it’s really teamwork and division of labor, not “support” (as in e.g. IT support). And not many IT jobs that advertise as “programming” are really 100% programming, more like 30% or less, the other portion is non-programming related tasks (meeting with clients, team meetings, testing, debugging, reading, writing papers…). This is even truer in engineering jobs, where most practical work may be done by technicians and engineers are the “paperwork machines” that simply verify the appropriateness of what’s implemented (which may be designed by a totally different engineer), work on parts that they don’t know what they’ll be used for, fill forms, answer questions about feasibility or “physically correct way to do it” etc.</p>
<p>There’s only limited amount of “cool jobs”, and more of those that do all the rest that is required to do/support those “cool projects”, get over it.</p>
<p>“Another question is, do most engineers/CS people who work in non-tech industries choose to do so, or are they simply stuck in those positions because jobs in tech firms are more competitive and not growing as much?”</p>
<p>Most people would probably pick a job that they are motivated in. Financial analysis can be mathematically interesting. Algorithm development for financial uses can be interesting. Some people may be motivated by other benefits. For most people work is a way to get food on the table and a roof on top of one’s head (if you aren’t a farmer or a construction worker).</p>