10

Background

I am a working software engineer who is in the midst of seeking out a new contract for the next year or so. In my search, I am enduring several absurd technical interviews as indicated by this popular question I asked earlier today.

Even if the questions I was being asked weren't almost always absurd, I would be tired nonetheless of answering them many times over for various contract opportunities.

So this got me thinking that having a standardized exam that working software professionals could take would provide a common scorecard that could be referenced by interviewers in lieu of absurd technical interview questions (i.e. nerd hazing).

Question

Is there a standardized software engineering aptitude test (SEAT??) available for working professionals to take?

If there isn't a such an exam out there, what questions or topics should be covered?

An additional thought

Please keep in mind, if suggesting a question or topic, to focus on questions or topics that would be relevant to contemporary development practices and realistic needs in the workforce as that would be the point of a standard aptitude test. In other words, no clown traversal questions.

Matt Cashatt
  • 3,325

4 Answers4

7

Have a look at Codility.

It's an on-line programming test that supports a number of different languages. The questions are well defined, and not overly complex although they do require some thought, as well as good (defensive) programming techniques - not only do you have to write a correct working solution but they will test for things like edge conditions and integer overflow.

I have no idea how well regarded the self certification is, but two recent job applications have used that site as part of the selection process.

Peregrine
  • 1,246
3

Aptitude tests are meant to measure someone's innate facility for a given subject, not how much you already know about a subject. I don't think that's what you're looking for. Instead, you seem to want a standard way to demonstrate what you know so that you don't have to endure the technical questions at an interview (or can at least avoid the silly ones).

Good news: There are a lot of ways that you can demonstrate what you know. Tools at your disposal include:

  • résumé: A well-written résumé can go a long way toward answer questions about what you've done in the past and, by extension, what you now know. Don't just list where you've worked, say what you've done.

  • projects: Bring something that you've created with you and offer a quick demo. Show your code and be willing to explain it. This lets you show your technical ability on your own turf. (If it's something that others have also contributed to, be very clear about what you did vs. what other people have done. If you can, it's best to show something that's entirely your own.)

  • writing: If you've written any papers, a blog, or a book or magazine article, try to introduce that before your interview so that the interviewers have a chance to read it.

  • degree or certification: These are about as close to a standard exam as you're likely to get.

In short, your goal is to provide as much evidence as possible that you have the knowledge that the interviewer is looking for.

Bad news: No matter what, you're probably always going to face a contrived technical question or two when you interview for a job. Even if you really wow 'em with your experience and can demonstrate that you're exactly the guy they're looking for, they'll still ask a few questions about data structures or whatever. There's no down side for the company -- the person they're looking for should be able to answer those questions in his sleep, and there are apparently a lot of people who can't. Also, some organizations have strict hiring procedures that require them to ask the same questions of every candidate; interviewers aren't free to decide that you know your stuff and they can just skip the technical questions.

Caleb
  • 39,298
2

Arguably, that's the role of certifications and degrees. If you want a standardized test of someone's familiarity with a particular programming language, you could look for people that have a particular language certification. If you want a standardized test of general computer science knowledge, look for someone that has a computer science degree.

The problem, of course, is that we all know that these sorts of credentials are far from perfect. It is too easy for people to cram for a certification exam once the exam topics are finalized without actually learning anything or being able to apply the knowledge. A rather large fraction of solid developers aren't going to bother going through the certification process. And trying to be certified on everything an employer is looking for (languages, development processes and methodologies, etc.) would be quite onerous. Computer science degrees are also fallible-- there are people that complete their degree without ever managing to learn how to write useful code and there are people that learn how to write great code while majoring in something else.

Given that the standardized approaches have demonstrated themselves to be insufficient in the real world, it's exceptionally unlikely that a standardized exam would fare any better. It would almost certainly end up getting gamed just like existing certification exams. People would cram for the exam or get access to the questions from "brain dumps". Existing developers wouldn't all run out to take the exam. And employers wouldn't be willing to rely heavily on the exam results. So they're still going to want to ask technical questions in an interview.

Beyond that, though, a good technical interview (obviously, there are bad interviewers and bad questions just like there are bad developers) should also be about assessing how a candidate's approach will mesh with the current team. A good interview ought to assess a candidate's communication skills and their soft skills just as much as it assesses their technical skills. I'm much more interested in a candidate that asks good questions to clarify the requirements and that explains their thought process well even if they don't immediately come up with the best algorithm over someone that comes up with a great algorithm but can't explain their answer effectively or discuss trade-offs effectively.

Justin Cave
  • 12,811
0

The Language-Free Programmer/Analyst Aptitude Test provides an objective measure of a job candidate's potential to understand and apply reasoning, logic, computer math, and procedural rules. The LPAT does not test the candidate in a specific computer language. See http://www.aprtestingservices.com/business/lpat/

Joel W.
  • 101