I just had to take another one of those stupid “BrainBench” programming tests for a job I’m applying for. (I’m not planning on leaving the place I’m working now, but as a contractor you always have to be ready to jump ship.) These tests are a complete and utter crock of shit. They don’t test if you can program, all they test is if you’ve memorized every obscure and complicated part of the literally millions of lines of Java API documentation out there. A typical question will show you four snippets of code, and ask you which is the correct one. And they’re not localized down into one part of the API that might be relevant to a particular job, either.
One of the questions was about how to set up a cookie handler on a persistent URLConnection. Another was on how to set the line width in a Graphics2D line. And another was on setting up a pipe between a sender and receiver. You know, if I’d needed to do any of those things in my 12+ years of programming in Java, I might have bothered to memorize that page of the API documentation. But I haven’t, so I haven’t. Instead, I’ve wasted my time learning useless things like how to write code so that when you or somebody else comes to add some functionality a few years from now, they can figure out why you did it the way you did it, and can add their stuff without breaking what you’ve got there. And how to debug an obscure exception that only happens after the program has been running for 45 days. And how to structure a program so that it’s fast, reliable, does what it’s supposed to do and doesn’t crash. You know, frivolous stuff like that.
Evidently I’m not alone in my hatred and disgust for these stupid tests. According to The Register, Ken Thompson, co-inventor of Unix and of the C programming language, isn’t allowed to check code in at Google because he refuses to take their stupid C language test. How stupid do you have to be to insult the man who invented the language by asking him to take some test that was probably written by some 24 year old “language lawyer” straight out of school who has memorized every obscure part of the language without being able to use any of it well?
So I’m guessing that I probably did horribly on that test, and that I’m probably not going to get an interview there, and that’s perfectly fine with me because I don’t want to work with people who were chosen because they’re good at memorizing language documents. They probably write horrible code, but think they’re great because they don’t have to stop and think and look things up.