Script Kids These Days
Jul. 29th, 2008 11:20 pmI just read an article titled The "Anti-Java" Professor and the Jobless Programmers". The article seems to be a pretty typical piece about declining standards in CS education, and I won't address the main thrust of the argument. Rather, I'm interested in the bit where in which Robert Dewar, the professor in question, suggests these interview questions to separate the wheat from the chaff:
1.) You begin to suspect that a problem you are having is due to the compiler generating incorrect code. How would you track this down? How would you prepare a bug report for the compiler vendor? How would you work around the problem?
2.) You begin to suspect that a problem you are having is due to a hardware problem, where the processor is not conforming to its specification. How would you track this down? How would you prepare a bug report for the chip manufacturer, and how would you work around the problem?
"I am afraid I would be met by blank stares from most recent CS graduates, many of whom have never seen assembly or machine language!" he says.
I'm a bit bothered by the fact that I would indeed be stumped by these questions. I might be able to make some suggestions as how I'd begin to learn how to debug such problems, but I've never really worked on such a low level (although it isn't quite true that I've never seen assembly), and I've never been in a situation where I couldn't trust my compiler or CPU (although I am aware of various high-level issues with runtime environments I've worked in, the faulty garbage collector in SBCL, for example).
On the other hand, such issues are rare, in general modern compilers and hardware are well tested. It seems to me that in most of the cases where a programmer would "begin to suspect" such things they'd be suspecting incorrectly.
So, my programmer friends, what do you think? Am I (or "kids these days" in general) underqualified? Is this evidence why I should have pursued a proper CS degree instead of engineering? Or is Dewar just shaking his proverbial cane and shouting "get off my lawn!"?
1.) You begin to suspect that a problem you are having is due to the compiler generating incorrect code. How would you track this down? How would you prepare a bug report for the compiler vendor? How would you work around the problem?
2.) You begin to suspect that a problem you are having is due to a hardware problem, where the processor is not conforming to its specification. How would you track this down? How would you prepare a bug report for the chip manufacturer, and how would you work around the problem?
"I am afraid I would be met by blank stares from most recent CS graduates, many of whom have never seen assembly or machine language!" he says.
I'm a bit bothered by the fact that I would indeed be stumped by these questions. I might be able to make some suggestions as how I'd begin to learn how to debug such problems, but I've never really worked on such a low level (although it isn't quite true that I've never seen assembly), and I've never been in a situation where I couldn't trust my compiler or CPU (although I am aware of various high-level issues with runtime environments I've worked in, the faulty garbage collector in SBCL, for example).
On the other hand, such issues are rare, in general modern compilers and hardware are well tested. It seems to me that in most of the cases where a programmer would "begin to suspect" such things they'd be suspecting incorrectly.
So, my programmer friends, what do you think? Am I (or "kids these days" in general) underqualified? Is this evidence why I should have pursued a proper CS degree instead of engineering? Or is Dewar just shaking his proverbial cane and shouting "get off my lawn!"?