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,315
  • 5
  • 24
  • 35
  • Good question, but sadly there appears to be no way to avoid the incompetent technical interview. The worst are those conducted by recruiters with no programming background. I've had some that were shockingly bad. I gave what I believed to be an adequate answer to some questions to be told it was completely wrong because it didn't match the canned definition they'd gotten from somewhere. – Antonio2011a Apr 15 '12 at 21:59

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,236
  • 1
  • 7
  • 9
  • 2
    Neat site! The questions are actually quite challenging. I only ended up half-solving it and a few extreme tests failed performance tests even though they never went out and said my code would be tested for performance. – maple_shaft Apr 13 '12 at 11:29
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
  • 38,959
  • 8
  • 94
  • 152
  • Caleb--I appreciate your comment and I have all of the bullets you mentioned. Further, the kind of questions mentioned at the link you provided, or common data structure problems as a sidebar to a larger interview, are fine. What I am personally a little sick of is running around like a headless chicken to several different "tech screenings" to be asked questions that aren't relevant to the job. And again, I am only after a contract job so there are many of iterations of this "tech screening" process. I simply believe that a standardized test can avoid that. – Matt Cashatt Apr 13 '12 at 15:12
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,691
  • 3
  • 44
  • 53
  • Thanks Justin Cave, your points were well taken--especially the last paragraph with which I wholly agree. The thing is, in those "tech" interviews that were a bad experience for me, it seems that the interviewer always fell into the category of not having those soft skills that you mention and it was often hard to understand the words they were saying (let alone what they were asking). – Matt Cashatt Apr 13 '12 at 15:22
  • I consider myself to exceed at those soft skills you mention plus I am a solid programmer and have proved that over the years so it seems unfortunate to me that these gate keepers stand between me and my next contract. I would think a standardized approach would offset this problem. – Matt Cashatt Apr 13 '12 at 15:22
  • @MatthewPatrickCashatt - But at the same time, wouldn't you want to know that you're going to have problems communicating with the team during the interview before you start the job? If you can't understand what they're asking, even if the fault is completely theirs, you're not going to be successful working with them. – Justin Cave Apr 13 '12 at 15:29
  • I think that we are talking about two different contexts (my fault). You see, I am dealing with several recruiting agencies that stand between me and, say, getting a 6month contract at Amazon or Microsoft. I have no choice but to go through these agencies, but I won't be working with the people employed by them. So, invariably, I encounter a screener employed by the agency who has a stack of C#, Java, C++, or algorithm books on their desk, we go to a conference room, and they proceed to ask me questions that make it evident they haven't been in the workforce for a while. – Matt Cashatt Apr 13 '12 at 15:43
  • @MatthewPatrickCashatt - Well, there are undoubtedly poor interviewers out there. But if they're incompetent, it's unlikely that they would use the results of a good standardized test even if it existed for the same reasons that they don't simply require a degree and appropriate certifications today. – Justin Cave Apr 13 '12 at 15:54
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