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.
ten years in the industry and you have to ask?
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.
Accountants and Lawyers have professional bodies (or whatever it is called) that tests candidates wanting to call themselves "accountant" and "lawyer", so do doctors, nurses, engineers, etc, so employers don't need to test the candidates themselves when they want to hire one. if people call themselves "lawyer" or "accountant" without the proper certification, they could be jailed.
Which is the corresponding organization that tested and certified you as an "IT professional"? Can your employer file complaints to that organization and have your certification removed if you displayed incompetence or is negligent in your job? And would anyone risk jail time if they call themselves "IT Professional" without any such certification?
Don't kid yourself, an IT worker is hardly any more "professional" than a secretary or a salesman. Anyone sitting in front of a monitor for the past 10 years can call himself an "IT Professional" with 10 years of experience. Heck, someone who had NOT been sitting in front of a monitor for the past 10 years can also do so! Until we have a widely recognized professional body to certify us (and to de-certify or penalize us if we display incompetence), it is the employers' responsibility to assess our capability and testing us is one way to do it.
I am sure many working in the field would prefer their employers had properly tested themselves and their co-workers, rather than having to fix up problems caused by other less-than-competent "IT Professionals".
Oliver.
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.
There are two obvious reasons why people get tested in IT
1) People might have passed exams, but can they actually code
2) People might have been on a project where technology X was used, but did they use it?
The first is the case where you have a graduate with a degree in computing and it turns out they did all the "soft" options. So lots of theory but not practice and they don't even know what a compiler is.
The second is the case where you are looking for people with a given skill (say Java) and you want to check that they have that skill.
Its not true to say that other people don't have to sit tests, its just that a lot of the time those tests aren't written tests but are more open, indeed I prefer to test people using such open assignments. Set them a problem (design a system to do X) and then have them respond. This is exactly the same way that lawyers are often tested by their new chambers, they have to defend (or prosecute) a given perspective to show how they would perform and lay out their approach of constructing the case.
The point is that for most jobs they are "soft" jobs where a specific exam makes no sense once you have the qualification and therefore you do soft interview tests. In IT however we have lots of "hard" jobs where a specific skill is required and a specific level of performance is required. This isn't about professional v unprofessional its about the nature of an industry where there are millions of different technologies arriving every year and where the average ability level has been plunging for the last 20 years.
So get off your high horse and stop complaining. You are in an industry that changes, that means that the degree you did gives you a theoretical basis (hopefully) but your practical skills will need to be evolved. I did Ada, LISP, 68k and Prolog at University. Guess what? My first job meant I had to learn C in 1 week to prove I knew it and my 3rd job was the last one where I used any of those languages (I'm now on my 7th job). So did I mind being tested to prove I knew C/Java/XML/MQSeries/etc? No I didn't.
Do I test people to prove they really have the skills they say? You bet, I wouldn't trust an IT CV statement further than I'd trust Dick Cheney at a bird shoot.
All interviews test in any areas where its worth having a job. IT interviews test more because IT changes more and your qualifications become out of date more quickly.
Now for the real question though: Why isn't there a written test for high office, especially a geography test for US Presidents and VPs.
An Eye for an Eye will make the whole world blind - Gandhi
Here are some of the reasons you might be tested and another person might not be:
1. A business school graduate is part of a comparatively unchanging field, one in which a past performance record is likely to be repeated in a new job.
2. A lawyer is normally a member of a professional guild (the local bar association), and law is also a relatively unchanging field.
3. Technical/computer work is in rapid flux, today's marketable skills are not yesterday's or tomorrow's, also because of its esoteric nature it's likely that no one in the business will be able to interview you in any meaningful way. A test relieves the personnel department of any direct evaluation responsibilities.
But ... The more IT professionals there are in a particular business, the less likely that you will be treated like an alien insect. Do you suppose Google makes you submit to a boilerplate written exam? They do scout for talent using interesting published questions, but that is a different strategy with a different purpose.
A CV can be read in many ways. I think that testing is a good way to see that the skills, CV and open position match. That being said, testing can be done in many ways.
Someone recommended me to Google once, and the Google HR department obviously read my CV looking for the skills they were after. While I had them to a degree, that was only part of the truth. A later phone interview with one of their engineers clarified the situation a lot: He tested my skill set with a bunch of oral test questions that made it obvious to both that my skills were of the right sort but at the wrong layer of abstraction. (Scripting vs. assembly-level knowledge.) That test saved both parties a lot of time.
But like I said, there is good testing and bad testing. Often tests test passive knowledge, but not problem solving skills. Unfortunately the hardest to quantify stuff is also the most essential in terms of actual productivity.
.: Max Romantschuk
This type of test is fairly commonplace in certain engineering fields, and should be. Specific technical knowledge, trivial to test for, are much more important and much simpler to test for in engineers and technicians than they are in professional workers. If you can easily and efficiently test the skill level and prior training given a technical worker, for whom training is often quite area-specific and expensive, why on earth wouldn't you? This isn't paternalism, and is not a show of disrespect. I, for one, will neither stop giving nor refuse to take this sort of interview. The suggestion that we should seems ludicrous to me.
On a related note, just exactly what did you think a traditional business interview is designed to do? They are little more than a version of the skills tests that you're complaining about, but designed to measure the aptitude of managers and the like. They are more open-ended in nature, but not because those job candidates are somehow worthy of more respect. The questions are more subjective because the topics at hand are far more difficult to objectively measure than technical knowledge. Furthermore, you must also consider those organizations (especially within the government) that subject teachers, managers, lawyers, policy experts, etc. to standardized testing of some sort prior to hiring them.
If you are the sort of person who is won't put up with a simple test, which seems to me to be quite a reasonable request (where you seem to think it is all "how dare you question my magnificence), you certainly aren't the sort of person I want to employ. I don't want someone who is not willing to pitch in with whatever is needed.
In this case, I think the test has provided a useful function.
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.
Sadly, a lot of the "IT Professionals" I encounter are plain idiots. Even in-depth interviews can't guarantee that you have someone capable in front of you, but it does filter out those idiots.
I work for a small (5 ppl) IT-only company and when we hire someone, while he will get some basic training, he is supposed to work pretty independantly. But once in such a position you can pretend doing a lot while doing almost nothing, and still make things appear to 'work'. You'd be amazed what an incompetent guy can pretend to be and produce results that on the first glance seem to be OK. And then when his software goes into production you suddenly notice that he didn't use an XML parser, but expected certain data on certain lines and filtered it out using regular expressions - and NO, not using the standard regular expression library - but doing something like this in C:
sprintf(cmdbuf, "/usr/bash /bin/sed -e \"s/%s//\" > /tmp/filename", inputbuffer); ...
system(cmdbuf);
fp = fopen("/tmp/filename", "r");
You get the picture. He btw didn't even write a function to do this, but copy-pasted stuff like this a few 100 times... Software worked in test, client changed 1 insignificant thing in their XML generation (added a tag we didn't use), and our entire system went down. I ended up rewriting this guy's stuff after he was fired.
And that's the main problem with IT jobs, you only notice they're incompetent when things start to go wrong. And then it's too late. So if I have to interview someone for an IT position, I want to be as sure as possible we don't end up in such a situation again. Masking incompetence in an IT position is just too easy.
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'.
I don't know about you, but I would RATHER be tested during an interview. It would increase the chance that I would wind up working with competent co-workers.
Michael Chermside
http://mcherm.com/
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.
...bullied from an early age in elementary and high school, that it seems normal in adult life. We even rationalize it and justify it.
Why else acquiesce to being treated differently under wage and hour laws, being segregated from the rest of the companies - often in a separate building with a substandard environment.
Being socially ostracized, over-worked, underpaid is just what we have come to expect.
If you're an incompetent engineer, attorney, accountant, or physician -- or someone who misrepresents his abilities in one of these occupations -- then you tend to get found out rather quickly (if for no other reason than that colleagues stop covering for you). In IT, on the other hand, people who aren't quite up to the task can persist or be tolerated at companies for decades. And employers are getting sort of sick of it. So they're asking IT 'professionals' to put up or shut up.
'He who has to break a thing to find out what it is, has left the path of wisdom.' -- Gandalf to Saruman
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.
Thank you, NEXT!
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.
If they are verbal. I love an interview that asks me "what would you do in this situation" or "how you you best describe x" or "give me the most efficient design to achieve y". Such situations test a persons' instincts. To test someone's ability to code in an interview is ridiculous beyond measure - the same person who would fail the test, would otherwise innovate the hell out of anyone else in practice.
How 'bout we start employing people based on what they claim, not what they can do? Sounds good to me.
No sig today...
IT field is so wide and diverse with many people coming to it's ranks without any "true" background. I have a degree in Textiles. I manage and maintain a wide assortment of applications, servers, databases, email systems etc. I actually laughed at a lady on the phone a long time ago during an interview, who said that they were only looking for MCSE's. When I laughed she seemed so surprised and asked me why?
I told her "You do understand that you can get one of those in 2 weeks offline right now right?". People have become so dependent on "certifications" that they don't actually test those individuals skills. I don't limit it to IT either. The same thing applies to MBA's. I wound up being involved in a round table interview (2+ applicants at the same time) and everyone but me had a certification. When asked what the difference between mirroring and clustering in databases was one of the answers was (I joke you not) something oracle can only do.
Additionally, I find that now, most companies don't truly involve their IT groups in the hiring process. They ask for "specs" for a job and then try to match them up. This doesn't work in reality. It might with a secretary, or blockbuster video clerk... but not in IT.
IT skills are quantifiable. There's no "bullshit" answer. There are several different levels of gray but if you ask a programmer what Model View Controller or what a framework is... there's no bs answer that isn't wrong.
When I create questions for a prospective employee I'm not trying to ramrod them. I ask only questions that I believe they should know 100%. For example, a ColdFusion programmer position is about to be placed here are some of the questions I plan to ask. I don't necessarily believe they need to know how to do all of them, but they MUST know what they are.
This position will be updating a slew of applications written in ColdFusion 5 and fixing about 30 databases that were converted from Access to MSSQL and 99% of the fields are NVARCHAR.
1) What is SQL injection and what built in features of coldfusion protect applications from it? .cfm and a .cfc? ...
2) Write an inner join query?
3) Whats the difference between a
4) What is an SVN repository?
5) What is the datatype NVARCHAR used for?
6)
You get the idea. However, my reasoning for asking these questions isn't just for the answers!
1) How well did they answer the questions? Enunciation, quickness to respond, accuracy in describing solutions
2) What is their personality like when pressured?
3) When they don't know an answer how do they respond. This is a big one for me. I expect you to say that you don't know. Bonus points for you writing it down and emailing me the answer later. This lets me know you didn't forget, and that you are trying to improve yourself.
A lot of times I'll throw in a question I KNOW they shouldn't know just to trip them up. I want to see how people react under pressure. We have 125 employees all depending on these applications for our business functions. If something screws up I need them to be quick, calm and attentive to the problem. Imagine this on a much larger scale, like 10,000, or 100,000. Businesses need to depend on these employees.
So, tests are necessary and frankly I'd like to see them in more positions.
*After* earning their actual degree, Lawyers have to pass the gruelling bar exam. Doctors have to do the medical board exams and a guelling internship. Engineers have to get their certifications.
IT graduates, just have to carry their piece of paper home. Sure you can get your Microsoft and other vendor-sponsored certifications, but these are generally jokes-marketing tools. At the very best they qualify you for some specific experience with some specific products, and don't thoroughly test your general IT skills. I've seen Cisco certified engineers leave me with bottlenecks due to looping routes, and generally trashed my network. I've seen MSCE's that are totally useless.
It always strikes me odd, that an engineer building anything has to build to standards, which are externally verified and permits obtained through inspections, etc.. Software engineers and IT staff can implement mission-critical systems without any standards or oversight. I know the software/computer hardware world makes things so incredibly flexible that it'd be hard to defines standards to regulate against; that's likely the problem. (If I want a bridge, everyone can pretty much agree upon what is wanted, a copy of something that has been done before, and approved, standardized. Not so much for a new application. For IT infrustructures, a case could be made for more standardization, I guess.)
But this flexibility it also results in some pretty horrible work being done out there.
Also, the standards in other fields allow for greater accountability. If an engineer, Doctor, lawyer, is incompetent and not providing the standard of care their industry demands, you can sue them for such. (I'm likely to sue my former lawyer for incompetence and ignorance of the law and my case.) But try suing a software engineer or IT person. There's just no clear standards of competence with which to judge him or her.
Having tests to weed through some bad ones, makes sense, and I see why it comes about. It's not perfect, but it tries to address a shortcoming in our field.
Love many, trust a few, do harm to none.
"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?"
Others have already pointed out that lawyers and accountants (CPAs at least) submit to testing and are certified by professional organizations. You can't market yourself as a lawyer, CPA, or even an engineer in some places without having the backing of a professional guild.
What I'd like to know is why, in the face of offshoring and job losses, the IT industry hasn't coelesced around a professional society or guild. A professional guild, with some rigid certification testing, would be more effective than even unionizing since it produces a win-win for both employees and employers. Is it just that the need isn't perceived to be there yet?
With professional certification, employers would know they are getting skills without expensive testing and competent IT professionals can be assured that they won't be working with "IT Professionals" whose sole IT experience is that they took one Visual Basic course.
There are lots of vendor specific certs (MS, Novell, Oracle, IBM) but to me, that's more akin testing accountants for having skill in using QuickBooks.
The Open Group has IT Architect certification (http://www.opengroup.org/itac/) which looks to be a start, but it doesn't appear to have gained much momentum. IBM offers cross-certification of its internally certified architects but even within IBM, not all departments bother to pay the fee for TOG certification.
I also see that there's an Institute for Certification of Computer Professionals (http://www.iccp.org/iccpnew/index.html) that's been around since 1973, and a lot of people on its web page have important looking letters next to their names (CCP, CDMP) but outside of this web page, I've never run across an IT person with this on their business card nor a company that insists on this certification.
So I ask the exact opposite question that the poster asks, "Why don't we insist on recognized industry certification testing for IT professionals?"
JoAnn
I think the fundamental justification for a test is that many people in IT (programmers especially) are more artists/craftspeople than professionals. Sure, thinking is a large part of the job, but mental product isn't the sole output (as it is in law, HR, and other professions you mention that don't get tested). Just as you would expect to see work from a carpenter, plumber, or film maker before you hired them, an employer can very reasonably ask you to demonstrate your skills. Just because someone has degrees, certifications, and experience doesn't necessarily mean they have elegance, finesse, or artistry when it comes to writing code or debugging systems. A lot of what the industry values in its employees can't be taught, but it can certainly be tested. Giving a potential hire a code sample with a subtle bug you can judge their process in ways you can't with mere questions. Similarly, asking an interviewee to answer questions on the spot allows them to demonstrate how they code in an ad-hoc environment. This is especially useful for identifying people who don't have enough experience to develop independently.
Also, many professions, such as the law, have certifying authorities (such as the bar) where practitioners must pass a minimum standard in order to join the profession (and can be kicked out of). Because IT has no such standards body, and because so many people in IT are self taught or taught on the job, it's very difficult to know how much someone knows. There is no 'cannon' of IT training, no standard practice, nor even much agreement over what constitutes an adequate body of knowledge. The fact that people with no formal training regularly conceive and develop systems far superior to those with certifications, training and experience continues to speak to this fact.
Lawyers, accountants, etc ARE professionals, they are regulated by professional organizations and have to prove their qualifications in order to be licensed to practice. IT workers have no such regulation. In effect the State tests your lawyer for you.
I agree the tests for programmers are almost universally stupid and worthless, but if it makes some PHB someplace happy, who cares?
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
Script started on Mon Sep 15 07:59:50 2008
./test
bash-3.2$ cat test.c
#include <stdio.h>
int main(void) {
int i = 0;
i = i++;
printf("i = %d\n\n", i);
return 0;
}
bash-3.2$ gcc test.c -o test
bash-3.2$
i = 1
bash-3.2$ exit
exit
Script done on Mon Sep 15 08:00:04 2008
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.
I would much rather take my PC to a IT guy who cheated, then be represented by the lawyer/Accountant, etc that cheated.
Why? Law and Accounting are probably the two professions where you most want a cheater on your side.
If libertarians are so opposed to effective government, why don't they all move to Somalia?
They don't have to take the test, but then I don't have to hire them.
However, I agree with some posters that you have to give the right test in the right way. I always talk to the interviewee first, describe the job, etc. Then towards the middle of the interview, I give the test, which is usually only about 6 or 7 questions long. I don't send the person off into a corner to write it; instead, I interact with the interviewee to see how he/she would approach the problems.
We do this with everyone (salespeople too), not just IT staff. In my opinion, if you don't give some kind of skills-test to someone you're considering hiring, you are a terrible interviewer.
Does that mean... but what about... Does that mean my MCSE isn't worth anything?
When our name is on the back of your car, we're behind you all the way!
When it comes down to it, the entire process is a test. Creating a well-designed, brief, and informative resume is a test. Tying a damned tie (a skill that a trained monkey can do without cursing, but I can't), is a test. Interviewing is a test. If you're going to be tested on all these other things, then I am not going to complain about the test that focuses on whether you can do the job.
I have been tested for two of the three companies I worked for and a few others that I applied for. Two of them were in the vein of "We want you to write a simple script that can do X, and email it back to us". This was an effective test.
Another one was a multiple choice test that focused on syntax. The questions were things like "How do you terminate an IF statement"
It was a terrible test because they weren't looking at your ability to logically think through a problem, but were instead more concerned about whether you may confuse programming language A with programming language B. I did reasonably well, but that still, if you are going to test you employees, don't get hung up on things like "does this guy remember the modulus operator" (for Fizzbuzz tests) or "Does he remember how to use function X without looking it up".
I would much rather take my PC to a IT guy who cheated, then be represented by the lawyer/Accountant, etc that cheated.
Why? Law and Accounting are probably the two professions where you most want a cheater on your side.
As far as lawyers go, they're kind of hard to avoid ...
I kid, I kid. I know that it's only 99% of the lawyers make the other 1% look bad.
John
Two beers and you're drunk?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
I'm sorry if you don't like being tested, but get over it.
If you don't like testing, perhaps its because you are insecure about your abilities to get the job done.
I've conducted a fair amount of interviews in my time assuming management didn't prevent me, I always had a test of some sort in the interview. Those tests have saved me god knows how many hours because I managed to weed out all the bullshit on resumes. Resumes are worthless, you can just download one, change the name and call it your own. There is no backing to whats in a resume.
I don't know you, why should I believe you have done all the stuff you've listed on your resume? Why should I waste my time trusting that you arent BSing your way into a job?
In all the jobs I've interviewed for, the ones where there was no test indicated up front that the person doing the interview had no idea what I was supposed to be doing in the position. To me, its generally a good indication that if you get accepted for a job before you have been tested, then its likely a job I don't want because management doesn't know how to manage.
Lawyers and doctors have to pass the state boards, plumbers and electricians have to be licensed. Hiring an accountant you generally have certifications or licensing of some sort, CPA for instance. HR people are generally worthless and either do data entry for employee information or pretend to care while you complain at them, no real skills needed.
There is no standard certification for stuff in the IT fields, except for some high end security stuff. Everything else that calls itself a 'certification' is pretty much a way for a manufacture to make money off people who want to have a certification, although having taken the CCIE certification years back, I would certainly respect someone with a CCIE, but that doesn't mean I wouldn't test them still, as I've seen a few CCIEs that were worthless when in the real world.
Stop whining that you are being treated in a bad way and get over it. You DO have to prove you are worthwhile to the company hiring you, the job is a privledge, not a right. When the field is flooded with more people that don't have a clue than do, you better expect to be tested, and if you aren't, watch out because they know even less about what you're supposed to be doing than you do.
Why do you think you are so special that you don't deserve to be tested?
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
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.
HALLE - FSCKING - LUJAH BROTHER
I am TIRED, TIRED of getting BS from graduated people, either hearing, getting work from, etc
Experience means NOTHING (in certain companies people can last a long time doing almost nothing - as long as you fill your time sheet, that's ok)
Diploma means NOTHING
As Linus put it best: "Talk is cheap, show me the code"
Granted, several people do tests for the sake of it (and then end up with bad tests), but I haven't seen a test that wasn't fair or reasonable (it may be overwhelming, like in that company that begins with G, but that's a different issue).
If you are not willing to take a test as part of the interview, thank you a lot for not wasting my time any further.
how long until
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
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.
First, I offer my sympathies to you for working with Tek Systems. I have never worked for a group of bigger, under-paying crooks, in my life.
Second, in my opinion, the IT industry can be a very saturated thing. It is almost like _anyone_ can get an IT job. That being said, I support the tests, as a mechanism to keep riff raft in it's place.
However, I can do without the babysitting.
It's worth something, to someone, but you probably don't want to work for them anyway.
I didn't get the job, but found out several weeks later that they implemented my exact solution, as the guy they hired for the job EMAILED ME WITH QUESTIONS and quoted the entire email.
I submitted it to their billing department at my standard consulting rate and minimum bill, with a note attached that since there was prima facie evidence that they were using my solution. . .it was pay or go to court.
The check arrived via FedEx the next morning . . .
But it's not premature optimization. It's good practice, and will, for the most part, match the style of other C++ programmers working on the project. In C, good programmers will adopt the style of the project because it really doesn't make any difference with modern compilers.
The rationale for picking ++i over i++ when it makes no difference to how the code behaves is that i++ will almost always be slower than ++i. Additionally, sometimes changes elsewhere in the code can turn a fast, i++ into a slow i++ without affecting ++i. Good programmers don't leave unnecessary traps for their fellow programmers.
Tim.
God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
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
I'm a systems architect with many years experience. No real programming skills which the coding bunch will find odd and look down upon. Simply I hire programmers when I need them and usually have several on staff. I design, they code, I deploy.
Working on a big deployment my company hired a third party contractor for programming. The guy they sent was ok but seemed to be struggling with the project. I stepped in and reviewed the software and requirements and discovered he was doing it all wrong. He was fired and someone else finished the project.
Time passed and I applied for a job at another company. Was given a brief programming test which half of it I couldnt complete. Not a programmer and I explained that to them. They didnt care too much. As for the test I didnt mind and think its a good idea especially if its a programming position.
Now for the punchline... I did not get the job. It went to a guy who completed the test. The "same" guy we fired for incompetence on our project.
Anybody can write code. Its what you do with it thats important :)
people on ludes should not drive
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