Tomorrow’s Software Guys

The Journal of Defense Software Engineering published this article raising more alarms (as if that were needed) about the state of computer science education in the US. Money quote:

It is all about programming! Over the last few years we have noticed worrisome trends in CS education. The following represents a summary of those trends:

  1. Mathematics requirements in CS programs are shrinking.
  2. The development of programming skills in several languages is giving way to cookbook approaches using large libraries and special-purpose packages.
  3. The resulting set of skills is insufficient for today’s software industry (in particular for safety and security purposes) and, unfortunately, matches well what the outsourcing industry can offer. We are training easily replaceable professionals.

When I’m interviewing a candidate for a programming job, one of the first things I do is ask them to explain the C language statement

char *p;

What does it do?  How is the result used?   etc.

If you can’t work the phrase, “it’s an address” into your explanation, you won’t be able to handle embedded systems work.  You might be just fine for a job in financial IT, but there’s just no way you’ll be able to debug something like a stack corruption, memory leak or wild pointer. And the root cause of this weakness is too much Java, and not enough C.