<p>Embedded is as much a hodge-podge as anything else. I’ve done embedded communications and entertainment gadgets for 15 years and can remember anything from homemade OS’s and pitiful hardware 15 years ago to embedded Linux on quad cores today, with other OS’s thrown in for good measure (QNX, Windows CE, embedded Windows…). </p>
<p>Last 3 years and going forward it’s all Linux, thankfully.</p>
<p>discoinferno, I too am not a CS major but a minor (going to grad school for physics next year). And a small part of what motivated my switch to physics is that I can still do programming in physics but it doesn’t change all of the time. It’s been FORTRAN/C/C++/Python/Mathematica/MATLAB for the longest time, people aren’t constantly changing dominant languages and IDE or versioning software chain doesn’t matter. Since computation speed and accuracy are important and people use non-MS OSes a lot (especially OSX these days), .NET isn’t even on the radar.</p>
<p>Long story short, the type of software engineering done in physics research is very friendly to old-school style, pre-.NET, pre-MS-for-everything programmers.</p>
<p>And once I get my PhD if I decide to go the industry route, there are sectors like energy and aerospace where they like C/C++ programmers who are good at math, understand pointers and recursion, and know physics. So even if I’m not a dot-com millionaire I’ll still be happy.</p>
<p>Nope. This prize goes to technical and enterprise architects. They are convinced that they (and they alone) are the greatest architect ever born, and every other architect is wrong/dumb/incompetent.</p>
<p>From what I’ve seen, the “ageism” seems to be quite different than what you might think. Employers have virtually eliminated jobs that require 0-5 years of experience, and are demanding 5-10 years of experience for even jobs that are entry level in the software industry. </p>
<p>Of course, taken literally, this basically means, “young people need not apply”. </p>
<p>If you’re competent, keeping a job until you die shouldn’t really be a problem. The bigger problem is young domestic grads are not generally being hired into software, or engineering roles. Looking at most of the big employers of software people out there, they’ve been doing most of their hiring from overseas (India) on various work visas, while systemically discarding the applications of young domestic grads. </p>
<p>Sweet spot these days for a domestic programmer seems to be between the ages of 36 and 50. Under the age of 36, and basically, you graduated CS after the dot-com bubble had imploded (and thus, probably weren’t able to find a job). Over the age of 50, and, yeah, there’s some ageism there as well. Basically the travesty here is that all these immigrants have been hired in preference to qualified domestic grads, simply to save a few bucks.</p>
<p>The key thing to stay employed as you get older is to maintain your value (value = contribution normalized by salary) to the company. In my case, what I think has kept me employed for nearly 30 years is my domain expertise. </p>
<p>What I observe is that CS folks who make an effort accumulate domain/industry expertise generally don’t have to worry much about job security. CS is more about problem solving than programming. Staying current with tools and such is the easy part. </p>
<p>On a lighter note,</p>
<p>
Real programmers are the ones who use Emacs, tinker with elisp more than the actual code to be written and whine about people like Guido von Rossum and Linus Torvalds. :p</p>