Why Programmers Can’t Program

WEST0241 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.

Related Post

13 Responses to “Why Programmers Can’t Program”

  • I definitely believe it is purely a matter of the college you attend. There is no way I could have graduated from my college with CS degree without being able to write real world apps. In fact many of my classes required us to write pretty extensive apps to meet specific requirements as part of our coursework.

  • I just wanted to post a comment near Joe, because I need to pretty the page up after his gravatar gets posted. Hehehe…

    I am kidding. I know Joe.

    Anyhow, you just highlighted part of my thought process when interviewing people. I could care less if my applicant has every certification in the world and 5 degrees that all relate to the programming or IT position I am hiring for. Since being in IT, I have met many of the people you describe in your post, and they all had degrees and certifications. Yet, I had to (LITERALLY) teach one of them how to use the Windows menu. Seriously!

    To help me in the interview process, I now use search engines to prepare for the interviews. I am looking for their website, their portfolio, their participation in online communities, and more. This will help me determine their reputation in terms of the abilities that they’ve listed in their resume.

    I hope this helps. :)

  • Dave:

    Joe,

    Yeah, I had to do a 5 week project with other programmers. So, it isn’t ALL of the colleges. Just way too many of them.

    Will,

    Last time someone asked for my resume, I just sent them here. I figure what I’ve written tells them way more than any resume would. But then, I haven’t actively been looking for work in years. It all comes to me.

    • @Dave: That’s an excellent point! I’ve gotten more work and networking done as a result of my blog than any other efforts combined. We were just talking about that after our last UG meeting. It’s part of building your brand. Good/great programmers know this and work on this to stand out from the crowd.

  • mackhodgson142:

    thats your beauty will, and the page is still pretty, thats why i am not posting my pic.
    lolz.
    hotelomania

  • I kind of wonder if a certain number of accepted open source software changes shouldn’t be a requirement of graduation.

  • This is disheartening. I am a student at a university studying programming. I have taken a couple of introductory classes, in which we are learning Java, JavaScript, HMTL and CSS. I am pleased to say that I could answer those questions about polymorphism and inheritance. They have been taught to us and emphasized quite a bit. I hope you are happy to hear that there are a few colleges that are actually teaching students how to program correctly! I would be interested to know, from a professionals stand point, what would you look for in a college grad in CS?

  • Dave:

    I’d want for you to prove to me that you can actually program. It’s great to know the text book answers. It’s great you are being taught somewhat current technology. But, can you put it all together when you are given a real world problem to solve?

    Best business advice I ever heard was to hire everyone on a consultant basis first and fire within 30 days if it turns out you made a mistake.

  • I can agree with that completely. I’ve come to understand first-hand that you can’t learn to program by reading about programming – you have to do it. My wife was telling me about Malcolm Gladwell’s book Outliers, that talks about the 10,000 hour rule – those people who are truly successful at what they do have put in 10,000 hours of work (examples include Bill Gates and Steve Jobs) in their chosen field. I think this is very true for programming.

    Thanks for your feedback – I’ll take it to heart and try to go the extra effort of solving real world problems instead of writing small pieces of code. I’ll be the guy the company will hire after 30 days. Thank you for your timely response. I’d appreciate any resources you can send me to to learn real world problems, or people I can network with for future employment in programming.

  • That is pretty sad. I hope our medical schools aren’t like that. Why doctors can’t operate… Sounds like bad news. Anyway, interesting piece and I had no idea the programming schools were like that!

    • Dave:

      Medical schools are. The difference is, you have to get a Doctorate (that’s why they are called doctors) and you have to go through an internship before you can start practicing. If some of that rigor were applied to programming, we’d have less programmers, but what we had would know what the heck they were doing.

  • Pat:

    I think programming and computer science are similar to most other college degrees; students know what they learned in their particular classes, but most likely by the time they graduate, there are new methods, risks, threats, best practices, etc. Ongoing training is essential, as is real-world experience.

  • I agree, students today surely know syntax, they don’t know the architecture of the application.

    Being a trainer myself and freelance programmer I can tell from my experience that colleges teach only syntax and not teach how to program for a real world solution.

Leave a Reply

Comment Policy:

  • You must verify your comment by responding to the automated email that is sent to your email address. Unverified comments will never show.Leave a good comment that adds to the conversation and I'll leave your link in.
  • Leave me pure spam and I'll delete it.
  • Leave a general comment and I'll remove the link but keep the comment.

Notify me of followup comments via e-mail

Bear