Testing IT Professionals On Job Interviews?
An anonymous reader writes "After having my university degrees, a couple of IT certifications, and over ten years of work experience in the industry, with 2-4 years of verifiable employment with each employer, working with a wide range of technologies, is it reasonable to ask me to take some test on a job interview? The same companies don't ask other professionals (lawyer, accountant, sales, HR, etc.) to submit to any kind of in-house tests when they are hired. Why are IT professionals treated differently and in such a paternalistic way? More importantly, why do IT professionals accept being treated less favorably than members of other professions? Should IT professionals start to refuse to be treated as not real professionals?"
I won't take them.
I have turned down several jobs over it.
Because it is far easier to get "university degrees, a couple of IT certifications, and over ten years of work experience in the industry, with 2-4 years of verifiable employment with each employer, working with a wide range of technologies" without a shred of competence in our field than in most others.
because you (the employer in this case) never know.
a person can work in various places, have diplomas... and still be unbelievably stupid.
i'd argue that other professions should gain some tests (i know a lot of them actually do, though those tests usually involve more generic skillset, like being able to work in a stressful conditions or under external noise, ability to quickly analyse particular information of the field etc).
Rich
A simple answer is that IT knowledge is a more quantitatively measurable than many other professions. Another factor is the high percentage of self-learned IT professionals. You don't see any "self-learned" lawyers, but self-learned IT pros are commonplace. Lawyers have been tested previously (bar exam) while the IT pro may never have passed any formal testing.
SIG: TAKE OFF EVERY 'CAPTAIN'!!
When I've been holding interviews, I always make up a set of tests just to make sure what they put on their CV is accurate.
The number of times I've had someone put on their CV they can do something we are after, but in reality they know Sh*t about it, has only really come out when they do the test. It also helps to pick up those who are good at taking exams but don't know how to handle themselves in the real world.
Unlike the other professions, IT doesn't have a legal backing. i.e. lawyers and accountants have qualifications that are backed by some law or another so if they write bullshit on their CV then it can come back on them. Not with IT unfortunately.
Java gaming nut - http://www.retep.org/ or for the rail http://uktra.in/
Because unlike Accountants, Lawyers, etc we actually have to work for a living...
If we're bad then stuff just doesn't get done. If an accountant is bad they still get $100k a year.
Doctors still have to prove themselves multiple times just to be able to get into the interview. Years and training and testing.
I like to think of us more like Doctors than professional bureaucrats.
thus the whole question is futile.
Skill assessment is done in almost all kinds of professional employment situations . yet it depends mostly on the hiring policy of the department of that particular firm if there will be an assessment.
And quite franky, I think there is a good reason why this is done with IT jobs more often: analytic and associative thinking and problem solving are not skills you can learn.
Plus, IT jobbers tend to be more annoyed by moron colleagues than non-IT employees.
And lets not forget that there is a huge amount of moronness out there - I myself did Job interviews with certified whatevers, who applied for a sysadmin position and couldn't tell me what information a notation like "192.168.38.1/24" provides. And thats just the very basic for such a job, but it already weeded out two thirds of the applicants, *completely unrelated* to their educational history or other certified qualifications.
And last but not least, it always depends on the quality of the respective management if such an evaluation is done: and speaking for me and my experience, a company should do it in *all* sorts of positions, no matter how professional, experienced and well educated an applicant is.
You are a technician, not a professional.
The "professional" bs is just a way to put you on salary rather than an hourly wage.
While "professional" sounds nice, there are only a few real professions.
A nice law passed a few years back reclassified several technical fields as professional, allowing employers to really screw their employees by changing their pay to salary from hourly.
I was recently involved in a series of gruelling and unfair interviews in which we destroyed the confidence of a series of IT professionals with extraordinary difficult questions. Having spent 10 years as an accountant, and 10 years as an IT Manager, I found myself asking the same thing. In order to qualify as an accountant, I had to take 17 exams over the period of 6 years, with each exam having a 30-50% pass rate. During the first 2 years, I could barely make a living wage. To become an IT Manager - I was just in the right place at the right time. I since gained OCP and MCSE, but nobody takes them seriously - in relative terms, they were both very easy to pass. It is still a fact that an accounting (and probably legal) qualification counts for more than an IT qualification.
Personally I wouldn't accept a job that /didn't/ test me on my competence because that means they probably didn't test the guy before me on his competence either
Mopping up after some idiot with "university degrees, a couple of IT certifications, and over ten years of work experience in the industry, with 2-4 years of verifiable employment with each employer, working with a wide range of technologies" that's a total clueless retard isn't my idea of fun and rewarding employment.
The reason it's done is a combination of great variability in skill among IT applicants, compared to professions with time-tested accreditation bodies like lawyers and accountants, and skills that are fairly amenable to formal testing, compared to professions like sales and HR, at least with respect to weeding out duds (if someone can't write a simple program in an afternoon, given a language reference, they should not be hired). More generally, I can't imagine why it's unreasonable for an employer to test skill.
Competent IT professionals accept it because it's in fact beneficial to them to be distinguished from their less competent peers. (If the test itself is poor, they complain about that, and don't whine about the indignity of taking a test in general.) Paternalism is forcing someone to do something for their own good. This is not. I can assure of I have no intention of refusing tests of skill when applying for jobs.
Employment history, certifications, and degrees do not ensure competence. Probably most of the people on The Daily WTF passed such basic screening.
I frequently interview programmers, and having them take a short test (approx 30 minutes) and then discussing this with them in their interview is incredibly useful to determine their skillset. I could ask similar questions directly and have them work through the answers on a board, but then they would be under pressure to provide an answer on the spot to questions that probably deserve some thought before providing a solution.
None of the questions on the test are unduly taxing - any person we interview who has a few years professional c++ experience under their belt should be able to provide at least a working solution, with potential better solutions open to discussion face to face.
I've had 15 years doing what I do, and I'd be happy to take a test if asked - if I can't pass whatever hurdle the company sets, then I'd rather not sit there for a few more hours trying to win them over with my sparkling personality, and if the test is a pile of rubbish I know early on that I probably don't want to work there.
In my experience, which ia way more than your 10 years, very few folks in IT actually know how to interview and what traits to look for. Being tech folks and not having people skills, they think that some test will tell them what they need to know about a potential applicant. Not true.
A lot of the tests are language lawyer things (knowing about public static final in Java) which doesn't get to what they really need to know. There are lots of folks who know the language lawyer tricks that will be lousy employees. You need folks that are bright, have a demonstrated track record of being able to learn new things and that will fit with your culture/environment.
Taking a test during a job interview means that they are serious about the situation.
The worst thing isn't tests at job interviews it's the work climate at the site where you are going to be located. Is it micro managed or is it goal managed? And job satisfaction is very important for IT workers.
The question is rather why other types of workers aren't tested as much. Why not test lawyers, accountants and administrators?
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
1. Yep. Let me even give an example. It didn't happen in a team I was in, but I know several people from that team.
So they got a new guy who had some outstanding experience, according to his resume. He had worked on major enterprise projects, been an architect, ate Enterprise Java Beans for breakfast, etc.
Turns out he was utterly incompetent. He spent about a month just getting used to their architecture and IDE and everything, apparently everything they did or the way they did it was new to him, and he needed some time to accomodate. Fair enough. Then started working on something, but never was quite done with it. Eventually they started asking to see some results. He started randomly changing files and checking them back in. The first few times he even had a good excuse, like "oops, I hadn't worked with this particular versioning system before" or "oops, I forgot some other file that mine depends on." There go a few more weeks, before it's obvious that his changes can't possibly even compile, because they have elementary syntax errors.
Eventually they fire him, but by now he's got several months of "experience" there.
Then someone finds his updated resume online. The guy claimed he singlehandedly improved their architecture, increase performance X times, got project management back on track, etc.
2. 'Nother example, my ex-coworker Wally. Spent two years on a trivial module, whose core someone else rewrote from scratch in 6 hours. It took another two weeks or so, mostly of testing, to get it bug-for-bug compatible with his, since a couple of teams already had their own workarounds for them. (Trying to get him to fix it was a bit like negotiating with the terrorists.) The rewrite was also benchmarked as 40 times faster than Wally's on large data sets. Literally. Measured.
The thing everyone remembers fondly about him, is how he asked for 2 weeks just to estimate the effort to fix a trivial bug. He got it too. (His team leader was a bit a Mr Testicle: technically he was involved, but he kept out of it as much as possible;)
He also massively practiced obfuscation. Any of his modules contained half the techniques from How To Write Unmaintainable Java code (literally) and megabytes of files copied from unrelated stuff to pad the number of lines of code per day. Obviously, it worked on his team leader.
Then he got moved through the maintenance of two other programs (one at a time), and just managed to make them both worse.
There we go, that's his provable 2-4 years employment. Well, ok, 5 in his case.
3. Example number 3: Old Father Williams. I got to think of him that way after a particular fortune on my linux box:
Pretty much spent 6 years in a place complaining about everything that everyone else did. Coding style, IDE, OS, _everything_. His first choice of a whine was Windows, which might even have had a point, but when Linux was finally allowed and half the team switched to Linux, plus the servers actually went Linux... he proclaimed Linux to be sell-out crap for idiots, and switched to preaching BSD.
He also caused a reformat-and-commit war in which he was preaching _three_ space tabs, as spaces. And wasn't affraid to check out someone else's project and reformat it, to make his point.
He spent two years, just "modernizing" the build process. Nobody knows what he experimented with on his c
A polar bear is a cartesian bear after a coordinate transform.
Interviewer: OK, so you know C? what is the result of i=0; i=i++; Joe Blow: Uhhhh...I....uuhhhh...it's compiler dependent!!
Is the correct answer!
Without an output statement you'll never know, a compiler could legally optimize the whole lot away!
I speak as a member of "IT" as well, so I'm accusing myself here too, fairly and squarely.
I don't know (nor care) about the non-technical professions, but the standard of professionalism in Computing is a lot lower than in Engineering.
I can say that with confidence after a long career spanning both Electrical/Electronic Engineering and Computer Science, both in academia (PhD, postdoc, lecturer) and in industry. It took me the better part of a decade in the computing industry to realize that I had been (unwittingly) deluding my Software Engineering students when I taught them "Do it like this, or you will be laughed at as amateurs when you get out into industry." The sad fact is that 98% of computing in industry is utterly amateurish, as I eventually discovered for myself. Even huge, "properly" managed projects are in practice just hacks like all the rest, but with better documentation and QA/testing.
While computing is my current love, and bread provider, I recognize that we're at the stage of gazing at chicken entrails in this discipline. It's a bit sad, although I still love it. But when they say "Bridges would fall down every other day if they were built like we build software", they are 100% right. Looking at it from the perspective of my old engineering days, it's a bit distressing, but that's how it is.
We're still in the early days of Computing, and to call it a professional discipline is stretching the definition rather severely.
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
It doesn't matter if it's compiler-dependent or not. The correct answer to that question is: "This code is badly written. It never makes sense to write i = i++. You probably mean i++."
Opinions expressed above are mine, and not my employees'.
Actually, it says something about your company's (lack of) internal QA that that garbage code ever made it to a customer site!
OK, google "fizzbuzz". A large number of people in the industry (especially "qualified" ones, who haven't been selected for skill) have no idea how to work with computers. People plagiarize at university, get friends to sit their exams, and lie on resumes. There is no better indicator than an on-site, in-person coding test. Some tests are better than others (some employers are not too competent themselves), but there is no other way to verify whether a potential hire is remotely competent. It's not the only indicator (other indicators can be used once the candidate has been pegged as potentially useful), but failing to use it is suicide for any business that can't afford to have worse than useless programmers.
You mean like with the bar exam, cpa exam, the useless PMP exam, certified professional engineer, etc.
Other professions are tested, but it is before the job interview.
I went to a job interview in '99 for a contract doing Network Admin for a pretty major bank; I had no certs, no degree at the time, but I had been working off and on with Tek systems for several years and they knew I had extremely extensive experience.
The Bank didn't want to interview me, but the recruiter sort of insisted; they were asking for people qualified in NT, Solaris and OS/2, and I was really about the only person they had available at that time with the right mix.
It was a working lunch interview; They started asking questions, and I started answering. then came the question, "what command would you use to upgrade a NT workstation machine to NT server?"
I replied that you would probably be best off formatting the drive, then installing it, as there was no good way to upgrade; Microsoft said you couldn't do it at all, and the workarounds were more trouble than they were worth.
The interviewers sort of grinned, and told me that of the 20+ people they interviews, all of which had at least a MCSE or a comp sci degree, not a single one of them had answered the question correctly.
At the time I had problems believing it, but as time went on and I got in to situations where I was doing interviews it got more believable; in the late 90's if you worked on computers, it was probably because you were a computer enthusiast and actually more or less enjoyed working with them; after about '98, you started running into people that were just doing it because it paid well; they might be damned smart people, but you lose something when you don't actually enjoy working with computers.
I also saw a lot of people who just were not smart enough, but were somehow able to cheat or memorize well enough to get a degree; when you asked them something that wasn't in anything they had studied, they didn't have the core of hands-on knowledge that would enable them to make an educated guess at the answer.
So, yeah, I have to agree, interview everybody no matter what their credentials are.
Why, yes, I AM a Pagan Libertarian.
In 2001 I worked as a supervisor in a callcenter(by now bankrupt and bought out) that specialized in tech-support for consumer software and hardware. At one point our recruiter asked me to test an applicant she didn't have a good feeling about. The applicant had numerous impressive looking certifications on her resume and quite a confident demeanor about her abilities. She claimed to be specialized in Microsoft operating systems. Note that this was your typical callcenter full of pc enthusiasts, many of whom had no formal education in IT whatsoever.
Long story short, at the time we also did support for a company that distributed a number of very popular pc games, so I gave the applicant a game consisting of 3 cd-roms and asked her to install it on a typical win98 workstation. After watching her struggle for about 10 minutes, while completely ignoring the big autorun window with the huge "Install game" button on it, we decided perhaps hiring her would not be such a good idea after all...
People replying to my sig annoy me. That's why I change it all the time.
How 'bout we start employing people based on what they claim, not what they can do? Sounds good to me.
No sig today...
That, and a code example. You send us a code example after the phone interview, and before the in person interview. Basically, we're looking to see that you "don't do anything blatantly jack-ass". Also helps when you comment your code.
Then, as part of the interview process, we have a few questions we ask you to write essays for. One is based on design of a product we already built, one is based on design of a product we're currently building, and third... Is actually a riddle. My project manager came up with this idea, his thinking is "Let's see what kind of inductive/deductive reasoning this guy will use". Sounds like a good idea.
Turns out? All this crap is worthless. Case in point... We have a guy fresh out of college (no experience in the trenches) who we interview, and later get hired. His code is quite beautiful at a glance (not breaking down every line to profile it or anything), plenty of comments, nice style, etc. His essays are OK, they're passable.
But, he sits down, and we've got -multitude- problems. Let's start with one example: We're web developers, and in the first couple weeks, he needed to modify UI. In this case, he needed to use a few images for something. What kind of images did he put into our repo for versioning? BITMAPS! No, no, not a proper raster file-types like a PNG or a JPG, a bitmap -- BMP. Just cause Professor Dinglethorpe requires you to comment and indent your code properly doesn't mean you have a clue what really happens when you get down to production.
But, the real problem? COMMUNICATION! The kid just can't freakin' communicate with us. If he were bad AND would take the time to talk to us about what he's working on, we could stand it. We'd know what was happening when he did jacked up stuff in the code, and we later have to maintain his mess.
However, he doesn't take time to communicate with anyone. He's too busy leaving important meetings to take phone calls from his ultra insecure live-in girlfriend who calls him 18 times a day (for such important things as "Should we make lentil soup tonight?" and "What are we going to name this cat?"), reading I can has cheezburger and the failblog. Meanwhile, he slips under the radar. Our company plays to your competency level. So while I have taken on huge projects, become a stand-in for our system administrator, and the liason between customer service and information services (a pretty important role, they buy the important bugs -first-) -- this kid is getting assigned tasks like "We need to put hyphens between these words per the marketing dept". Good thing we get paid the same. Nice to get paid the same as the guy who's mastered reading I can has cheezburger. He can has cheeseburger, and I'll be the one to shove it up his... nose.
So, don't believe a technical test is going to determine if the next guy you work with is legitimate, and competent. If he can't communicate, and he has no work ethic -- frankly, you're screwed.
Lawyers, accountants and physicians are generally required to take a two-day or longer test before being licensed. Admittance into the tests usually depends on a thorough background investigation, including fingerprinting before the candidate is given an "entrance ticket." In addition, there are usually proctors, selected from current members of the profession, to make sure no one is cheating on the test. If IT professionals had passed state and/or national tests this rigorous, their credentials would probably be accepted also. As for salespeople, their exam consists of just one question, "Would you sell your grandmother to get a contract?" Negative answers get you thrown out into the street.
Why not get the compiler to do the work for you:
$ gcc -o test -Wall -W -ansi -pedantic test.c
test.c: In function `main':
test.c:5: warning: operation on `i' may be undefined
$
Lo and behold. It's undefined behaviour.
$
i = 0
$
And look. I don't get the same results as you. (Probably depends on the precise version of gcc and also maybe the optimizations selected.)
Tim.
God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
FizzBuzz is great; we use it on every single interview for a programming position, regardless of experience. I've seen people come in with 10+ years of programming experience, and completely screw it up.
More importantly than just showing whether or not somebody can code, it shows whether or not they can handle simple tasks under pressure. I'm sure most of those applicants could have completed it at home when they're not being watched, but if they can't do it in an interview, then how are they going to perform on-site at a client, when a major bug just popped during a production push?
Money I owe, money-iy-ay
1996, and I'm being interviewed by Chrysler (over the phone, no less, as I was 2000 km away) for a position as a web application designer.
The interview is going well, and then the interviewer starts asking a rapid fire sequence of obscure programming trivia questions - things like the arguments to certain system functions, that sort of thing.
After about the third or fourth punt (these questions were really obscure), I started to get a little angry, and I told the interviewer that if that particular question ever came up in my code, that it wasn't necessary for me to have the answer memorized. Man pages and paper manuals exist for a reason (this was before the all-knowing Google) and if I really needed to know the answer, I would look it up. In fact, even if I was reasonably confident of the answer, I'd STILL look it up because the time spent looking up the answer and ensuring it was right was very much less than the time spent guessing, getting it wrong, and debugging the error.
"Real work" I said "is an open-book test".
The next thing she said was "When can you start?"
I don't need to have an answer immediately at hand to every question. What I need is to know how to FIND the answer to a question as quickly as possible given the resources at hand.
If you want to test me during an interview, I'll look at the test. If it is related to problem solving or general concepts (ie, explain the differences between a "foreach", "while", and "do until" loop) - OK, I'm game. But if it is trivia, I won't play, and I'll explain why. If you insist... I will seek employment elsewhere, because I'm not interested in working for someone who insists on procedure for procedure's sake.
DG
Want to learn about race cars? Read my Book
HAI
CAN HAS STDIO?
I HAS A NADA ITZ 0
I HAS A VAR
IM IN YR LOOP
UP VAR!!1
I HAS A ANZER ITZ ""
BOTH SAEM MOD OF VAR AN 3 AN NADA, O RLY?
YA RLY ANZER "Fizz"
OIC
BOTH SAEM MOD OF VAR AN 5 AN NADA, O RLY?
YA RLY SMOOSH ANZER AN "Buzz" MKAY
OIC
BOTH SAEM ANZER AN "", O RLY?
YA RLY
VISIBLE VAR
NO WAI
VISIBLE ANZER
OIC
VISIBLE ":)" BTW DAS A NEWLINE
IZ VAR BIGGER THAN 100? KTHXBYE
BTW IMMA SO GUNNA GET HIRED!
IM OUTTA YR LOOP
KTHXBYE