How To Test A New Programmer

35 replies
Hey guys, basically I'll be hiring a full time programmer overseas.

I need to run interviews and test their programming skills before I hire them.
This will be for php/ajax/java/mysql.

The problem is I'm not a programmer and have no idea how to test them or what to ask.
Any advice?
thanks!
#programmer
  • Profile picture of the author Aegir
    Get them to sign up for odesk if they are not already on it, then get to take the appropriate tests. Tests are free and they can only retake a test once every 30 days

    Qualification Tests for Freelancers & Programmers - Certifications for Outsourcing - oDesk

    Free oDesk Skill Tests - oDesk Help explains how it works in more detail

    Also ask them what programming methodology they use, agile(XP/Extreme Programming) is the answer you want for reasons why read this.

    Roger
    {{ DiscussionBoard.errors[1743717].message }}
    • Profile picture of the author mywebwork
      The advice you've been given is sound, I especially like Rogers suggestion about the oDesk certification test.

      However I did think that this statement was not necessarily accurate:

      Originally Posted by Aegir View Post

      Also ask them what programming methodology they use, agile(XP/Extreme Programming) is the answer you want
      Don't get me wrong, it's an excellent methodology and it's certainly a good answer. But speaking as someone who has been in IT since the early 1980's I have seen a number of methodologies fall in and out of favor, and not all methodologies are applicable to all projects.

      It is also possible that a foreign programmer may be capable and talented but may not be aware of this methodology, to dismiss him/her on just this question seems a little unfair.

      One simple question may be to ask for examples of their previous work. This also isn't necessary the definitive question, I myself have developed a huge AJAX-based database application but it is on a password protected website used by teachers and students, so I could not display it in my own portfolio as it contains confidential information. A candidate for your job may be in the same position, however he/she may also have examples on the public Internet that they could show you.

      When I was being considered for the programming position that brought me to Hawaii in 2001 I was asked to submit code samples of my work, which in turn the senior developer on the project looked over to assess my capabilities. If you have a friend or associate who is a capable programmer you might enlist them to look over samples submitted by your candidates. Look for code that is well written and well documented, so that other programmers can work on it in the future.

      Best of luck in your search.

      Bill
      {{ DiscussionBoard.errors[1744732].message }}
  • Profile picture of the author chraszher13
    There's a faster way to test your programmer.
    You can ask for a trial to test if they are capable of doing the job.
    Provide a project enough to determine if they have the skills or not.
    {{ DiscussionBoard.errors[1744549].message }}
  • Profile picture of the author machine11
    Thanks so much
    I will do a combo of the above.

    1)Will use odesk to test

    2)Will ask for code samples and ask a friend to review it

    Thanks again, this is short and simple and will let me test 10 programmers quite quickly!
    {{ DiscussionBoard.errors[1744859].message }}
    • Profile picture of the author BrianLeanza
      As long as experience and the intuition that comes with true experience cannot be measured, you will never be able to tell if somebody is a good programmer by simply sending him / her through some tests or send you some code samples.

      A programmer shows his quality on the job. Of course, tests, samples, etc, can help you sort out those that are totally unqualified in a first step. Yet, programmers are not machines. I have worked on projects after which I was happily looking back at the result and deemed myself nothing short of brilliant, AND I have had projects where I had to realize that I simply did a terrible job.

      There might be those programmers that are brilliant day-in and day-out, but then, I dare say you will hardly find them bidding on job offers on portals like rentacoder.com.
      {{ DiscussionBoard.errors[1745273].message }}
      • Profile picture of the author mywebwork
        Originally Posted by BrianLeanza View Post

        As long as experience and the intuition that comes with true experience cannot be measured, you will never be able to tell if somebody is a good programmer by simply sending him / her through some tests or send you some code samples.
        Brian, I do agree with you. However this is no different than any other profession - hiring a competent designer, lawyer, architect, waiter or mechanic is equally difficult and cannot be completely based upon their ability to pass a test or samples of their previous work.

        But where else do you start?

        I have hired several programmers in the past, and you generally look over their CV's to weed out the obvious unqualified ones. Then there is the interview process, which in the OP's case is difficult as they are in a foreign country and at best could be interviewed by phone or via Skype.

        Even after a rigorous interview process we have hired excellent programmers and ones who simply were not cut out for the job. It's just the way it is.

        And you may even find them on rent-a-coder, stranger things have happened. Brilliant people still need to work and still need money, and may be in a situation in which they register on rent-a-coder or oDesk to try and bring in more income.

        The hiring of anyone, programmer or plumber or even astronaut (remember Lisa Marie Nowak?), is never an exact science. You won't really know if a candidate is suitable for a job until you let them show their worthiness.

        The suggestions we gave the OP are all valid, once he/she hires someone they will soon see if the are a good fit for the position.

        Bill
        {{ DiscussionBoard.errors[1745389].message }}
  • Profile picture of the author Steve Wells
    Maybe you should hire MyWebWork, Bill, he knows his stuff, I am not sure if he has open time, but if he does he can help you I am sure.
    Signature
    Need Custom Graphics Work? - Message Me For A Design Quote!
    {{ DiscussionBoard.errors[1745713].message }}
  • Profile picture of the author Neil Morgan
    php/ajax/java/mysql
    When I read this, I wondered if you actually meant Javscript, not Java.

    They're VERY different things so you need to be sure.

    Cheers,

    Neil
    Signature

    Easy email marketing automation without moving your lists.

    {{ DiscussionBoard.errors[1745824].message }}
  • Profile picture of the author weaverIT
    Banned
    [DELETED]
    {{ DiscussionBoard.errors[1747812].message }}
    • Profile picture of the author emaildeliverypro
      Banned
      [DELETED]
      {{ DiscussionBoard.errors[1750029].message }}
      • Profile picture of the author Peter Jones
        There some good points here, I would suggest you try and avoid hiring a programmer overseas although the costs are quite low. Have you considered putting up an advert locally, if you hire someone by actually interviewing face to face it helps. There may also be a communication barrier in the long term.

        Always consider previous work on projects and testimonials from clients who have used the services. Without any knowledge in programming it will be quite difficult in finding the ideal candidate and you could be wasting a lot of money if things go wrong.

        Perhaps search these forums for anyone who may be able to help you hire the right person.
        {{ DiscussionBoard.errors[1756332].message }}
  • Profile picture of the author youthsoccer
    Try asking him the about the basic concepts in Programming like Variables, Constants, Arrays, Objects Oriented Programming. These things will make you sure whether he/she can work with you.
    {{ DiscussionBoard.errors[1770504].message }}
  • Profile picture of the author Angel Anderson
    We ask the person to complete a sample project, a small project that we provided to all candidates. I look for how clean, functional and how well instructions or comments are.
    Signature
    The Strategy Specialist Helping You Achieve Your Goals Via Training And Support contact me via http://www.angelanderson.com
    {{ DiscussionBoard.errors[1770518].message }}
  • Profile picture of the author Bruce Hearder
    I agree with one of the previous posters, which stated that if you are a non-programmer yourself then you souldn't be running a programmer remotely.

    I am a programmer (have been for 20 years) and I still find it dificult to completely understand what a client wants, even when there are in the same town as me.

    People commonly make vague statements in programming briefs, things like :

    "I'd like the menu thingy" to look a bit like Yahoo's menu"

    What does that mean?

    The word "like" immediately implies it would be nice but not essential, and what bit of Yahoo menu did they like?

    So, as one of the other posters suggested, I would recommend going through a project-manager that can handle the development for you.

    Sure it gonna cost more, but I'd guarantee that you will atleast get the project done, done close to the timeline and working the best.

    Too many projects start off with the best of intentions and go completely "off the rails" really fast.

    Take care

    Bruce
    {{ DiscussionBoard.errors[1770595].message }}
  • Profile picture of the author machine11
    Thanks guys,
    I probably should have mentioned that I already have a local office abroad with a project manager/designer which is very reliable. He isn't a programmer but has managed many projects before and will be working locally with the new employee in the same office. I also have a few reliable programmers that take care of me but I'm looking for someone in house full time as well.

    After listening to a few people, what I'll do is the following:
    -have applicants pass the tests on odesk.
    -have a developer I trust review the coding examples required (since my project manager cant review the code)
    -have live phone interviews
    -check references thoroughly
    -give the best one a paid project

    and take it from there
    thanks
    {{ DiscussionBoard.errors[1774017].message }}
  • Profile picture of the author John Romaine
    Signature

    BS free SEO services, training and advice - SEO Point

    {{ DiscussionBoard.errors[8172180].message }}
  • Profile picture of the author dad2four
    testing shmesting. Have him show you or someone you know something he has built and talk about it.

    Start him on small projects and see if you like what he produces.

    Answering questions isn't half the equation. it's like a relationship, what will he/she be like after the honeymoon period is over? You won't know until the honeymoon period is over.

    Just my .02. I've been hired many times and I've interviewed many times. If you have someone in mind just try them out. Keep your risk low, pay by the project and start small. You will miss many great programmers if you focus too much on "testing" or "interviewing".

    Personally, I have passed up many opportunities because someone wanted to test me. There are endless opportunities and I'm interviewing who I will work with as much as they are interviewing me.
    Signature
    {{ DiscussionBoard.errors[8174073].message }}
  • Profile picture of the author admc516
    It all boils down to being book smart versus being good in practice... I've interviewed/met many with computer science degrees who may know the ins/out of a book... but can't even operate within a Windows environment... if it takes you more than 2 seconds to display the start menu and/or don't know how to use ALT+TAB... those things clue you in as to the type of programmer you're dealing with... now obviously if you're outsourcing abroad... a little trickier... and if you don't have a programming background to know/gauge how long a task should take... you may end up overpaying for someone lack of speed/efficiency.
    {{ DiscussionBoard.errors[8176684].message }}
  • Profile picture of the author kenzo22
    If you are not a programmer, you won't know if someone is good or not. Just find some experienced programmer and pay him to select good candidates. There are too many aspects of programming, to be possible that a non-programmer would be able to check them.
    Signature

    Backup and maintenance plugin for WordPress
    www.wpguards.com

    {{ DiscussionBoard.errors[8177209].message }}
  • Profile picture of the author seasoned
    The idea about asking the methodology, and figuring that agile means they are PERFECT and otherwise they aren't is really DUMB! Some good programmers won't even know the term, and some bad ones certainly will.

    The BEST way is to know the subject YOURSELF, and test them on ACTUAL KNOWLEDGE! Second best is to have a trusted person that is able test them. The third is to subject them to a GOOD written test. FOURTH would be giving them a sample. WHY is the sample the FOURTH? It takes more time. Fewer may do it. You can't judge the work if you aren't a programmer. You may miss something, and they may STILL not be able to do the work.

    BTW I have interviewed over 1000 people, for what it is worth.

    Oh, and DON'T think you can get one of those interview books! WHY?

    1. They ask the WRONG questions!
    2. They often test meaningless stuff!
    3. They don't test some necessary stuff.
    4. There are many ways to do something.
    5. There are many ways to relate it.

    You get the idea. My company tried to get me to list questions, and I found that THEY made some bad choices. ALSO, a person may give you a wrong answer and you find they just related it wrong. That is ESPECIALLY likely with people that have multiple languages, etc... You have to try to coax the correct answer out without actually giving it to them. Some show it was a misunderstanding, and get the job! OTHERS fall flat on their face and will never get it.

    Steve
    {{ DiscussionBoard.errors[8178184].message }}
  • Profile picture of the author webcosmo
    before you hire somebody oversees you should really consider testing with part time.
    {{ DiscussionBoard.errors[8185857].message }}
  • Profile picture of the author Brian Tayler
    Don't take any one thing as a deal breaker. For instance I've been a programmer since 1990 but suck in test taking scenarios. However want me to debug someones code or write something for you on the fly? No problem.
    {{ DiscussionBoard.errors[8190076].message }}
  • Profile picture of the author seasoned
    I hate to admit it, but brian is right. That is one reason I haven't simply created a written test, or put it on the internet.

    Steve
    {{ DiscussionBoard.errors[8190290].message }}
  • Profile picture of the author crescendo
    I would suggest you hire someone by actually interviewing face to face .Always consider previous work on projects and ask them about the basic concepts in Programming like Variables, Constants, Arrays and also ask them to code you a project.Make sure you get programmers who are fast learners and clearly identify their weaknesses rather than thinking they know it all.you should really consider testing before you hire somebody.
    {{ DiscussionBoard.errors[8193159].message }}
  • Profile picture of the author RobinInTexas
    Heads up guys, the OP has been gone completely from the forum for over 9 months, and for some unknown reason someone
    raised this thread from the dead after 40 months with no posts


    No one with an interest in the question is participating
    Signature

    Robin



    ...Even if you're on the right track, you'll get run over if you just set there.
    {{ DiscussionBoard.errors[8193537].message }}
  • Profile picture of the author AlexMand
    Hey guys, maybe you should try some automated online test like on testdome.com...I've used this testing service and they have pretty interesting customisable tests which give good measure of programmer's skills, and also save your time for interviews...
    {{ DiscussionBoard.errors[8940946].message }}
  • Profile picture of the author r0dvan
    In order to test someone completely is to know about the topic.
    In other words, if you dont learn code, then you wont know who really knows.
    Signature
    LeadGen.tools - Lead Generation Search Engine from any Network and many useful tools. FREE trial.
    {{ DiscussionBoard.errors[8942221].message }}
  • Profile picture of the author sham2
    You can see programmer work and take online interview through Skype or other resources of internet. Because there are many freelancer that have no such experience that they show on their profile. Also asked some basic and advance level question of PHP form his/her.
    {{ DiscussionBoard.errors[8948604].message }}
  • Profile picture of the author MonopolyOnline
    I agree with Brian regarding written tests.

    Written may disqualify the best candidate.

    Try using a freelancing service and hire at least three developers for this test.

    One Page Email Submit:

    Step One...

    Pay $25(?) to each developer for providing you a working 'one page' Contact Form with captcha (spam prevention).

    A. If the "captcha" is not correct, it displays an error message "please enter Security Code", as well as, allowing the visitor to re-submit the message WITHOUT having to re-enter their information.

    B. If "captcha" is correct, the form must capture the submitter's information into a database.

    C. An email is sent to the owner's email address (that's you).

    D. Then the user's information is retrieved from the database and is displayed back onto the webpage with a "email has been sent" message.


    This a very standard function/feature of any website.

    Any developer should be able to quickly do this.

    It shows database input/output, data retention, emailing, and some validation testing.

    Once you get the code, try and read it.

    It should make sense to you even if you do not know the programing language.

    Step Two...

    Take each code from each developers and send it to the other developers for comment and improvements.

    Have them improve upon the codes if possible.

    What you are trying to do here is see how flexible a developer is in using another developer's code.

    Chances are you will be using plugins, legacy systems and such which will need to be modified.

    And finding a developer who can rewrite other people's code will save you money and headaches in the long run.

    A good developer is nothing more than a good plagiarist.

    My two cents.

    P.S. The definition of "Creativity" is the ability to hide one's resources.
    {{ DiscussionBoard.errors[8986392].message }}
  • Profile picture of the author robertsullivan1
    I think you should check his logical and reasoning view that how much deep he/she would think. Secondly he should have understanding of oops concepts.
    {{ DiscussionBoard.errors[9005596].message }}
  • Profile picture of the author jasonracer
    there are few recruitment testing solution which focus on testing programming skills.
    the questions are randomly selected, depending on the languages and areas you want to test, and the invitation for the test is sent to candidates by email.

    these questions include coding challenges in order to test the real-world programming abilities. some are subscription based and others are priced per candidate (eg. tesdome.com which costs $10 per tested candidate)

    I think this is the best way to filter candidates, especially for those who are not so technically savvy themselves.
    {{ DiscussionBoard.errors[9133965].message }}
  • Profile picture of the author wpbasit
    Interview them ( you can choose questions from any interview form), check their portfolio.
    {{ DiscussionBoard.errors[9151544].message }}
  • Profile picture of the author Joe2014
    Late reply, but here is my approach to conducting technical interviews:
    1. Use a quiz to automatically check candidate's theoretical knowledge (programming language, technologies, API, etc);
    2. Use a small coding task to check candidate's coding skills;

    Both those steps could be done manually by using paper of whiteboard. Also there are services such as
    1. codility.com for tasks
    2. skillbox.io for technical tests.
    {{ DiscussionBoard.errors[9534019].message }}
  • Profile picture of the author CoderForLife22
    I would simply ask for a trial test.

    Also on odesk you can file a dispute if a programmer cannot do the job correctly. Another benefit with odesk is that you do not have to pay the contractor until the job is complete and you are happy.
    {{ DiscussionBoard.errors[9535895].message }}
  • Profile picture of the author pinkwhale
    Banned
    give him some practical work related with programming and put him programming questions.
    {{ DiscussionBoard.errors[9564779].message }}
  • Profile picture of the author Member8200
    You can ask someone who have an advance programming skills to do that job for you. Testing a programmer's skill requires a good programmer to test them also.
    {{ DiscussionBoard.errors[9568015].message }}
    • Profile picture of the author TishTopicsTV
      All of these are great replies and certainly worthy of consideration.

      I would also add from personal experience, it is important to test for communication too.

      It might be worth it to do a couple of things here.

      1. Freelancer (the new owners of this site, I think) have a certification program. You should take it as a seller, and learn the questions they ask. You can ask some of the same things. That being said, book knowledge does not also translate to practical knowledge, so step number

      2. Would be to provide them with a simple code assignment. Provide that to the top three candidates and test for how well they communicate with you, timeliness, functionality of the final project. Do not let each of them know that you are doing this. In this way, they will all give you their real efforts because they are unaware they are in bidding competition for your final work.

      3. Remember, you must be organized and know what you want too, which is hard to have in a changing technological world. The more changes and certainty you have the crappier the project is.

      I have been on your end before. I am a business logic person who is always translating my needs to the machine logic programmer and I know that things must be done in a particular way, or it is really not done very good.

      Hope it helps
      {{ DiscussionBoard.errors[9591476].message }}

Trending Topics