Jeff Atwood of Coding Horror writes:
“I find it difficult to believe, but the reports keep pouring in via Twitter and email: **many candidates who show up for programming job interviews can’t program. At all.**”
Jeff, you must not have visited a college campus recently. The reason most that most “programmers” can’t program is because their instructors led them to believe they could program.
I have two stories that illustrate the point.
I do work for a local community college. The college hired one of their students to work on an ASP.NET project because he was recommended by the professor and because he got all A’s in his programming classes. The professor told the manager, “this is one of the best students I’ve ever had.”
Maybe he was the best if you evaluate by his grades, but he sure couldn’t program. And even if he were to read this, or one of his buddies were to read this and show it to him, I think he’d agree. He eventually quit and went back to doing what he used to do before he learned how to be a programmer.
To the school’s credit, they did actually teach current languages. But that’s where the education stopped. They taught various programming languages like most of us learned math. Here’s the formula. Here’s an exercise that uses the formula. Nothing in the classes require the student to solve a real-life problem, or even to solve any of the interview problems.
At the school my daughter goes to, I found the situation even worse. They have a computer science program but as I was talking to a recent graduate I found out there was no way I’d hire this kid. I found out because the kid knew he’d been cheated and was freely telling me about it. So just to find out how bad things were I asked a few questions.
Turns out, he’d been educated in Java, but he couldn’t tell me what polymorphism was, or when I asked it as, “what is inheritance and how would you use it practically?” he couldn’t tell me.
He’d never seen JSP, HTML, or JavaScript either. What school teaches Java and doesn’t teach those subjects with it?
One of the commenters suggests that we need government-regulated tests (like that would work any better than any other government-regulated test?) to help weed out those who can’t program. While I’m sure there are some great examples of teachers who can program, can teach programming, and care about the quality of programmers they are graduating, I’d suggest changing the education system to weed out the professors who can’t teach, can’t program, and don’t care. Maybe the certification tests need to go higher than the students we end up interviewing.