Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Businesses IT Technology

Programming Job Skills Test? 189

eclecticgeek asks: "I've recently finished a CS/SD degree at uni and the interviews are starting to come thick and fast. I've yet to have a skills test for any of them, and it's only a matter of time before I do. I'm hoping to do one this week and I will get the choice of language. The position is quite broad and they're more after competent programmers in general, rather than any one specific language. So I'm wondering, have you done a developer skills test? What type of things did you get asked?"
This discussion has been archived. No new comments can be posted.

Programming Job Skills Test?

Comments Filter:
  • Skills Test (Score:3, Informative)

    by moontumbohotmail.com ( 697100 ) on Monday January 17, 2005 @06:48PM (#11389680)
    For my current job, the test was over C++, Java, Perl, and PHP. Some of the concepts that were covered included Linked Lists, Queues, Stacks, arrays, and general CGI knowledge. I think a lot of test will focus on a mastery of the skills that a person "should" take from a college education in CS.
    • I would be hesitant at C++ or Java. Perl, Python or Riby I would feel more comfortable in (given the concept in a skills test is assessment in a short space of time, a conceptually 'nice' RAD language (that can be programmed quickly as well as designed quickly) would win over stock languages).

      However given a choice of language, and a desire to get the job done, did you consider APL or Brainfuck as a method of 1-upmanship?
      • by Anonymous Coward
        "I would feel more comfortable in (given the concept in a skills test is assessment in a short space of time, a conceptually 'nice' RAD language (that can be programmed quickly as well as designed quickly) would win over stock languages)."

        That would be Flowdesigner [sourceforge.net].

        Failing that there's Lisp [cbbrowne.com] or Smalltalk [cbbrowne.com].
  • Interview questions (Score:4, Informative)

    by prostoalex ( 308614 ) * on Monday January 17, 2005 @06:49PM (#11389687) Homepage Journal
    Not exactly a skills test, but on TechInterviews.com [techinterviews.com] I collected a bunch of questions from recruiters and those who interviewed at tech companies. Since the site was up, there were a bunch of questions coming from people just sharing their job interview experience, but recently a lot of that is coming from India. I noticed that "fresher" type of questions used by some large-scale employers in India are pretty rudimentary, so I am not sure whether the applicant is expected to be a college graduate or just a high school diploma holder. So pick and choose, basically, should be a good way to refresh skills, if not self-test.
    • In general, tech jobs are ridiculously competitive in India. I couldn't imagine they would hire any programmers that didn't have at least a bachelor's degree. They have 1.04 billion people to pick from over there, so even the entry-level stuff requires an impressive resume.
      • Yeah, but when 600 million didn't even finish high school because they were working in the fields at 13, that fairly narrows the pool.

        Also, the really good people come the the US. If you're Indian and on-par with people here, why would you work for 20KUSD? You want to come to the US.

        There's a guy from india 2 cubes over from me, and he said that in india, they throw you in front of a pc with a book and they say: Do it. No training, no team building. He says it's brutal. That's why he came here.

        I bet ther
  • Can't prepare (Score:2, Insightful)

    by New Breeze ( 31019 )
    You can't prepare for the kind of BS that can get thrown at you in skills tests. I've seen things that you'd have to have the C++ Standard memorized to know, quirky product specific things they want you to know, and one place that set me down with a bug report and a development box with their code on it and wanted to see how I'd approach it...
    • by Smallpond ( 221300 ) on Monday January 17, 2005 @07:43PM (#11390218) Homepage Journal
      "one place that set me down with a bug report and a development box with their code on it and wanted to see how I'd approach it..."

      That wasn't a real interview. They just couldn't find that one nasty code bug so they brought people in until someone found it.
    • Re:Can't prepare (Score:2, Insightful)

      by douthitb ( 714709 )
      I don't agree that it's impossible to prepare for something like this, and hopefully most companies aren't quite as anal as what you are describing (though I'm sure that some are).

      My company typically asks pretty broad technical questions during interviews. They try to cover general topics such as database design, OO design, and maybe a little bit that is language-specific, depending on the position.

      Unless you are interviewing with a company like Google, I think they are just trying to make sure you di
  • sort of... (Score:2, Interesting)

    by bblazer ( 757395 ) *
    I once got asked what was on page 71 of the "Camel Book." Most just wanted to see code samples, and asked more about how I would handle certain tasks. I guess they were more interested in how I thought about the algorithm or the problem at hand. The actual language came second.
    • Re:sort of... (Score:2, Redundant)

      You were asked what was on a specific page? Please tell me that you're kidding...
      • Re:sort of... (Score:3, Interesting)

        I've never been asked certain questions, but I can tell you without looking that the printf specificiers are on page 151 of K&R C in the first edition, and on page 155 in the second. I used to forget all the various format specifiers and rules. I haven't used them in so long, that I don't care any more. However, I still remember the page number.

        I used to know exactly the page that function pointer syntax was described in the Harrison and Steele C book (Not sure if Harrison is the right guy, but Ste

        • There is a difference between remembering what is on a specific page because it is one you often had to use and being asked, out of the blue, what is on page X of book Y.

          Granted, in all likelyhood, the real reason for asking the question was to see what the op would do when asked an impossible question (which is actually done quite a lot), but it's not the same situation that you describe.

          And just for the heck of it, I grabbed my copy of the camel book (2nd edition). Page 71 deals with pattern matching.
          • In this case, there really isn't. Perl is for pattern hashing, so that's probably one of the most commonly referred to pages in the world.

            If I was a perl-head, and that was my reference material (which it would be), I'd have known the answer in an interview. Especially if I had just started learning perl. (I know some perl, but not enough to actually read up on it. C and C++ interest me enough that I consider reading technical documentation about them "fun").

            Heck, that was my guess as to what it was

  • zerg (Score:3, Informative)

    by Lord Omlette ( 124579 ) on Monday January 17, 2005 @06:50PM (#11389707) Homepage
    I'm guessing How Would You Move Mt. Fuji [amazon.com] would be the definitive book on the subject. It's been covered here before [slashdot.org]. That review is from 2003, so it's not a stretch to suspect that it's filtered out to all the HR llamas...
    • I was upset that I didn't get asked that. My answer, of course ...

      I would simply update the documentation saying it had been moved. For 99.5% of our users that would be enough. For the remaining 0.5%, anybody that physically went to the new site and didn't find Mt Fuji (and called tech support to complain) I would just send them the original documentation.
    • I'd just unmount it, then update its fstab entry to the new location.

  • Skills tests are as unique as the interviews that contain them. What interests me, however, is that you say you are getting tons of interviews. Are companies hiring, again? I gave up on the IT industry last year after seeing the rotten low-hanging fruit that was available. It seemed the only open jobs were the ones that no one wanted.

    • I find that kind of surprising too. Several of my friends are graduating this year and they are having problems getting interviews as well.

      There just doesn't seem to be a lot of positions that I've seen lately which aren't either senior level or "entry level" where they want 3-5 years of experience. There are a few exceptions, but not many (here, at any rate).
  • Don't fret over this (Score:4, Interesting)

    by marcus ( 1916 ) on Monday January 17, 2005 @07:06PM (#11389865) Journal
    Sometimes it is not the code that counts, but your approach. Are you applying for a software "design" position? If so, then show some evidence of designing something before you code. Consider the position you are targeting. Application software? Embedded firmware with restricted resources? Is pure speed important? Code size? Maintainability? Portability? Ask for a more detailed spec if what is given is too vague, or just put comments in your code showing where things should/could be changed if your interpretation of the spec is wrong.

    If you are competent, you'll be OK. Every coding position I've ever had included a skills test, except one. The one exception was for a position at a company that I had already worked for in the past...
    • by kraut ( 2788 )
      Make sure you only put stuff on your CV that you actually know - I hate nothing more in a candidate than claiming skills they don't actually have. If you only know C, and have just looked at a C# book, that's fine - as long as you don't pretend to be a C# expert. Otherwise you will be found out, and you won't get the job.

      • After a while it doesn't matter any more, it takes less time to pick up a new language to a generally competent level (the level of most programmers I know) as it does to fit into the new job.


    • Are you applying for a software "design" position?


      I should hope he isn't considering he is fresh out of college...
  • I've done a few (Score:4, Interesting)

    by jd ( 1658 ) <imipak@ y a hoo.com> on Monday January 17, 2005 @07:13PM (#11389924) Homepage Journal
    Most have asked for samples of code. Typically, this has been where the requirements were for things like PHP, ASP (bleagh!), Javascript and other web-based stuff.


    Jobs that have required "application" programming have typically set specific tasks. One I did wanted a search engine for web pages.


    Yet others have involved very specific technologies. These are usually but not always in the form of a certification-style test. One that I did of this sort involved the real-time aspects of the ACE/TAO implementation of CORBA.


    It depends a lot on the company as to what they are actually looking for. Bleeding-edge companies are likely to be more interested in novel solutions, for example, because it shows you can think and not just copy. ROTM companies, on the other hand, want things done fast and never mind the details. Any company that brags about ISO 9000 is likely a stickler for standards, whether the solution is any good or not.

  • General Logic (Score:5, Interesting)

    by web_boyo_in_sac ( 805076 ) on Monday January 17, 2005 @07:14PM (#11389940)
    I got this at my last job as part of my second interview, thankfully it was a take home "quiz".

    "You are stranded on a deserted island, thousands of miles from nowhere you are forced to survive with what you have.

    You have a handful of nails, a hatchet with a hammer head, 100 feet of rope, a large lens and a few dozen square yards of sail cloth.

    The island has a variety of birdlife, fishing and crabs, but mostly inedible seeds, very acidic but edible berries and a large grove of coconut palms.

    One side of the island seems to be geothermally active with several hot springs and some sulfer smelling vents, and a large variety of volcanic rock, obsidian and flint along with some hematite and copper deposits.

    Now given this very restricted and scientifically unplausible situation, how would you survive?
    Please take as much time as you need and give as thorough an answer as possible."
    • Are you serious? (Score:2, Interesting)

      by Anonymous Coward
      This sounds like the episode "Arena" from Star Trek (The Old Series).

      With nails, hatchet, rope and cloth you could probably build some sort of raft but whether that would be sea worthy is another matter.

      Probably would be a mistake to eat the berries as they would probably rot your teeth and then you wouldn't be able to eat much of anything. Perhaps, there is some other chemical use for acidic berries?

      You could probably build a crab trap with the rope.

      You could probably start a fire with the flint.

      • Perhaps, there is some other chemical use for acidic berries?

        Using the acidity of the berries in conjunction with the nails, you could make a battery of some kind. Probably not enough to do much given your other equipment, but its at least a use.
        • "Using the acidity of the berries in conjunction with the nails, you could make a battery of some kind. Probably not enough to do much given your other equipment, but its at least a use."

          Yes, yes. You could build some sort of very primitive crystal radio using the hematite and copper. Additionally, you might be able to power a transmitter by using the berry acid as a battery. Of course, even if you were able to reach someone by short wave radio or whatever you might not be able to tell them where you

    • Someone's been playing "Return to Mysterious Island" a bit too much lately ...
    • I'd look for a volleyball, paint a face on it and name him Wilson, and then talk to him and slowly go crazy...
    • Re:General Logic (Score:5, Interesting)

      by GlenRaphael ( 8539 ) on Monday January 17, 2005 @11:42PM (#11391912) Homepage
      I'll take a brief stab at it.

      Immediately, you need water, food and shelter. Shelter is the easiest: tie a length of rope between two palm trees, drape the sail cloth over the line and weigh down the corners appropriately; you've got a basic pup tent or tube tent to (somewhat) protect yourself from the sun and the wind.

      You can get water from coconuts a la Cast Away. Use the obsidian to fashion spear heads for fishing, and the flint to sharpen your axe. (You can actually catch fish in a river with your hands alone - I'm not sure if that applies here. In any case, tools are a good thing. ) Crabs should be pretty easy to catch with the help of a cup or a basket or a spear.

      Use the "large lens" to start a fire for warmth at night and to cook the fish. And perhaps to look for ships.

      Medium term: Build a big SOS sign and have moss handy to throw on the fire for smoke to signal any passing plane or boat. Build a more permanent shelter. Explore the entire island and inventory everything on it.

      Long term: Build a smokehouse. Find ways to accumulate and stockpile excess water and food and firewood beyond your daily needs -- especially water. If no rescue boat shows up, ultimately build a raft or sailboat and take your chances.

      Eat the berries every once in a while so you don't get scurvy. I don't know enough metalurgy to do anything with the sulfer/hematite/copper, but it's not clear you need it anyway. Do you? What am I missing? If I knew metalurgy I'd probably want to cast more nails or make a drill bit...

    • The first order of business would be to bring the local population around to accepting the new order of things. This would mostly involve chasing the birds, fishs and crabs around with the hatchet while screaming obscenties at them - I expect the berries and coconuts will acquiesce to my dominion, as they are known to be sanguine in nature.

      Once the locals have been frightened into disorder, the next order of business would be setting up a hierarchy of power. The most loyal and strongest of the flora and fau

    • Gilligan's Island (Score:5, Interesting)

      by obtuse ( 79208 ) on Tuesday January 18, 2005 @12:52PM (#11396695) Journal
      First - survival, but you might have one volatile asset to help with your rescue. Do you have a watch, and is it still running and on time? Do you know the date? If so, the sooner you take a reading of the angle of the sun & combine it with the time, the more accurately your position can be determined. Otherwise, start tracking the arc of a shadow & wait for the solstice, & take a readings then. Include these readings on the messages you toss into the sea. (Pumice, coconut husks?)

      Make shoes - you won't live long if your feet give out. Any injury could kill you by way of infection. Make clothes from the cloth, and conserve it. It will deteriorate in the sun, but better it than your skin. If you can clothe yourself with feathers or anything else, you want to do that instead. Depending on how long you are on the island, you may need to make a sail from the cloth. It is also a source of fine thread. You might use it to skin a boat.

      Make a prominent distress sign, visible from the air.

      You can distill water from the hydrothermal vents, or at least use the heat to distill seawater.

      Can you make a compass from the hematite or nails? If the hematite is specular hematite, it may be possible to polish it into a signalling mirror. Try the copper too.

      With the copper & nails as a battery (voltaic pile) you could make a spark gap generator to produce radio noise. It's a little Gilligan's Island, but you could probably rig a machine (powered by wind, or gravity by way of ported water or sand) to use this to constantly transmit SOS. Depending on your ability to work the copper, you may be able to make enough wire to make a simple radio receiver & speaker. You may need to use your battery to magnetize pieces of nails.

      If the wind is constant enough, you might make a kite to hoist an antenna.

      Can the seeds be made edible after making into flour and treating with ashes or the acid from the berries? Acorns aren't edible either, but lot's of people have survived on them. Vary your diet to avoid scurvy, ricketts or worse.

      How large is the lens? If it's a page sized fresnel lens, then you can melt concrete with those, so smelting small quantities of iron is not entirely implausible. A blind spot in the center of your vision won't improve your survival odds, so don't look at the hot spot. Hang the lens on a frame.

      Prepare a signal fire, & keep coals ready to light it. Don't burn down your coconut trees.

      Can the berries be fermented? Not just for entertainment, but alcohol can clean wounds, and could be useful for fuel.

      Nothing gets thrown away or tossed into the sea. Make a latrine in a place that won't cause any trouble. Even your waste is a resource. Look out for birdlime. You might just be able to make a black powder flare for signalling from that, the sulfur & some charcoal. Burn as little as you must, as you don't have time to wait for fuel to grow. Besides, you've got free heat from the hydrothermal vents.

      As others have said: Obsidian & flint: Knives, spear points. Coppper -fishhooks. You could probably work the nails too. Lots of other excellent suggestions here. With the copper & hematite, you should be able to make a diode, and from that a radio receiver. Good luck making a speaker or earphone. Homemade wire, nail fixed magnet, diaphragm of palm or cloth. Handy, but probably impossible: Triode amplifier.

      Finally, use wax from the berries & feathers from the birds, & make wings. Fly away, but don't get too close to the sun, or the wax will melt and you'll fall into the sea, to the dismay of your father.

      A related problem is how does one make accurate tools or measuring devices without already having them? One way to start is by making a flat surface by rubbing two things together.
    • Interesting part of this question - it asks how would you survive (not escape). Is it implicit that you would actually want to leave the island?

      You have everything you need for basic survival - multiple food sources. Volcanic soil - implicitly suitable for farming. Materials suitable for building a shalter.

      One approach is to stay put, and start building with the coconut trees. This could be a business and lifestyle opportunity. You could have your own private Island !

      The next boats that approach ar
  • If they give you a skills test, they'll often ask you about the most cryptic-looking functions that are necessary in programming like htonl() [opengroup.org], strtoul() [opengroup.org], atoi() [opengroup.org], and the like. Also make sure you understand how (void *) works and how to pass pointers to functions. People love this crap. Unless they're more into software engineers than programmers. Then you better pull out your C++ books and remember how all of the variations on virtual methods work.
  • In a previous life I gave a lot of interviews to prospective hires. The company had a standard set of interview questions to work from. One of last ones was to have the candidate write a short program fragment to solve a given problem. One of the popular problems was to write a routine to reverse a linked list. So given "a->b->c" return the list as "c->b->a". It was explained that the nodes were singly linked. Very basic. It was amazing the answers I'd get back. I didn't care so much abo
    • "One of the popular problems was to write a routine to reverse a linked list. So given "a->b->c" return the list as "c->b->a". It was explained that the nodes were singly linked. Very basic. It was amazing the answers I'd get back."

      Ok, you've piqued my curiousity. What sort of "amazing answers" did you get back?

    • What is the proper format for the program main method?

      If I was taking that test this question would annoy me greatly since it is so badly expressed. Strictly speaking you don't describe methods as having a 'format' at all, and if they did, proper for what? If you mean for use in invoking an application then you would state the question as something like "what should the main method signature be in the controlling class in order for the application to be succesfully started".

    • Re:Simple tests (Score:4, Insightful)

      by Matthew Weigel ( 888 ) on Monday January 17, 2005 @10:53PM (#11391612) Homepage Journal

      "What is the proper format for the program main method?"

      You should get a blank stare. "Typically two tabs in" is another reasonable response.

      Sorry, but when you're testing the knowledge of the candidate, your knowledge is being tested too. The worst developers I've had to share code with haven't known what a "function signature" was, and I figure that's a pretty good rule of thumb.

    • Re:Simple tests (Score:3, Interesting)

      by kmahan ( 80459 )
      Sorry -- we did say "signature." I was in a hurry as I was writing the base post.

      As for weird answers from the programming question -- here are a few that I remember:

      - "What's a linked list?" (bad answer)
      - Arguing about the definition of a Singly Linked list (they wanted to use the back pointers of a Doubly linked list)
      - A popular one was writing a routine that walked through the list but didn't actually reverse it
      - Another popular one was the "repeatedly walk to the end of the first list, remove the las
      • "- write a loop that tries to walk through the list and "switch" pointers (doable, but rarely done correctly, also lots of temp vars and pain involved)"

        Just wondering, how else would you do it without making a copy of the list? The recursive solution makes a temporary copy on the stack. Here's what I came up with, please tell me if I messed up (also please excuse the Slashdot misformatting):

        typedef struct {
        ListItem *next;
        void *data;
        } ListItem;

        // Reverse the contents of a linked list. Assumptions:

        • Here is a recursive solution that does not involve making a copy of the list.
          In addition, it is tail-recursive, which means that (if the compiler understands tail recursion) reversing long lists doesn't take up any more stack than reversing short lists.

          typedef struct ListItem_s* ListItemP;
          typedef struct ListItem_s
          {
          ListItemP next;
          void *data;
          } ListItem;

          static ListItemP revappend(ListItemP from, ListItemP to)
          {
          if (from)
          {
          ListItemP next = from->next;
          from->next = to;
          return revappen

        • You can do it in-place, iteratively, with just a little temporary storage. Something like this ought to do it (he says, just knowing there's going to be an embarrassing error somewhere :-)):

          struct Item
          {
          char data;
          Item* link;
          };

          // Parameter: head of list before reversing.
          // Returns: head of reversed list.
          // Safe for empty lists (pass/return NULL pointer).
          Item* rev(Item *head)
          {
          Item *last = NULL;
          Item *cur = head;
          while (cur != NULL)
          {
          Item *next = cur->link;
          cur->link = last;
          last = cur;
          cur = n

          • That's almost exactly the same program as I wrote :-) I was just pointing out that programming it (non-tail) recursively would be making a copy of the list on the stack, and programming it tail-recursively would, in this case, would result in a program that looks essentially identical to the iterative version.
      • Just out of interest, did you specify whether you wanted the list reversed in-place or non-destructively? I could generate a simple and efficient algorithm for either, but I'd be interested to see the interviewer's reaction if I had to ask them which they wanted before proceeding. Nothing like subtly turning the tables in a technical interview. :-)

    • Re:Simple tests (Score:3, Interesting)

      by darnok ( 650458 )
      All good points in the parent...

      When I bring new techos into a team, I want them to have the following tech background/skills:
      - strong communication skills. Very very important in any coding environment, and becoming moreso as outsourced development, Extreme Programming etc become mainstream. You'd better be able to talk to peers, superiors and underlings, or you're going to waste a lot of time and money. You don't have to be the best speaker in an interview, but you need to be able to sustain a technic
  • Don't Lie (Score:3, Interesting)

    by CertGen ( 591598 ) <sniff,scratch&gmail,com> on Monday January 17, 2005 @07:36PM (#11390136) Journal

    I can't tell you how many times now I've interviewed some little fresh-out-of-school-all-eager-and-willing twat who has every language any one ever mentioned to him in school listed on his resume.

    Don't lie about what you know.

    If you cannot answer a simple question in a language you've listed on your resume then it shouldn't be there.

    If you really think you need to bone up a lack luster resume with lists of useless abilities be smart about it. Make a grid and list the language and your current level of proficency. Then the interviewer isn't appalled when you're asked to answer a simple question in Perl but you can't remember how even declare a scalar in Perl because you only ever wrote one Perl script...

    ...five years ago...

    ...but really you just copied someone else's Perl CGI script and changed the HTML output to match your own amateur porn site's look and feel.

    • Re:Don't Lie (Score:3, Interesting)

      by Ratbert42 ( 452340 )
      Don't lie about what you know.

      Amen. That is the kiss of death. I interviewed three guys today and busted one guy on two different "keywords" he slipped on his resume but didn't know. We shot him down and told the placement agency that his skills didn't match his resume.

    • Re:Don't Lie (Score:2, Interesting)

      by Ryne ( 78636 )
      I'm a little bit curious how you would consider someone who wrote that he was proficient in only one language.

      Java is pretty much the only language that I feel comfortable enough with to start off coding right away, but I've dabbled into lots of other languages and I'm of the oppinion that anyone with a proper programming background can pick up pretty much any language.

      In this case, will it help to write a list of languages I've used (more than copying someone's script :) to show off that I have a broader
      • Agreed. There are quite a few languages that I can use. However, only a few that I feel comfortable working with by the seat of my pants. The others I tend to use references with fairly often because I rarely use the languages.

        Could I answer questions about them in the middle of an interview? Mabey, but I'd probably make mistakes. Can I be productive in them in an actual setting? Yes, give me about 20 minutes and my reference material.
  • by etedronai ( 35656 )
    In general when I give written tests to try to judge a software engineers skill it is not language specific. I am not interested in seeing if people have memorized all of the constructors that are associated with a HashTable. Rather I am trying to find out where they are as a programmer and as a software engineer. To this end I ask for them to answer all question is pseudo code or their favorite language. I generally arrange the test to get sequentially harder - so it will be arranged something like:
    1.
    • I like your approach. Thanks for sharing it.

      In the past, I've not had the opportunity to do in-writing skills tests. When I do them verbally, I usualy focus on similar topics in increasing complexity. I try to choose questions that allow me to prod the interviewee along (to see how they react to new ideas, etc.) as well as get them into a discussion with me about the "right" answer. I find it helps me learn how someone attacks a problem.
  • Might never see one. (Score:3, Informative)

    by JVert ( 578547 ) <corganbilly@hotmai[ ]om ['l.c' in gap]> on Monday January 17, 2005 @07:46PM (#11390243) Journal
    Skills test are somewhat uncommon, but the majority of those tests are given to people without degrees. Your skill level comes through in the verbal interview. A company wants someone who not only knows what they are doing but can tell you what they can do.

    • You would think that your skill level comes through in a verbal interview, but you'd be surprised. I just finished up our hiring process for a new programmer at work, and the position was for C#/.net. We did weed out people first by resume, then by phone interview, and then by traditional interviews. We had the whole range of applicants from no college to some college to multiple PHDs applying.

      Testing was an afterthought... but I wanted to get a feel for the programmer's style before we got to working t
  • A local company (in a town of 25,000) was advertising for a Fortran programmer. While I know nothing about Fortran, I made it through a CompSci degree and a series of jobs using a bizarre mix of pretty much everything short of PROLOG. I was upfront with them about my lack of specific knowledge, but told them I'm a fast learner and would spend all available time between the interview and the start date bringing myself up to speed.

    The test was along test of:

    Which of the following is the name of an unsi

    • Too bad for them; two years later that ad is still running at least once a month.

      And that is about the stupidest part of the hiring process. I went through about the same thing with a company a few years ago - they wanted two years of embedded code experience in some obscure language (which of course I didn't have.)

      Two years later they still haven't filled the position - for fux sake, if they had hired me back then I would have two years in their exact application by now. If a company leaves a position
      • If a company leaves a position open for a year because they want a year's experience in something - they could have brought in a guy with a broad background and brought him up to speed in the year, and trained him to think the way they wanted.

        Exactly. I mean, once you've seen twenty or thirty procedural languages, it's honestly not that hard to learn the syntax of another one. I assume that they actually needed the productivity of a programmer or they wouldn't be trying to hire one, so they've lost at l

        • Don't assume. Two possible scenarios (among prolly others):

          1) They have no intention of hiring someone that answers the job posting.
          a) They're establishing that they can't find anyone qualified for the position, making it H1-B eligible.
          b) They've already picked out a candidate, or plan to only fill it internally, but regs, such as if it's a govt. job, require them to announce it publicly.

          2) Overworked programmer bitches to his boss about being overworked, and that they really need to add another body. B

  • You are not expected to know everything or solve every problem. You are expected to prove that you have good enough skills that you could solve every problem given more resources (a net connection for instance).

    For my last interview I listed C++, but was honest on the phone interview that I was rusty on it. There were several things on the test that I had no idea where in C++, because they were added between when I learned and when then language was standardized. (these also happen to be things that the

  • My experience (Score:2, Insightful)

    by Pan T. Hose ( 707794 )
    I ususally ask the most important question first: where can I see your code on-line--which in practice often means: which free software project have you contributed to? It's better than a test because I can see some Real World(TM) problem solving skills, read the mailing lists archives to see interpersonal communication skills, ask other developers, etc. Why is it more important than tests? Because that way I can see how the future code is going to look. Academic questions and tests are good for students, b
    • Are you really saying that you would always hire someone who's contributed to a FOSS project over someone who hasn't, just because they made a public contribution?

      • It is more and more important for programmers to be able to, when they reach a difficult problem, find out how it has already been solved. People who have worked in the online open source world would be much better at that, and at finding the right tools.
        • It is more and more important for programmers to be able to, when they reach a difficult problem, find out how it has already been solved.

          I'd add "if and" before "how", but sure.

          People who have worked in the online open source world would be much better at that, and at finding the right tools.

          Wow. Is this one of those posts with a "..." step in the middle you have to fill in yourself? :-)

  • I do give a written exam to candidate developers where I work. Most of the questions on the test came about when a developer, who knew the right textbook answer, couldn't apply the concept to the required work. There is stuff like study this SQL script and tell me what it is doing or study this UML class diagram and answer the following questions.

    Most of the places that I have interviewed at do not give a written exam. They ask questions during the interview. We do that here is well but I believe that a

  • Smartest Test (Score:2, Interesting)

    by Poietes ( 753035 )
    Some companies here in NZ use a particularly smart test to find good programmers. After they've established the technologies you are fluent in, they will ask you to code something specific using a language that you've never used. You are given Internet access and a time limit. Since good programming is language-independent, and it is the use of good underlying concepts and technique that is more important, I think this test much better demonstrates a potential candidate's ability to adapt and solve probl
    • Re:Smartest Test (Score:3, Interesting)

      by tomstdenis ( 446163 )
      That's not always true. Some languages do have idiosyncrasies that are nasty to overcome. Ruby for instance is nothing like C. Same thing with Python.

      So if you put on your resume
      - Mastery of C
      - familiar with Java, Perl, C++

      I wouldn't expect them to ask you to write a Python webserver or something "to see how you think" during an interview.

      RiM [the blackberry makers] are big on quizzes too. I posted for a job online and they made me solve some "number of shapes with N sides" puzzle. I was 99%
      • He was not pleased with your speed? Wow, he must be an imbecile. Did he even try to solve the problem himself before giving it to you? 3 minutes is not a lot of time but I would think that in an interview it would seem like an eternity mostly because the other person is waiting for a response.
  • by PylonHead ( 61401 ) on Monday January 17, 2005 @09:24PM (#11391024) Homepage Journal
    I was working a job doing Windows apps in C++ by day, but what I really wanted to do was develop games. I had done some small scale stuff on my own, and I wanted a chance to do it professionally.

    So I heard through the grapevine that a small computer consulting company I knew was looking to develop a game, and they were looking for a programmer. I decided I would try moonlighting on the game while keeping my day job. I showed up after hours, and was met by the top three people that ran the place.

    I was ushered into a small dark office. They sat in a rough semicircle around me. After a brief introduction, they started firing difficult logic problems at me. For about an hour and a half. No paper, no time to myself, I was expected to work out the answer out loud. It was intimidating as hell.

    But I'm good at that type of stuff, and although I needed a little prodding on one of the problems I eventually came up with the right answers. They seemed satisfied. I explained what sort of compensation I would require, they agreed, and we decided I would come in after hours the next day to get started.

    So the next day rolls around, and I show up. I get setup on a machine, but clearly the president of the company wants to talk to me about something.

    So he comes out and says it. "Well, I've talked to my associates, and we've decided we don't want to pay you. We're a little cash poor right now. So what we want you to do is create a prototype, and we'll market it, and cut you in for a percentage of the profit."

    I was floored. They wanted to make all the decisions, while I did all the up front work, for the possibility of some of the profit later on. They wanted me to be their bitch.

    If they had told me this up front, I would have walked out the door right then, but instead I had to sit through the most stressful interview of my life, fighting for their approval. Blech.

  • I've been on both sides of the table in too many interviews and honestly - the skills part is the most useless part of your interview. I have all but given up on that ever working.
    Specific skills are way too easy to study for - you never know what you'll get no matter how well someone passes the test.
    In my experience it has much more value if you try to get your answer indirectly... Like I was looking for a new sysadmin for my team. He has to answer questions of a ton of users that just walk up and at the s
  • by dmorin ( 25609 ) <dmorin@@@gmail...com> on Monday January 17, 2005 @11:57PM (#11392003) Homepage Journal
    I was told once to expect a programming quiz. I got there and discovered that the quiz consisted of 20 questions about a completely imaginary language. Each page of the quiz would explain one rule of the language, then ask a question about it. The trick was that as you got farther in the test the knowledge from previous questions factored into the answers.

    HR guy told me I had to get 18 out of 20 right or I was done. Then he said I had about 3 minutes per question, and walked out. I finished it, checked my answers, changed about 5 answers...and scored an 18. Turns out the 5 I changed were indeed wrong and I'd changed them to correct answers. Phew!

    Most annoying part was when I asked the HR guy why I'd gotten the two wrong. He said he had no idea, he only knew the correct multiple choice letters, not any logic behind them. So being a geek I opened the book back up, rethought the two I'd missed, and came to the correct solution for both of them. Of course at that point he didn't care, but damnit I did.

    Compare that with the job where I currently am. I was asked a programming question, I wrote some code, the interviewing manager told me that it was a good "brute force" answer. Well that bugged the crap outta me, so I thought about it all the way home, thought of a better answer, and emailed it to him with a note saying "It may be too late for this to matter but my head will explode if I don't send it." During the next round of interviews I told one of the engineers that story and he laughed and said, "Well, I know two people that did that exact thing, and both of them work here now." make that 3.

  • I was asked to write an algorithm to play a strange version of Blackjack against a human where:

    - Red cards are positive, black cards negative
    - Aces are 1 or 11
    - you only use half the deck each (play one-on-one)
    - your score at the end of the round is 20 if your cards total less than 15, 20 minus (cards total) if total is 15-20, and 50 if it is over 20
    - Winner is player with lowest score after a few rounds

    The trick is in the statistics: the black and red card values cancel out on average, leaving only the a
  • by psykocrime ( 61037 ) <mindcrime&cpphacker,co,uk> on Tuesday January 18, 2005 @02:39PM (#11398042) Homepage Journal
    The book Programming Interviews Exposed [amazon.com] has a lot of info on some of the skills you might be asked to prove as part of an interview. I highly recommend this book to anybody who expects to be interviewing for a development job.

    Even if you don't get asked the specific questions they speak of in the book, the concepts will be of value to you.
  • This is just the sort of thing I would want job applicants to do, if anyone were foolish enough to trust me to hire people.

    http://www.itasoftware.com/careers/eng/job1.php
  • by staplin ( 78853 ) on Tuesday January 18, 2005 @03:02PM (#11398337) Homepage Journal
    I've interviewed at places that did have programming skills tests, and those that did not. When I've been in the hiring role, I've occasionally used them. Some people believe they are a good impartial way to evaluate skills. Others believe you can gain the same info by talking to a person informally.

    The big thing to remember is that the test should be "shades of grey" rather than "black or white". If you're not sure about an answer, but you can explain why you made that choice, it's better than leaving them with a yes/no answer.

    I've seen good tests, with language specific questions (without being syntax nits) like 'What interfaces or classes would you need to extend to implement a J2EE EJB service?' and general questions like 'Describe 2 Gang of Four patterns and where you'd use them?' (Note, you get more points if you admit you don't know which patterns are in GOF than if you guess incorrectly).

    I've seen bad tests, like when I was asked to implement a linked list in C. My response of "I wouldn't, I'd use STL", was badly received. Eventually, I got from them that they wanted to see that I could identify boundary conditions and likely places to mess up the pointer manipulations.

    The worst are the downright ugly tests. At my previous job, HR asked some engineers why none of the candidates were passing the multiple choice programming exam they were given. It turns out that a third of the "answers" on the key were wrong, and another third were ambiguous because of the wording of the question (ie, both A and C could be argued to be correct).

    To sum things up, expect questions related to the skills required for the job, questions related to the skills you've listed on your resume, and questions about general theory and good practices. Often you can get partial credit for a wrong answer if you explain yourself. Always be honest rather than improvising an answer that you don't know. And you can always ask to discuss any questions you get incorrect, so you can explain your thought processes.
  • ...about a programming project you worked on with me and a couple of other senior programmers.

    Do this for 15 minutes or so and people ought to be able to figure out if you are the person they need.

"What man has done, man can aspire to do." -- Jerry Pournelle, about space flight

Working...