Measuring LAMP Competency? 453
An anonymous reader writes "Our company is getting ready to hire a number of programmers. While the majority of the prospective candidates do have good-looking resumes, we are looking to see if we can get some clear metrics in the assessment process. After a little research we have learned that there is a well-established PHP + MySQL training and certification process, and some of the candidates are already certified. There is also a candidate with a good portfolio, a lot of experience, and no certification. Most of the applicants also have some college/university science-related education. So our goal is to be able to somehow measure LAMP overall competency as well as basic computer science concepts such as BNF, data normalization, OOP, MVC, etc. How do Slashdot readers go about this kind of characterization?"
Previous work (Score:1, Insightful)
Look at things they have done! Not just the outside, check the code, look at the database structures etc.
Get people to talk about what's on their CV. (Score:4, Insightful)
If they can't talk intelligently about what they say they've done... next!
No faith (Score:5, Insightful)
Personally I have no faith in certifications at all. I know tons of people who are certified out the yazoo and can't do a darn thing. I also knows tons of people with no certifications especially in open source where lots of us were working long before there were certifications, that figure things out on their own and dig for information. The people that are driven to dig are the ones that rock the house. Needing a course to learn is some what of an automatic fail to me. You will learn far more about which type of person they are in the interview than you will from a certification.
Re:ask to see a server they configured (Score:5, Insightful)
The answer seems simple. Ask for guest access to a server that they configured. If they don't have something like that you could set up a simple lamp server and have them perform some basic tasks.
This may be good for interviewing people for a sysadmin position, but I fail to see how configuring a server has anything to do with the applicants ability to develop software.
More than just knowledge (Score:1, Insightful)
Re:Get people to talk about what's on their CV. (Score:1, Insightful)
This
I take real experience over a piece of paper. Anyone can study for a test.
why BNF? (Score:5, Insightful)
Why BNF?
Portfolio. Previous work. certificates mean zit (Score:5, Insightful)
portfolio shows that you not only know your field, but also you have properly and responsibly participated in projects, collaborated, and actually built stuff with it, and saw them to their completion.
that is the kind of people you want to hire. and nothing than a portfolio shows it better.
To hell with papers (Score:4, Insightful)
Additionally, to test their integration skills, you could also have them attempt to develop a new page to be integrated into your company's product. Not only will this show off their software development skills, but will also give you some insight into their ability to inherit an existing software project and work with it (something that he vast majority of newly-hired developers will have to do).
Re:No faith (Score:5, Insightful)
I am a big proponent of hands on testing. Sit them down in front of a machine and give them a task to do. Time them, and then look at history, to see what they did and how they did it. If you see any red flags then don't hire them.
how many NASA people were certified (Score:1, Insightful)
when we went to the moon?
certification is a gigantic scam, so that PHBs can 'outsource' yet another job function while they collect huge paychecks for 'synergizing the optimal opportunity risk costs analysis paradigm and reduce opportunity costs while conforming with best practices metrics'. (ie, commit massive fraud, milk their good old boy network, and buy a golden parachute)
hooray for capitalism.
certs, (Score:1, Insightful)
I take real production class skills or certifications any day. Know how to do something is one thing, actually making it work in the real world is another. I would be interested in what they have done and verify the work with the previous employers.
Re:No faith (Score:0, Insightful)
Not the same thing, numb nut.
This is pretty basic HR stuff (Score:4, Insightful)
First you define what you want:
Do you want technical certs? Then look for people with those.
Do you want people with academic background (data normalization, OOP, etc)? Then look for people with CS degree.
Do you want people with experience? Then look for people with relevant experience, and or do a practical test as suggested (which everyone can get their smart friend to do for them I'm sure)
Weight each one of the factors according to what he or she is supposed to be doing.
Systems analyst? Architecture design? Jr. code monkey? Overall hacker (jack of all trades, master of none)?
Then rank them in each factor. Most of those factores are qualitative more than quantitative by the way.
But sometimes, the best programmers are not the ones with the best qualifications, but the ones with the best fit into your business. 8 years php experience vs 4 years php experience IN YOUR INDUSTRY: I'll pick the 4 year experience guy.
Re:ask to see a server they configured (Score:5, Insightful)
Have someone competent interview them. (Score:5, Insightful)
Skip the alphabet soup. Do you really have no one on staff capable of recognizing competence?
If you don't, who were you planning to have manage the new hires? Who were you planning to have interpret your metrics?
Re:No faith (Score:5, Insightful)
Unfortunately IT certification has nowhere near the requirements and rigor that doctor and engineer certification requires.
If IT certification were more than "pay $amount -> get cert" then I'd be all for giving them credence. But they aren't. Currently they just highlight the programmer or IT professional who wants to hide their incompetence with paper.
Re:More than just knowledge (Score:2, Insightful)
Re:More than just knowledge (Score:5, Insightful)
A good work ethic and honesty ...
is not hiring two persons to drop them few months later.
Re:More than just knowledge (Score:3, Insightful)
Re:More than just knowledge (Score:4, Insightful)
If they are told up front their position is temporary, what's the problem?
One question I always ask... (Score:5, Insightful)
"as well as basic computer science concepts" (Score:5, Insightful)
as well as basic computer science concepts such as BNF, data normalization, OOP, MVC, etc.
Put 10 seasoned programmers in a room and, without access to references or preparation, ask them to write the BNF for some subset of a well-known language, normalise a database in stages up to 5th normal form, give a detailed description of OOP implementation in any language (not just "how is inheritance formed?" but "demonstrate polymorphic behaviour - suggest how it might have been implemented - describe its disadvantages" etc.) and ask them to fit some app description into MVC pattern.
You know what? Zero of them will succeed in all of your tasks. And, dear reader, if you claim that you will then you are lying.
You know why? Because testing like this doesn't reveal anything. I passed University with top grades throughout because I knew how to bone up for an exam and cough up the syllabus as requested, as well as having a moderately mathematical head. I can demonstrate prior performance and I can grasp new concepts. I can remind myself quickly of old concepts when given access to a reference.
But I don't have some magical savant-level ability to memorise everything I've ever done (and, experiments on savants suggest, if I did then I'd lack the skills to apply my elephantine knowledge to solving general commercial development problems). It's never hindered me. This sort of ability might be necessary if I were, say, a field intelligence agent(?), and not being able to concoct the right deception within a subsecond time interval might result in my death. Otherwise, it's just a dog and pony show.
Re:Technical Interviews (Score:3, Insightful)
They may need those buzzwords or certificates to get past HR... don't be too harsh unless they really believe in those buzzwords!
Re:Previous work (Score:4, Insightful)
In the past, I've asked people to send me sample code. Some was protected by various agreements, so they sent me snippets that were enough for me to review their coding style, without giving away the details of their work.
The clincher is always the interview. I don't just sit down and talk with someone about what they know, and let them brag without anything supporting it. Ask real world questions. Have them write a few lines of code to do something on a piece of paper or whiteboard. It doesn't have to be syntactically perfect, but it has to be close.
My interviews were more for sysadmin stuff, so having them describe what they'd do for a task can be very revealing. Like a question like this:
"The COO has come to you, because no one else is available. The CEO is flipping out. There's a server on the network running some common variety of Linux. Transfer rates from it to any other machine are very slow, regardless of the protocol. i.e., http, ftp, rsync, samba are all slow. What do you do?"
I'll have established what the real fault is in my head, and give them appropriate answers to what they say to do.
It's a pretty simple one to solve, or at least bring to a point where authorized assistance is needed. I've gotten all kinds of answers to that one. Some answer "call someone else for assistance", which I tell them the someone else is unavailable. Some just reboot it, which isn't a valid answer as a first step. I tell them "No, it's a production machine. You can't." Some actually start pinging, checking ifconfig for errors on the interface, and check the interface duplex. Obviously, the last set of answers is the right one.
Adding extra stress is always useful, if they don't get it right off. A little yelling and table pounding is enough for that. "The COO is demanding an answer now! [pounding on table] We're losing money! If you don't get this fixed, it's your job on the line!" Some people do fine. Some just stare at you dumbfounded without a clue if they don't have Google in front of them.
When it's my interview, and my decision (it's not always both), I evaluate how good the answers were, even if they were wrong. Did the guy show a competent level of knowledge, or does he just think he can do the job and has no clue. A few will float to the top, and quite a few get put to the bottom of the list.
Re:No faith (Score:5, Insightful)
Nice false dichotomy there. There are plenty of people who actually know things AND have certifications.
Needing a course to learn is some what of an automatic fail to me.
Why? While self-learning is nice there are plenty of self-taught programmers and sysadmins that are complete garbage because they taught themselves to do things the wrong way and since they had no positive or negative feedback from someone like an instructor they have no idea that they are even doing things wrong.
Re:ask to see a server they configured (Score:5, Insightful)
A lack of ability to properly configure a server can often lead to developers writing code that requires more than the minimum privilege level, wonky configuration "needs" without really thinking it through, and a mindset of "throw hardware at it!" Working previously as a system admin at a web hosting company, the new hires that came to us, usually with a lack of college education or experience with compiled languages but a lot of experience as "web developers", they answers usually involved excessive needs for additional memory. A lot of the resource abuse issues I had to deal with also boiled down to a customer installing a software package that had a lot of neat features but required dedicated hardware to run far in excess of what a shared hosting package or even a VPS could deliver without affecting quality of service for other customers.
I'll freely admit I'm not a good web developer, but I can hold my own reasonably well with Perl and C in the areas I work in then and now. My first instinct, however, is exactly the opposite of "buy more RAM" or "just let everything in through the firewall." Not saying all, or even most, developers are like that. But a very high percentage of the ones I've seen in action are.
Re:More than just knowledge (Score:3, Insightful)
Re:Forget certificates (Score:3, Insightful)
That is, no offense, a dumb outlook to have.
A person who doesn't know shit won't learn enough to do the job you want by getting a certificate, true. You should not take possession of a cert as evidence that a person is qualified to do a job without further investigation, also true.
However, a person who mostly knows how to do the job you want will usually learn a little something by getting the relevant cert -- if only a basic understanding of the pieces of the technology or framework in question that haven't yet been relevant to the work they've done with it. They might learn about easier or cleaner ways to solve problems that they already can deal with in a less efficient way. They might learn about some unintended or hidden consequences of an approach they usually take to a problem. These are the kinds of things a person with genuine experience with a technology will pick up in the process of prepping for a cert exam.
Often employers will also pay for their employees to become certified and/or provide other incentives. If that's not you or your employer, sorry, but don't hate on other developers for having had jobs that were actually willing to put money on the line for their employees to keep up with evolving technology.
Re:More than just knowledge (Score:3, Insightful)
I happen to love doing contract to hire work - I get paid, you get work performed.
If I like the company (and they offer, so far they have), I'll go perm. If not, thank you and I'm on my way :)
The FTE gig is the worst gig ever. Crap wages, crap work, too many hours, and you get laid off with the same notice as a contractor (but are expected to slave 'for the good of the company'). It's no wonder so many places outsource these days.
Don't test live! (Score:1, Insightful)
I interviewed earlier this year with a company looking to hire a developer. I have plenty of experience with the language they wanted, and they gave me a "live programming test". In a conference room, with the whole dev team in attendance and asked me to program in front of them (on a projection screen for all to see). There was no warning at all this would take place. This was the single worst experience of interviewing in my life. I made mistakes I would normally have never made because I really needed that job, a lot was on the line, and my brain would not switch to programming mode. While I can consider that to be a (possible) test of how you perform under fire, I really don't see how it applies to someone who sits and programs all day long. Even peer programming won't bring around that level of stress, not even close. I did end up getting an offer, but I turned it down since I happened to get a better offer at the same time, and that whole test left a bad taste in my mouth.
Bottom line: I really don't recommend doing a test such as this, there are plenty of conventional methods available for determining someone's proficiency. Ask to see code samples, give tests (that are judged afterwards), technical interviews; all of these are better options..
Re:Previous work (Score:5, Insightful)
On second thought, if that's actually how your office functions, then I guess it is honest and appropriate. I just wouldn't want to work there.
Re:"as well as basic computer science concepts" (Score:5, Insightful)
Re:Previous work (Score:2, Insightful)
If you started yelling at me in an interview, I would walk out. No one who is competent is going to put up with behavior like that. Enjoy your crappy candidates.
Re:One question I always ask... (Score:1, Insightful)
Really? Asking for help is a red flag? Wow, I'd hate to work with you!
Re:Previous work (Score:5, Insightful)
Agreed. Meeting a table thumping, yelling person in the interview would just cause me to stand up and say "I'm sorry, I'm looking for a position at a professional organisation". If this sort of situation is routine enough to require somebody to do well in it during an interview then I'd say there are some problems there.
In real situations this doesn't happen. At least in the places I've worked. There was an incident of massive negligence by the support team involving one of our biggest customers databases last year. Instead of someone in management hitting the table and yelling, everyone in the development team already knew it needed to be fixed and so we fixed it. A good team doesn't need yelling at.
It seems to me that the type of managers who yell and ask why are usually the ones in the positions who don't need to know. A good manager will be right there with the team putting forward ideas, not simply asking questions. If they're not going to be putting in ideas then they should get away from the problem and let people get on with it.
HIRE HIM! (Score:3, Insightful)
There is also a candidate with a good portfolio, a lot of experience, and no certification.
I don't know this guy but I'm sure he's extremely well qualified for the job and you should hire him ASAP because he's about to miss another mortgage payment.
Re:No faith - but still needed (Score:4, Insightful)
but some people go out and get the certification so they can get past the HR droid
Yes, this is a massive problem. In order to get to the face-to-face you have to go through the screening process. This is normally carried out either by the HR trainee or, worse, by a recruitment "consultant". All they've been given is a tick-box of "must-haves" (i.e. a wish list of tangible qualities) and told to go through a pile of CVs.
All they'll do is toss the ones which don't meet the criteria.So you can be the best LAMP-er in the world, but unless you have the random qualification that someone though might be useful you don't even get a chance. So while certification bears no correlation to usefulness in the real world, it's a necessary stamp on your CV to get you through the door.
Re:Previous work (Score:3, Insightful)
Re:One question I always ask... (Score:2, Insightful)
I was in an interview once and was bumped out of the running because I answered the question as you described above "the right way." My interviewer thought the correct answer was to ask for help from him or someone else within the organization.
Re:Previous work (Score:4, Insightful)
But hey, if you can't handle an environment with occasional high stress, I wouldn't want you there.
You seem to be confusing refusal to accept unprofessional behaviour by idiot management with an inability to handle high stress situations. I suggest to you that the kind of person the GP poster is talking about may well be quite capable of handling the stress, but prefers to avoid the problem situation in the first place by working for a more professional organisation instead.
That's the great thing about recruitment processes: they're two-way deals, and revealing in both directions. If the interviewer is an ass, or you're good but your CV doesn't get past the HR weenies for some silly reason, then you can pretty much always bet that the corporate culture is poor and the employer isn't somewhere you want to work anyway, so not getting the interview or walking out early is no problem.
Re:Previous work (Score:5, Insightful)
First step is to run top, not to check the network. Just like the first step, when a car will crank over but won't start, isn't to pop the hood and start fiddling with the wires, but to check the gas gauge.
Always eliminate the easy things first.
Re:Previous work (Score:5, Insightful)
Actually, I never had anyone walk out. Since it was presented as roleplay of a real world situation, and I'd explain the details of the situation calmly and clearly, it was evident that it was an extreme example.
What a competent interviewer would do is set up a VM with the problem they want diagnosed. That way, there wouldn't be any need to set up a fake "situation" where the "real fault" can be any number of things, including ones that don't match what you have established in your head.
Of course, if you can't handle an environment with occasional actual preparation for your job (e.g., interviewing), I wouldn't want you to work with me.
That's the last thing I'd ever want is a stressful situation to come up, and an employee walking out because it was "too hard".
Being "yelled at" by a superior is not a "stressful situation". It's unprofessional behavior. Being told politely and calmly that there is a problem that needs to be fixed quickly because the company is losing $X million per hour is a "stressful situation".
Re:Previous work (Score:2, Insightful)
Re:Previous work (Score:3, Insightful)
You have to deal with stress, but not disrespect or yelling. The problem there is the yeller, and I don't know a single workplace I've ever been in where someone acting like that wouldn't be disciplined or fired. In fact, the few who I've seen try that *were* fired. If someone came in yelling at me I'd tell him to fuck up and refuse to work on the issue until he came back calm. We are not your whipping boys, you will treat your employees in a respectful manner, or you'll get either nothing from them or their resignation, like you deserve.
Re:Previous work (Score:4, Insightful)
You said this:
For the sake of the scenario, ... you are sitting at a desk where you have both any tools required on your desktop, ...
And this:
Some just stare at you dumbfounded without a clue if they don't have Google in front of them.
Not to be a jerk, but make up your mind. For many purposes, Google is an invaluable tool. The skill you want is the ability to think for one's self--and some may have enough knowledge to know which keywords to look for.
... And maybe I'm good enough to be picky, but I wouldn't want to work for anyone who yelled at me (even role-playing) in an interview.
Re:Previous work (Score:1, Insightful)
So you wanna slap the table? I'll roll with it and we can laugh about it. I don't take any of that seriously. Be advised I might also stick my finger in your coffee and then taste it and say "Hmm.. A cream and sugar kind of fellow, eh? You should warm that up a bit." right in the middle of your mini flake-out.
Haha, I like your response. :) When I was in charge of my network, you're the kind of person I'd rather have. It's much better than all the other "I'd walk out, then go home and cry" answers.
I call bullshit. You're only saying that because your techniques have been criticised above. Now you're adjusting what you really wanted from the answer to fit somebody who vaguely agrees with you. You're pretty pathetic and I hope you don't actually get to interview anybody.