Forgot your password?
typodupeerror
PHP Apache Linux

Measuring LAMP Competency? 453

Posted by kdawson
from the diogenes-as-tech-recruiter dept.
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?"
This discussion has been archived. No new comments can be posted.

Measuring LAMP Competency?

Comments Filter:
  • by Anonymous Coward on Friday July 16, 2010 @12:34PM (#32927646)

    Get them to write a trivial app.
    If it contains 'INSERT INTO table ('. $foo. ');'

    Kill them.

    • Re: (Score:3, Funny)

      by jbezorg (1263978)

      You laugh. I've seen this in a code review.

      <? header( 'Location: ' . $_GET['s'] ); ?>

      That was the entire script....

      No wonder why I'm bald.

  • by djKing (1970) on Friday July 16, 2010 @12:35PM (#32927664) Homepage Journal

    If they can't talk intelligently about what they say they've done... next!

  • No faith (Score:5, Insightful)

    by jvillain (546827) on Friday July 16, 2010 @12:36PM (#32927680)

    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:No faith (Score:5, Funny)

      by badboy_tw2002 (524611) on Friday July 16, 2010 @12:41PM (#32927744)

      Its the same way with doctors and civil engineers. I'll take my bypass (both heart and highway) from the guy who was to busy getting shit done to get board certified.

      • Re:No faith (Score:5, Insightful)

        by Gulthek (12570) on Friday July 16, 2010 @12:50PM (#32927906) Homepage Journal

        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.

        • I tend to agree. I just finished taking the introductory Microsoft Server 2008 courses (because my employer thought it would be a good idea), and about 50% of it was listening to someone yack, 25% doing some very simple GUI simulations, 15% poorly concealed advertising (phrases like "Windows Server 2008 is the most advanced server operating system ever made" abound), and 5% pathetically easy end tests. I ended up realizing that this is what the joker with the MCSEs and other certifications actually do.

          The

        • Re:No faith (Score:5, Interesting)

          by Dr. Evil (3501) on Friday July 16, 2010 @01:21PM (#32928386)

          That's a pretty bold assertion. I assert that it is not true.

          Although... most certifications are entry level. They only say that you've read the material, have done some practice and have a basic understanding of the theory. They *try* to test for experience, but the Cisco, Microsoft and Linux certs can be passed without experience. I've written others, but I've seen few certs which contradict this.

          Intermediate industry certifications mimic designations. They require nomination/sponsorship and years of experience, also point systems to maintain certification. They're much harder to fake.

          All of these certifications make a reasonable minimum requirement. That's all. Most people I've met who are anti-cert seem to be resentful that they'd have to study material to acquire product knowledge in an area they've never seen, nor expect to see. Those people of course are missing knowledge. Maybe it's relevant to their jobs, maybe it's not. They'll never know, and they might spend weeks trying to figure out some problem because they don't know the capabilities of the software/tool/product.

          Now I have to get back to work fixing some device which was deployed by some self-taught boob who didn't adhere to best practices for the device... probably because they used the default configuration without knowing what the defaults were. They of course moved on, and are probably telling people that certifications don't matter...

          • Re:No faith (Score:4, Interesting)

            by zerocool^ (112121) on Friday July 16, 2010 @04:01PM (#32931134) Homepage Journal

            Although... most certifications are entry level. They only say that you've read the material, have done some practice and have a basic understanding of the theory. They *try* to test for experience, but the Cisco, Microsoft and Linux certs can be passed without experience. I've written others, but I've seen few certs which contradict this.

            Woah, there, buddy.

            Yes, there are entry level certificates for a lot of things:

            A+ - anyone who puts this on a resume who is going for anything other than a repairman is stretching.
            MCP (Microsoft Certified Professional) - you have passed any one MS test
            PMP - congrats you're a PHB-prototype.
            etc.

            But, there's a LOT of pooh-poohing of certs around here, and some of it isn't warranted.

            For example: People who have a CCNP have passed four different cisco tests, including a troubleshooting one. That could be crammed for probably, as it's strictly a multiple choice test, but most people who have a CCNP probably have at least a decent familiarity with Cisco equipment.

            People who have an MCSE have passed 7 Microsoft tests. Yes, you can cram for this and learn in books / etc, but - it's still more difficult than people think. How many people do you actually know that have gone as far as really getting their MCSE? There's a lot, but not as many as who think that it's just a piece of paper and stupid test. There's some higher level domain configuration and troubleshooting, etc.

            And the RHCE (which I recently got) is a literal hands-on test - they hand you a broken linux box which you have to fix, and then a list of things to make it do via whatever method you think best (i.e. sendmail or postifx, as long as it delivers mail etc).

            Certifications are not the end-all be-all of knowledge measurement. But, they're not completely worthless either. I see people on slashdot all the time who are like "I don't trust someone with a certification", or "I trust someone with an RHCE less than I trust someone without one!". That just doesn't make any sense.

            ~X

            • Re: (Score:3, Interesting)

              by Dr. Evil (3501)

              Sorry, RHCE, MCSE and CCNP are entry level. They're NOT easy, but if you don't have any work experience to back them up, then they dont' mean that you know very much about the technology.

              I did the MCSE years ago, I'm working on the CCNP, and I work in intermediate roles. I don't do the certs because I'm looking for a job, I'm doing them to broaden my knowledge.

              I've dealt with lots of clueless RHCEs (seriously) and heaps and heaps of clueless MCSEs. Without exception, they lacked experience. The CCNP is

              • Re: (Score:3, Informative)

                by paitre (32242)

                I've taken, and aced, the RHCE twice.

                If you know wtf you're doing, it's really not that hard.

                The RHCA exams, on the other hand... *twitch*

      • Re: (Score:2, Informative)

        by Anonymous Coward

        That is a retarded statement. Certifications for both doctors and civil engineers are completely different than what he is talking about. Both of these professions involve people dying when it is not done properly. For both professions, it is not a matter of just completing your degree and getting licensed. Doctors work as interns for years. In addition, a PE license requires 4-years of qualifying experience after school.

        I understand what you are saying here. I am a licensed Civil Engineer and I have

        • Tower, this is Ghost Rider requesting a flyby.

          That's a negative, Ghost Rider, the pattern is full.

          WHOoooooooooooooooooooooooooooooooooooooosh!

        • Good thing there's no software that could kill someone! Except maybe in automobiles, planes, boats, rockets, medical systems, power plants, telephone switches (better hope that 911 call gets through), etc etc etc.

          Its not so much a matter of certification as it is a matter of engineering rigor. As you've stated, a certification does not show anything beyond basic competency. Its required for a lot of things where we put trust in people not to screw up some potentially life threatening task, and yet not on

        • That is a retarded statement. Certifications for both doctors and civil engineers are completely different than what he is talking about. Both of these professions involve people dying when it is not done properly.

          What about the cases of people dying due to buggy software in x-ray machines? Or all the software that is running life-critical infrastructure in a hospital? Or the software controlling a nuclear plant? Or an airplane? There are plenty of places where writing software DOES involved people dying if it doesn't work properly.

        • by TheLink (130905)

          http://news.bbc.co.uk/2/hi/africa/3011105.stm [bbc.co.uk]
          http://en.wikipedia.org/wiki/Hamilton_Naki [wikipedia.org]

          Quote BBC article: Employed at first as a gardener, Mr Naki worked his way up to become even more nimble-fingered on the operating table than Professor Barnard[1] himself.His work helped the first heart transplant become a reality and for years after that he passed on those skills to thousands of young surgeons.

          http://www.guardian.co.uk/world/2009/may/31/black-surgeon-first-heart-transplant [guardian.co.uk]

          But a decade later, with Barnard

      • I'm sure you're joking, but a cert has almost zero value. Too many mills and too many cram courses mean the cert holder often can't do the job. It's too bad, really, as that was once a useful filter for candidates. The last candidate we hired had no certs but most of the 12 or so applicants before him did -- and guess what, they couldn't do trivial things, not even explain how they might do it in pseudocode let alone use pencil and paper to write a SQL statement.

        Perhaps the half-dozen word problems were th
      • The difference is not as stark as your implies. The AMA is very protective of the tiny minority of incompetent doctors responsible for the lion's share of malpractice lawsuits. Even among MD's there are those that game the "certification" system to gain entry into a career they are not qualified for.

    • Re:No faith (Score:5, Insightful)

      by Capt.DrumkenBum (1173011) on Friday July 16, 2010 @12:42PM (#32927770)
      I mostly agree with you, but some people go out and get the certification so they can get past the HR droid who only knows "Looks for X certification."
      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.
      • some people go out and get the certification so they can get past the HR droid

        Agreed. Yet some of us, who have spent decades in the business, never had to get the certs because we interviewed well / got lucky / whatever. It seems awfully expensive to send someone making $XX an hour out to get certs when you know they can do the job. If they want a class, great. I've done that. But although I'd like to, say, get my RHCE, I have work to do and if I'm off at class there is no one to do it for me. So it's a balancing thing.

        Were I starting over, I'd probably have to get my RHCE first. Bu

      • by petes_PoV (912422) on Friday July 16, 2010 @02:27PM (#32929424)

        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:No faith (Score:5, Insightful)

      by Lunix Nutcase (1092239) on Friday July 16, 2010 @01:05PM (#32928172)

      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.

  • How to interview someone is seriously a topic on Slashdot? Must be a pretty slow day waiting for that Apple announcement.. Anyway I do the technical interviews at my large company (Fortune 500)all the time (not programming, so this will be just general advice). If you have someone that actually understands the topics ask the questions then it's easy to gauge someones knowledge. Hiring someone that knows what it is going on is important, but in my experience finding someone that has the right personalilit
    • by ghostdoc (1235612)

      I'd agree with this completely, except for the fact that hiring managers suck at picking techies. And the 'questions' that get asked, if they're not technical, are pretty much irrelevant.

      Technical competency is pretty much inverse to "team fit" as defined by a non-technical hiring manager. Introverted, awkward, geeky, bookish, maladjusted males are your prime territory here. These are not people who will shine at an interview where they have to be social or ask questions of a non-extremely-technical nature.

  • why BNF? (Score:5, Insightful)

    by Anonymous Coward on Friday July 16, 2010 @12:39PM (#32927720)

    Why BNF?

    • Re:why BNF? (Score:5, Informative)

      by Jesterboy (106813) on Friday July 16, 2010 @01:35PM (#32928582)

      Why BNF?

      I think he is referring to Boyce-Codd Normal Form, a level of database normalization, as opposed to Backus-Naur Form, a way of describing context-free grammars.

      Perhaps he accidentally dropped the C in the acronym. Although, judging from my CS classes, this is a common confusion.

  • by petes_PoV (912422) on Friday July 16, 2010 @12:40PM (#32927738)
    Explain to the candidates what your requirements are then ask them to describe a piece of work they have completed which was comparable to that. Have them explain the issues involved, how they approached it what difficulties they had to overcome and what they would do differently in the future.

    Since you're looking to recruit a number of people, I'd say that their ability to work together - personalities, maturity, compatibility are at least as important as skills and experience. So don't just pick the top X according to how they rank at interview, consider if you think they can work together as a team.

    • by thijsh (910751)
      Yes, this is good advice. But the certificates are also an indication, but slightly the other way around. In my experience the *really* good programmers know they have no actual use for certificates and will actually be a little proud they have come so far without... and the ones who boast about all the different certificates they have acquired are not really worth the trouble. I guess people that know they won't be hired by their own merit alone try to compensate for this by getting a whole list of certifi
  • Generally I would have an interview with the applicants that seemed most qualified. It's the easiest way to see if someone is padding their resume or generally bullshitting. When the vacant look comes into their eyes as they spew forth buzzwords in answer to your technical questions, you know you've got a loser. If you can't separate the liars from the nerds in an interview, you have a real problem.

    Also: do you need this person long-term? If not, I'd advise a contract with the person that uses more Agile me

  • by unity100 (970058) on Friday July 16, 2010 @12:41PM (#32927746) Homepage Journal
    there is no higher proof of competency and ability than proof of prior work. certificates are like school courses. everybody can take one if one attends the courses, or passes an exam. practicing in the field however, is an entirely different matter.

    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.
    • Re: (Score:2, Interesting)

      by Anonymous Coward

      How do I show my enterprise app that runs on Solaris and Oracle to another company? If it isn't a webapp, how do you truly show a portfolio?

  • by pak9rabid (1011935) on Friday July 16, 2010 @12:41PM (#32927756)
    You need to actually be testing their ability to write software. As a few others have pointed out, having them develop a simple web application as part of the interview process is probably going to be the best way to measure that ability.

    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).
  • I was you, i would NEVER hire anyone with a certificate, NEVER. Obtaining a certificate is simply lost money, and lost time. Not mentioning the fact that every monkey with well designed short memory could remember a 2000 pages MS Server certificate Q&A, and become what? Monkey with MS Server certificate? And i am not joking, i really know such a people, who does not ever have a math degree, but who have a lot of "certificates".... Anyway, good look, you will need one.
    • Wait a minute. You'd throw a candidate away on the basis of them HAVING a certification? Myself and several of my coworkers begrudgingly got MS certifications just so our employer can get cheap software. It was easy, we were paid some extra bonus money for it, and after all was said and done, i actually learned some things.

      My certifications are a line item on my resume now. I don't really trumpet them, i like to stand on my actual project accomplishments, but i would like to think they don't bring me dow
    • Re: (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

  • by malraid (592373) on Friday July 16, 2010 @12:44PM (#32927802)

    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.

    • First you define what you want:
      Do you want technical certs? ..
      Do you want people with academic background? ..
      Do you want people with experience? ..

      He doesn't want any of that. He wants someone who'll do the job well.

  • Technical Interviews (Score:3, Interesting)

    by eln (21727) on Friday July 16, 2010 @12:44PM (#32927810) Homepage
    If they have the right buzzwords on their resume, bring them in and ask them technical questions relevant to your environment. Then, throw in a few questions related to other technologies on their resume that aren't directly relevant to your environment just to see if they're the type of person who likes to puff up their resume by listing stuff they don't really know. You have to have at least a passing knowledge of the stuff you ask about, of course.

    After you've established a baseline technical competency, ask them to solve a few simple programming problems to measure their problem solving ability. Doing them in PHP or Perl is obviously a bonus since you're dealing with LAMP, but pseudocode should be fine in a live interview type of situation. Don't judge things like missed semicolons too harshly, they're probably nervous. Concoct some basic scenarios dealing with the L or A part of the LAMP stack to judge their troubleshooting ability. Ask them for some SQL statements to pull certain data from a hypothetical database for the M part.

    Interspersed throughout should be questions that judge how well they'll fit into your company culture and how easily they can learn new things or deal with new and unexpected situations. For these, concentrate on asking about past experiences of that type rather than asking canned hypotheticals that everyone has already seen on the Internet and knows how to answer.

    A person's technical competence is not a reliable predictor of success. It's part of the equation, but his or her ability to learn and grow with the company, as well as the ability to fit in with your company culture, is much more important unless you're just looking for temporary contract labor.

    Also, don't be afraid to ask your friendly neighborhood PHB. If he's taken any sort of business classes at all, and didn't spend the entire time Facebooking instead of paying attention, he should have plenty of insight on effective hiring.
  • by Rix (54095) on Friday July 16, 2010 @12:44PM (#32927814)

    That's what probation periods are for.

    If you try to quantify it, you'll end up hiring people who are good at gaming your system. That's a skillset, I suppose, but probably not the one you're looking for.

  • OOP techniques and security. The biggest benefit of LAMP is it's flexibility. You can literally weave 3 languages together in one page. That is also it's biggest downfall if people don't know how to structure a large application and use proper security techniques to prevent SQL injections and XXS attacks.
  • Define a small coding project, deliverables and all, and bring in each candidate to complete it as a pre-interview. Then call back those that did the best job.

    Problem solved?

  • by jthill (303417) on Friday July 16, 2010 @12:46PM (#32927848)

    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?

  • It's the only way

    1 - ok they know PHP?! Ask them to write a simple function (whiteboard will do it), but you also can ask the to do 'homework' or set up a dev env. in a laptop

    2 - same for MySQL, do they know how to write a select, do they know how to use PhpMyAdmin at least?

    If they refuse to do it then go for difficult questions. If they won't answer, just send them home

  • that you know demonstrates the ability to use the tools you have. It should be able to pull data from a DB, display it and accept data from the user and post it to the DB. Look for error handling and comments. What kind of naming conventions did he use. How crappy was his OOPs?

    And, I would add a problem that could not be easily overcome. Maybe the DB UserID does not have update, just insert. How does he deal with adversity?

    Finally, does he ask good quwestions and does he stick to the problem at hand?

    D

  • Give em a GRE practice test.
  • First off, throw all the resumes with certifications in the circular file. Seriously: that's the first sign they don't know what they're doing.

    After that, you're back to the main problem of interviewing technical candidates. To do this successfully, you need at least one good technical person to participate in the interview. That person should be able to ask questions about experience and pose scenarios that probe the candidate's depth of knowledge. The interviewer also needs to be nimble enough to move

    • by JonJ (907502)

      First off, throw all the resumes with certifications in the circular file. Seriously: that's the first sign they don't know what they're doing.

      This is complete and utter bullshit. My last boss had a boatload of certs and managed offices for ca. four countries almost singlehandedly, he would easily run circles around your sorry administrative ass all day long.

  • I think you're looking in the wrong direction here. You've seen the resumes -- you know who is qualified. Maybe bring up a couple of technical questions to verify their qualificaitons. But the way my company interviews, you're not worried about that. You want to find the best worker. Our interviews are almost 100% "what would you do" or "how did you handle x." In my experience, it makes dealing with the people who do end up getting hired a whole lot easier.
  • Play buzzword bingo with the CV:

    ie, find the 'resume term-of-the-week' and ask them about it: if the candidate can speak about it intelligibly, they know something about it, and increase the difficulty.

    in the past, the big buzzword was Java. Now it tends to be Python.

    I sit on the interview committee for my group. I look over all resumes of candidates I interview before they step into my office, so I know what's written and what they 'claim to' know. I'll ask questions, and if the candidate has something

  • Speaking as somebody who just got a bunch of certifications in several areas to fill up the time during unemployment; certifications don't mean shit. Yes, they can get you hired more quickly, but they are no measurement of competence.

  • Are you qualified? (Score:2, Interesting)

    by twistedfuck (166668)

    If you have to ask how to interview software engineers for competency, maybe you are not qualified to be interviewing software engineers.

    Good experience is far more important than any certification. Wanna see if they can design and build software? Give them a problem that requires they outline a design and then have them code up specific pieces like DB table schema, table queries, classes, templates etc.

  • If you get to the blame allocation phase of your project, and I really hope you don't, then that's when certificates come into their own.

    You can come up with the most perfect slashdot-based system of determining LAMP competency, but when push comes to shove, what a manager wants to see is commercial certificates.

    I know and you know that they don't mean shit, anyone can pass them. But they're official bits of paper which means they're *quantifiable* and *indisputable* which makes them gold.

    So the question yo

  • I usually like to ask questions like:
    How do you start/stop web server?
    Where are the standard debug logs for web server, php/perl?
    What's the difference between threads and processes?
    If the average http connection lasts 1s, what is the maximum number of connections you can serve over 1 hour with a pool of 50 sockets?
    Then I have them write a short piece of code in whatever common language they like for sorting.
    Then I give them a basic mathematical equation and have them write the code to implement it.
    Next I as

  • PHP/MySQL web programming is a low-end job. So you want second-rate people who aren't totally incompetent. That stuff isn't rocket science.

    You may be better off finding some people who will fit in well with your organization and have some interest in the business, and have done a little web development. They can learn PHP/MySQL in a month or two. They're likely to come up with something that makes business sense.

  • Prior to employment you can only measure Potential. Actual competency can only be measured when they actually perform their jobs. Keep the good ones, cut the bad ones loose.
  • Ask them to speak about some site they have done, and they are proud of.

    See if they are able to a) Tell specifics about the implementation and b) Communicate them adequately.

  • by tirk (655692) on Friday July 16, 2010 @01:01PM (#32928104) Homepage
    I've hired a couple programmers in the past and there is always one question I ask that I have found sorts out some of the better candidates. The question - "I've just requested you to do some task and you find you really haven't worked out that type of task in the past and aren't fully sure the best approach. What do you do?" The answer I'm looking for is basically they'll let me know that's a new area for them, but that they'll go out and find examples of that type of task and research it and find out how to make it happen. If they say anything along the lines of having me help them, or ask to go to a class, or anything along that line it will automatically set up red flags. And of course, just answering the question "correctly" doesn't automatically mean they are good at doing that, but you can dig deeper into how they'd research it, etc. I've been a programmer for over 25 years now and while there are certain core things that a computer can do and some it can't, the actual processing of it is what matters and it's nearly impossible for you to remember every little detail of every language and system, the real power is in knowing where to look to quickly get your answer. And as a final important talent, a person needs to be good at understanding and conversing specifications from someone that is not technical. Just my thoughts on what I've looked for....
  • by FuckingNickName (1362625) on Friday July 16, 2010 @01:02PM (#32928112) Journal

    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.

    • by cenobyte40k (831687) on Friday July 16, 2010 @01:42PM (#32928678)
      I have always said that being an engineer (Programmer) is less about what you know and more about knowing how to look it up. I have been a system engineer for going on 20 years now and I still look up 90% of the stuff I do. I could muddle through many of the tasks but why would you do that when I can look it up, get it done faster and have a higher chance of success? I think you really hit the nail on the head with this testing people in isolation thing. It doesn't tell you anything about how well they work in groups, how quickly they can get through reference material (I would suggest that looking it up is my sharpest skill), thus not really telling you anything about problem solving in the real world. Testing doesn't show you anything, the worst engineers I have ever worked with had a list of certs as long as my arm. The best ones didn't have a cert or degree or anything.
  • Ask the candidate to give a short presentation on a software project they worked on in the past. they can describe database design, frameworks used, reasoning behind programming environment choices etc. You'll get a good feel for their technical knowledge, grasp of a project and communication skills. Have someone in the interview who can throw technical Qs at them from time to time.

  • Technical ability isn't going to help nearly enough if they don't understand software engineering principles. What SDLC methodologies have they used? What do they like and don't like? What source code tools do they like? What is Brooks' Law? How do they work with QA? Have they supported software they have released or has it gone to another team?

    And understand their answers. Say they don't like the daily Scrum in their AGILE environment. Why? Is it because it's pointless in that environment - no rea

  • Development tests are very useful in that they can give you an idea of how someone works and what kind of quality to expect. Tests can be done in house or you can let them take them home if you'd like.

    Provide a set of tasks and ask that they provide, for example, brief technical documentation, the code, database schema, and anything else relevant. Intentionally provide a task or two that doesn't have enough information - see if they ask for clarification (good thing) or just make up whatever they please (ba

  • The whole idea of LAMP is that it's an easy-to-learn, easy-to-deploy stack. Any competent developer should be able to learn this, quickly. Even if you could assign a "LAMP Competence Metric" (say a 0-10 scale) to a person, a competent developer who is a 2 in LAMP will be a 9 much more quickly than an incompetent developer who is currently a 6.

    When I hire coders, I like to see how quickly they can understand a system via standard UML architecture diagrams. I like to see if they can implement a basic logic

  • Given how you and perhaps your organization seems to work, you should just look for developers who are good at going to forums and asking other people for advice on how to do their job.

  • I'd be pretty dubious of a PHP programmer with a cert. You probably just want to know if they can think. To that end programming exercises are good. Just give them a fairly simple task and 2 hours or so. For LAMP, I'd probably just ask them to build a simple CRUD contact management app. Just ask for FIRST_NAME, LAST_NAME, and EMAIL. Allow them to install tools they need.

    This tests that they can:

    1) Create a table
    2) Create a web page
    3) Know the proper times to GET and POST
    4) Know SQL syntax and how to used pr

  • Give them a bug, in your real software product, that traces back to an operating system level setting, and does not initially expose this in the error. (for instance, say max. open files is set to 20 on the box, and a php script opens 100 file handles and doesn't close them) Tell them to trace this, and suggest a fix, and give them a couple of hours. If you can debug an environment you don't know, it proves that you're able to understand new concepts, and even trace weird bugs in them. Any monkey can prog
  • HIRE HIM! (Score:3, Insightful)

    by zill (1690130) on Friday July 16, 2010 @02:09PM (#32929134)

    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.

  • by denmarkw00t (892627) on Friday July 16, 2010 @04:29PM (#32931588) Homepage Journal

    The company I'm at now had an interesting review process: I sat in a cubicle with the two lead developers. One asked me matter-of-fact questions: what would you do in x situation? What is your proficiency with the Linux command-line? How long have you used PHP and how have you used it? Have you ever configured a server? The other programmer, however, had some more interesting questions - bringing up ridiculous scenarios that had simple answers, yet the question itself was laden with red herrings to make you really think about it.

    After this interview process, it came time to do a couple quick programming tests: fizz/buzz is a standard here, just to make sure you're sane. There is also a simple "Build an HTML form that submits here, do x y and z with the returned data." Simple tests are usually the best, as we have a sort of wall of shame for people who did not have any clue what they were doing. Example: One person asked if they could install Dreamweaver so he could do the Fizz Buzz. Another wrote in the comments to his HTML form test: "

    <!--another API i dont know. Lets see if this gets the job done --!>

    <form action="testMe">
    <form textfield = "username">

    </form>

    These are the people you don't want to hire. I understand you're looking for something perhaps more rigorous, but a set of simple, common sense tests is a great starting point. Have them grep a file for a pattern - did they use and/or understand regular expressions? Did they use them when they didn't need to? How about making an .htaccess file that does some basic functionality. Have them create a table with an auto_increment'ing ID and write a form/PHP page to store information in it (and see if they know about basic data sanitizing). And of course, Fizz Buzz!

    Weed out the incompetents/overachievers and then take a few for a test run - make sure they understand and conform to your coding standards, make sure they have the ability to learn and understand your processes (how your MVC works, a general understanding or willingness to learn your DB structure, etc).

It is not for me to attempt to fathom the inscrutable workings of Providence. -- The Earl of Birkenhead

Working...