Slashdot Mirror


Programming Job Skills Test?

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?"

189 comments

  1. Skills Test by moontumbohotmail.com · · Score: 3, Informative

    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.

    1. Re:Skills Test by bratboy · · Score: 1
      I used to interview a lot of people, and the most important general thing I looked for was whether or not the person could (and would) honestly assess his or her own ability. "How would you assess your skill in 3D math?" If the person said "expert" and then couldn't perform a very simple task (like finding the angle between two vectors), then I knew something was wrong.

      It sounds like you're applying for somewhat generic programming positions. You'll probably get the standard C++/linked list questions, some brainteasers ("what's the fastest way to determine if an int is a power of two?"), and some more abstract questions. Remember, the answer to any question about how you would go about a vaguely defined task is that you would first seek to define the task.

  2. Interview questions by prostoalex · · Score: 3, Informative

    Not exactly a skills test, but on 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.

    1. Re:Interview questions by d1v1d3byz3r0 · · Score: 1

      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.

    2. Re:Interview questions by chris_mahan · · Score: 1

      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 there's a bunch of people in India that wouldn't work for IT even if they could, for personal reasons. I wouldn't work for Microsoft for personal reasons, for example.

      --

      "Piter, too, is dead."

    3. Re:Interview questions by d1v1d3byz3r0 · · Score: 1

      It's getting more and more competitive, though. For every 1 tech job in India, there are usually over 500 candidates. Firms in India can afford to be picky.

      If it were just about throwing people in front of computers, then the quality of Indian software engineers would be lacking. But evidence shows the opposite. In 2003, 1671 American firms applied to the Carnegie-Mellon Software Engineering Institute for Level 5 CMM (Capability Maturity Model) certification. This is the Holy Grail of software quality certifications. Now compare those 1681 US applications with the mere 238 Indian firms that applied. Yet, out of the 78 certifications that were actually granted, 50 of the certifications went to Indian firms.

      Indian firms are becoming serious players in the field of software engineering. It's not just about cheap labour. Sure, you may have some mindless codemonkey positions available like we have here in the states, but those aren't the jobs that people are after (here or there). Those are the firms that take care of their employees. Have you seen the office parks in Bangalore? Electronic City looks like it was airlifted straight out of our mid-1990s Silicon Valley. India's tech economy is *growing* while ours is drifting along at best. People may be making 20k a year now (which translates to 80k when you account for the much lower cost of living), but salaries are steadily increasing, the social and political situation is slowly improving, and soon there will be fewer reasons to move here. After all, how many programmers from Singapore or Japan have you seen immigrating to the states lately?

    4. Re:Interview questions by d1v1d3byz3r0 · · Score: 1

      Correction. The last paragraph was meant to read: ...but those aren't the jobs that people are after (here or there). Those >aren't< the firms that take care of their employees...

    5. Re:Interview questions by Ced_Ex · · Score: 1

      In case you haven't already figured it out, $20K in India would mean you live like a king. You'll have your own brand new apartment and quite possibly a maid or cook. Making $20k over in India is like making $80k in the US.

      --
      Live forever, or die trying.
    6. Re:Interview questions by chris_mahan · · Score: 1

      Yeah except if you can come here and work 5 years at 80K and live on 50K (it can be done), you save 30*5=150K. Which means you can retire in India.
      At 20K in india, it still takes longer to get the 150K together.

      --

      "Piter, too, is dead."

    7. Re:Interview questions by Ced_Ex · · Score: 1

      But in those 5 years you would not have a cook or a maid.

      In India, you don't need 150K. Plus, you're forgetting Uncle Sam takes higher taxes away, so your $80k gross is like $60k after you've paid the piper.

      --
      Live forever, or die trying.
    8. Re:Interview questions by Anonymous Coward · · Score: 1, Informative
      [CMM 5] is the Holy Grail of software quality certifications.
      No, you are wrong. That is a fucking lie. CMM is about process quality. It is not about software quality. It is not about software engineer quality. Indian software companies have been spreading this bullshit for years in order to snow people into thinking that they know what they are doing. American companies have been doing it as well, but not nearly to the same extent as their Indian counterparts.
  3. Can't prepare by New+Breeze · · Score: 2, Insightful

    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...

    1. Re:Can't prepare by Smallpond · · Score: 4, Funny

      "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.

    2. Re:Can't prepare by douthitb · · Score: 2, Insightful

      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 didn't totally BS your resume.

  4. sort of... by bblazer · · Score: 2, Interesting

    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.

    --
    My .bashrc can beat up your .bashrc!
    1. Re:sort of... by bladesjester · · Score: 1, Redundant

      You were asked what was on a specific page? Please tell me that you're kidding...

      --
      Everything I need to know I learned by killing smart people and eating their brains.
    2. Re:sort of... by ComputerSlicer23 · · Score: 2, 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 Steel was the other author). I've since forgotten it and now remember, http://function-pointer.org.

      When I was still boning up on C++ I could tell you the chapter headings of most of the chapters in Strousops book. I haven't read the book in so long it's ridicilous. I can still tell you which books introduced me to which topics, and other better references I've found on that topic since then.

      The sad part is I've used function pointers regularly enough now, that I can tell you how to do everything but a function pointer to a member function off hand. I can generally figure out a pointer to a member function in fairly short order given a compiler.

      Kirby

    3. Re:sort of... by bladesjester · · Score: 1

      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. Sorry, I had to look just for the sake of curiosity.

      --
      Everything I need to know I learned by killing smart people and eating their brains.
    4. Re:sort of... by ComputerSlicer23 · · Score: 2, Insightful
      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 (I knew it had to be one of a handful of concepts: pattern matching, a section describing the difference between scalar and associative context, or the first section that mentioned CPAN in that likelyhood order). Pattern Matching is what perl was invented for if I remember my history correctly. That page wasn't chosen at random by the questioner, it was chosen for a specific reason. They didn't pick page 12, they didn't pick page 275. They picked the page that had documentation about the essense of what Perl is, and a page that would likely be referred to early and often.

      When we interview people, we have questions of that nature (not insane questions, but questions that we don't expect anyone to answer correctly, but if you do we feel that you can easily be assimilated).

      Kirby

    5. Re:sort of... by brunson · · Score: 1

      That's still a ridiculous question. I don't know the page number because I don't have to refer to it any more.

      --
      09F911029D74E35BD84156C5635688C0
      Jesus loves you, I think you suck
    6. Re:sort of... by Anonymous Coward · · Score: 0

      Well then I guess I would fail such an interview, despite my years of Perl experience. Some of us don't use the printed book anymore. The online version from Safari is much better for reference.

      Really, instead of asking "What's on page xxx", just ask directly "What is the main purpose of Perl".

      Besides, if you want a real perl expert, you should ask what's on page 131 instead, but you might want to think twice about hiring someone who knows that answer. (and yes, I didn't need to look that up)

    7. Re:sort of... by Anonymous Coward · · Score: 0

      The answer of course is the number 71! :)

    8. Re:sort of... by Anonymous Coward · · Score: 0

      Exactly, I used to know the page number, now I've memorized the entire darn table and haven't read the book in years. When I need info, I know how to pull up perldoc!

  5. zerg by Lord+Omlette · · Score: 2, Informative

    I'm guessing How Would You Move Mt. Fuji would be the definitive book on the subject. It's been covered here before. That review is from 2003, so it's not a stretch to suspect that it's filtered out to all the HR llamas...

    --
    [o]_O
    1. Re:zerg by Glonoinha · · Score: 1

      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.

      --
      Glonoinha the MebiByte Slayer
    2. Re:zerg by Everleet · · Score: 1

      I'd just unmount it, then update its fstab entry to the new location.

      --
      It's tragic. Laugh.
    3. Re:zerg by Short+Circuit · · Score: 1

      Why? A symlink works even better. (Assuming you don't need a gaurantee that it's no longer in the old location.)

    4. Re:zerg by Everleet · · Score: 1

      That hardly counts as moving the mount though.

      --
      It's tragic. Laugh.
  6. A Season for every Reason. by Anonymous Coward · · Score: 0

    "So I'm wondering, have you done a developer skills test? What type of things did you get asked?""

    Can you think?

  7. Skills test...you get lots of interviews? by SunFan · · Score: 2, Interesting


    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.

    --
    -- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
    1. Re:Skills test...you get lots of interviews? by bladesjester · · Score: 2, Informative

      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).

      --
      Everything I need to know I learned by killing smart people and eating their brains.
    2. Re:Skills test...you get lots of interviews? by eclecticgeek · · Score: 1

      I'm in Australia if it makes a difference. I finished up uni just before xmas and it took a few weeks to get the BS in the resume sorted before anyone wanted to even talk to me. But now that is sorted the phone calls are starting to come in. There are quite a few jobs out there, and many of the junior and graduate ones still want 1-2 years experience. But even putting those aside, there are jobs out there if you are any good. Not as many as I would like obviously, but enough that I don't imagine I should have too much trouble landing something.

    3. Re:Skills test...you get lots of interviews? by $raim_n_reezn! · · Score: 1

      How do you measure how good a person is when he hasn't even got a job to show that he's got the skills in the first place?

      --
      All straight things must come to a bend
    4. Re:Skills test...you get lots of interviews? by Anonymous Coward · · Score: 0

      the only requirement is 'not an asshole'.

      you'll be surprised how hard it is to find candidates that pass that one.

  8. Don't fret over this by marcus · · Score: 4, Interesting

    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...

    --
    Good judgement comes from experience, and experience comes from bad judgement.
    - W. Wriston, former Citibank CEO
    1. Re:Don't fret over this by kraut · · Score: 2, Interesting

      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.

      --
      no taxation without representation!
    2. Re:Don't fret over this by Anonymous Coward · · Score: 0

      A hundred thousand Indians disagree with you.

    3. Re:Don't fret over this by GeorgeMcBay · · Score: 2, Insightful


      Are you applying for a software "design" position?


      I should hope he isn't considering he is fresh out of college...

    4. Re:Don't fret over this by eclecticgeek · · Score: 1

      There is one company in particular I'm hopeful will work out. They are actually hiring a few people and therefore aren't after any particular skills, just someone who does know development in general. So I will get my choice of language etc for the test (if I get one). I'm assuming it will be nothing more than making sure I do know the basics and haven't BSed on my resume. I'm not fretting over it too much, it's just that the first skills test I'm likely to take is for the one company that I'd really like to work for. So unlike interviews where I've stuffed a few up while I got back into the swing of them, I really don't want to stuff up my first test. I should have mentioned that they actually do two tests. The first is skills based, if I do OK in that, the second is a logic/lateral thinking type of affair.

    5. Re:Don't fret over this by oliverthered · · Score: 1

      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.

      --
      thank God the internet isn't a human right.
  9. I've done a few by jd · · Score: 3, Interesting
    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.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  10. Choose Your Language by Uber+Banker · · Score: 1

    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?

    1. Re:Choose Your Language by Anonymous Coward · · Score: 0

      Perl, Python or Riby I would feel more comfortable in

      How about a Win32-type wizard with pre-supplied icons in Perl?

  11. General Logic by web_boyo_in_sac · · Score: 5, Interesting

    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."

    1. Re:General Logic by Anonymous Coward · · Score: 0

      Well, will one of you bright sparks give us the answer? There's got to be some convoluted scheme that involves using everything on the list (and probably finishes with launching a probe to alpha centuri). Personally I'd just cut down tons of palm trees to write a 200 metre "SOS", and hope someone is paying close attention to their satellite data.

    2. Re:General Logic by cafeman · · Score: 2, Funny

      Someone's been playing "Return to Mysterious Island" a bit too much lately ...

      --
      This is your life, and it's ending one minute at a time.
    3. Re:General Logic by Bill+Dog · · Score: 2, Funny

      I'd look for a volleyball, paint a face on it and name him Wilson, and then talk to him and slowly go crazy...

      --
      Attention zealots and haters: 00100 00100
    4. Re:General Logic by GlenRaphael · · Score: 4, Interesting
      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...

      --
      I play Nerd-Folk!
    5. Re:General Logic by karnal · · Score: 3, Funny

      My name is Voit, dumbass!

      --
      Karnal
    6. Re:General Logic by Profane+MuthaFucka · · Score: 1

      The copper is easy. Hammer it to get it out of the rocks, and hammer it some more to shape it into useful things like fish hooks. The hematite is harder. It's a form of iron oxide, so I suppose you could smelt it somehow. But off the top of my head I'd need to have some coke, or a microwave oven, to make the temperatures high enough to get iron out of that. And then, how would you shape it? It's too hard to hammer into shape with rocks, like you could with the copper.

      Oh wait, this is a business interview. DUH! Since I have lots of free time, after I made a living for myself off the land, I'd use my copious free time to fashion a stockpile of jewelry from the copper and hematite (pretty colors). When I'm rescued, I'd sell my stock on EBay and make a fortune for my stockholders. Cha Ching!

      --
      Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    7. Re:General Logic by GlenRaphael · · Score: 1
      The copper is easy. Hammer it to get it out of the rocks, and hammer it some more to shape it into useful things like fish hooks.
      Doh! I should have known that.

      In that case, after the small things -- tools for acquiring a dinner that could be roasted over the fire or in the coals -- the thing to make given sufficient copper and spare time is nice big copper pots. Cisterns to hold rainwater, mostly. A cooking pot for boiling crabs. Copper sheeting would also make a nice roofing material for a house.

      --
      I play Nerd-Folk!
    8. Re:General Logic by cowbutt · · Score: 1

      Alternatively, might it be intended that you use it together with the sulphur to make primitive black powder-based rescue flares? (blue!) --

    9. Re:General Logic by Anonymous Coward · · Score: 1, Insightful

      surely the clue is the phrase 'thousands of miles from *nowhere*'

      I'd just walk to the local shop, seeing as there's thousands of miles of somewhere between me and nowhere.

    10. Re:General Logic by UrgleHoth · · Score: 1

      NO! You make a primitive gun to hunt the gorn who is on the island. Then the mertrons will let you go home.

      --

      Dogma - "let's just say we'd like to avoid any empirical entanglements."
    11. Re:General Logic by Anonymous Coward · · Score: 0

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

      [...]

      Now given this very restricted and scientifically unplausible situation, how would you survive?

      That's easy. If I'm on a deserted island, thousands of miles from nowhere, then I must be in the middle of a very large, populated area. If the island is deserted, presumably you are talking about a traffic island.

      So, in answer to your question "how would I survive?", I would say: wait for a gap in the traffic, cross over to the pavement, and then make my way home.

    12. Re:General Logic by bladesjester · · Score: 4, Interesting

      Actually, copper's even easier than that. Copper is one of the few metals that can be worked in a fire as cold as a campfire (this is where I put on my smith's hat).

      In order to extract the copper, all you really need to do is break the rocks up into smallish pieces and toss them in the fire. when the fire has gone out, remove the rocks, and dig the copper out of the sand. To work it, just build another fire to heat it.

      You don't want to hammer it cold. It cracks like you wouldn't believe.

      To extract the iron from the hematite, you'd basically need to make a crude bloom forge or a primitive smelter. The palm fronds would provide the carbon content if you could get the fire hot enough (The Japanese used rice stalks and charcoal to smelt the black sand that was used in the production of swords before they started trading for higher grade materials that were easier to work with). The main difficulty in getting the fire hot enough is forcing air through the fire, so it's really not all *that* difficult.

      As far as the iron being too hard to work with a rock, it's not. The master I studied with did an amusing trick by making horse shoes using a glass coke bottle for a hammer. To make a basic hammer, all you need is to take a piece of steel (which you can make and mold, or even shape with the hammer head of the axe) that is rectangular and affix a handle to it.

      --
      Everything I need to know I learned by killing smart people and eating their brains.
    13. Re:General Logic by FortKnox · · Score: 1

      If you are into cooking, you should know that you never use copper except for cooking chocolate. It can be poisonous to cook with.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    14. Re:General Logic by oliverthered · · Score: 1

      I thought it sounded quite melodramatic, 'thousands of miles from !!NOWHERE!!'

      too many B movies.

      I'd still like to squat the island.

      --
      thank God the internet isn't a human right.
    15. Re:General Logic by Sam+Nitzberg · · Score: 1

      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 are welcome to have their people disembark. Estasblish your location, sell coconut and even home-made products (soap from coconut, etc...). Claim the Island, and start some basic trading for / aquiring what is necessary to build a small resort.

    16. Re:General Logic by nate+nice · · Score: 3, Insightful

      That's pretty much what I thought too. If being given this upon an interviw my first thought would be how this relates tomy job, reading specifications for clear detail, ie unambigious, and caught this as something that could be interperated in more than one way and ask to clarify that I am not indeed in the middle of somewhere.

      When clarified I would then pursure to come up with some fantastic, amazing, impossible method of surviving in nowhere (somewhere?) until I could be rescued.

      And as a side note, if I did come upon that set of circumstances and was not ever going to be rescued, I wouldn't think that would be such a bad life considering you can survive, etc. I htikn I would do alright as I've done "rough" things before, but I also believe some kind of nature and instinct would really kick in.

      It would be a challange I guess, but I definitly would not try and build a raft home if I had to go 1000 or so miles. Hell, I would even try to start brewing my own beer and see if I could make a paper and use the volcano ash as a writing material. Beer is way more important though.

      --
      "If you are a dreamer, a wisher, a liar, A hope-er, a pray-er, a magic bean buyer ..."
    17. Re:General Logic by vdthemyk · · Score: 1

      How about jump in the ocean and start swimming. It shows you aren't afraid to attempt the seemingly impossible...

      --
      VD
    18. Re:General Logic by web_boyo_in_sac · · Score: 1

      never heard of that before, apart from poorly cleaned pots with copper oxide residue or badly braised with a lead containing compound

    19. Re:General Logic by Anonymous Coward · · Score: 0

      To extract the iron from the hematite, you'd basically need to make a crude bloom forge or a primitive smelter.

      Which raises the question... I could be the world's best programmer, but I don't even know what a "crude bloom forge" is. How does a test like this determine aptitude for a programming job?

  12. Write a bit swapper... by Anonymous Coward · · Score: 0

    ...in MIPS asm.

    (You know, where you reverse the bits in a word, so 0x11101000 becomes 0x00010111)

  13. Remember your weirdass C functions by CMU_Ken · · Score: 1

    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(), strtoul(), atoi(), 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.

    1. Re:Remember your weirdass C functions by turgid · · Score: 2, Insightful

      These functions are usually documented in man pages.

    2. Re:Remember your weirdass C functions by Anonymous Coward · · Score: 0

      What's so cryptic about 'Host TO Network Long', "STRing TO Unsigned Long', and 'Ascii TO Integer'? ;-) My goodness, have I become so warped by C/UNIX over the years that I actually think these mneumonics make sense?

    3. Re:Remember your weirdass C functions by CMU_Ken · · Score: 1

      They well may be, but they don't usually allow you to look at the man pages during a skills test.

    4. Re:Remember your weirdass C functions by CMU_Ken · · Score: 1

      I said they were cryptic-looking (especially for newbies). I didn't say I didn't know what they stood for. :)

    5. Re:Remember your weirdass C functions by turgid · · Score: 1
      They well may be, but they don't usually allow you to look at the man pages during a skills test.

      If they're expecting you to know a bunch of obscure functions by rote, you're probably better off not working for them. I believe "weirdass" is slang for strange or obscure.

  14. No by Uber+Banker · · Score: 2, Funny

    APL wins. APL2 would be best.

  15. Simple tests by kmahan · · Score: 1

    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 about the code but whether the person COULD solve it. And whether they could solve it without duplicating the nodes, etc...

    For java a question that was asked was "What is the proper format for the program main method?" Lots of folks couldn't properly answer that one -- most said "The IDE fills it in." (yes, we can start a flame war about that - but let's not - I'm just giving examples of what this company asked).

    One NON-Programming question you should be prepared to answer is "What do you know about our company?" It was expected that you'd visited the website and knew a few basic things -- what the company did was a good start. Nothing in depth -- mainly just seeing if the person had taken the time to look. This was one of the first questions in the interview. If you couldn't answer it that was pretty much the end of the interview. Harsh maybe, but it was considered that if you didn't take the time to know the basics about a company you were interviewing with, well, there wasn't much reason to continue on. You didn't have to memorize the entire site, but knowing the very basics of "What does company X do?" was required to continue with the interview process.

    --
    Invalid Checksum. Retrying.
    1. Re:Simple tests by Schwarzchild · · Score: 1
      "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?

      --

      "sweet dreams are made of this..."

    2. Re:Simple tests by Anonymous Coward · · Score: 0

      One NON-Programming question you should be prepared to answer is "What do you know about our company?" It was expected that you'd visited the website and knew a few basic things -- what the company did was a good start. Nothing in depth -- mainly just seeing if the person had taken the time to look. This was one of the first questions in the interview. If you couldn't answer it that was pretty much the end of the interview. Harsh maybe, but it was considered that if you didn't take the time to know the basics about a company you were interviewing with, well, there wasn't much reason to continue on. You didn't have to memorize the entire site, but knowing the very basics of "What does company X do?" was required to continue with the interview process.

      This paragraph repeats itself about 3 times.

    3. Re:Simple tests by the+eric+conspiracy · · Score: 1

      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".

    4. Re:Simple tests by Matthew+Weigel · · Score: 3, Insightful

      "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.

      --
      --Matthew
    5. Re:Simple tests by Bill+Dog · · Score: 1
      Sorry, but when you're testing the knowledge of the candidate, your knowledge is being tested too.

      That should deserve an Insightful mod. No one wants to work at a place that's clueless or screwed up (unless you have to), and the kinds of questions that are asked and how they're worded is one of only a few major clues available to the interviewee into what it might be like to work there.

      --
      Attention zealots and haters: 00100 00100
    6. Re:Simple tests by kmahan · · Score: 2, Interesting

      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 last node, then walk to the end of the 'new' list and put it onto the end of that one" -- correct but inefficient.
      - A variation on the above would be do do the same thing but create a COPY of each node as you put it into the other list
      - Walk the initial list, get a count, create an array of nodes, walk the list again setting the array elements to the corresponding node in the list, then walking the array backwards to get the reverse order
      - 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)
      - one person that I recall tried to create a new node type with a previous pointer, went to a lot of work to copy things over, and then walk backwards reversing the next/prev links.

      Some folks were careless and even if they got it reversed wouldn't check to make sure they'd cleared A's next ptr.

      I always asked the person talk walk through their answer with a simple a->b->c linked list and tried to help them arrive at a working answer. Some people appreciated it and tried to make it correct. Some people got very annoyed - first because they were being asked to write something this trivial, and second because they walked through it and found they got it wrong.

      Lots of people got it correct on the first try.

      --
      Invalid Checksum. Retrying.
    7. Re:Simple tests by BitchKapoor · · Score: 1
      "- 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:
      // - List is not circular.
      // - Last item's next element is NULL (0).
      ListItem *reverse(ListItem *item)
      {
      ListItem *prev = null;
      while (item) {
      ListItem *next = item->next;
      item->next = prev;
      prev = item;
      item = next;
      }
      return prev;
      }
    8. Re:Simple tests by darnok · · Score: 2, Interesting

      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 technical discussion
      - significant real-life experience with BOTH a compiled (e.g. Java, C#, C++, ...) and a scripting (e.g. Perl, Python, Ruby, ...) language. It's surprising how often this comes up, but people who say something to the effect of "I use {C#, Java, C++} for everything and never need anything else" basically lose me there and then; that tells me either they're very inexperienced and/or very inefficient straight away. Or possibly Richard Stallman ;->
      - experience working in a team, on some sort of significant project. That could be a CS project at university; what I'm interested in is their perspective on how the roles and responsibilities within a team dynamic work, what they've learned from the experience and where their personal interests lie
      - expertise in a mix of CS areas. I realise that's tough when you're just finishing a CS degree, but in that case people who've done units outside of the standard Java/C# coding stream would gain extra points from me. A guy who presents as "All I want to be for the rest of my life is a coder" probably won't work out that well in my experience; it's the guy who's prepared to take other stuff on that will tend to get ahead
      - a life outside of IT; family, hobbies, whatever. If you've got that, that generally means you've got fair to good time management skills in order to get your degree while keeping other balls in the air, and those skills will be called upon in most technical roles

    9. Re:Simple tests by some+guy+I+know · · Score: 1
      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 revappend(next, from);
      }
      else
      return to;
      }

      ListItemP reverse(ListItemP list)
      {
      return revappend(list, 0);
      }
      This code also fixes a minor error in your code where you had an invalid forward declaration.
      Other than that (and minor things like formatting and symbol names (e.g., "list" instead of "item")), I would have come up with the same solution that you did.
      I don't really see the advantage of recursion in this case; the iterative version is easier to understand IMO.
      (At least, in C; in LISP, the recursive version is better.)
      --
      Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
    10. Re:Simple tests by Anonymous+Brave+Guy · · Score: 1

      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. :-)

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    11. Re:Simple tests by Anonymous+Brave+Guy · · Score: 1

      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 = next;
      }
      return last;
      }

      By the way, using recursion with linked lists is often a bad idea. Unless you have a fairly small bound on the list length, you're likely to overflow the stack far too easily. Save recursion for O(log n)-depth data structures like trees.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    12. Re:Simple tests by BitchKapoor · · Score: 1

      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.

  16. Don't Lie by CertGen · · Score: 3, Interesting

    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.

    1. Re:Don't Lie by Ratbert42 · · Score: 2, Interesting
      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.

    2. Re:Don't Lie by Anonymous Coward · · Score: 0

      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.

      Dude, you just can't let anything go! And besides, it's not "amateur" it's ART.

    3. Re:Don't Lie by Atlantic+Wall · · Score: 1

      lol so true so true

      --
      To Hell with the Queen of England!
    4. Re:Don't Lie by eclecticgeek · · Score: 1

      No chance of that. I've tried to be as accurate on my resume as possible. And in the interviews I have further tried to qualify my knowledge i.e. yes I know Java OK, but it has been a little while since I used it and I am a little rusty.

    5. Re:Don't Lie by Ryne · · Score: 2, Interesting

      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 background than only Java?

    6. Re:Don't Lie by bladesjester · · Score: 1

      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.

      --
      Everything I need to know I learned by killing smart people and eating their brains.
    7. Re:Don't Lie by dubl-u · · Score: 1
      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

      The important thing is to be clear about your skill level. You could do it as
      Skilled: Java; Familiar: C#, Perl
      Personally, I think it's great that people dabble, and it's a given that any good programmer can pick up the rudiments of a new language quickly. But in an interview I'm looking to see not just what skills a person has but whether they have a realistic view of their abilities, and I prefer to see a bias toward modesty.

      I look at it this way: the ideal employee is, among other things, thoughtful and honest. If an interviewee seems to be overly modest or too self-critical, that's a problem that I can deal with pretty easily by encouraging them to stretch their range. If an interviewee seems arrogant, foolish, unrealistic, or willing to deceive in order to get what they want, then those characteristics are a big management problem because I have to keep more of an eye on them.

      So if I have to choose between two guys of equivalent skill, one who listed only Java and one who claimed strong skills in four different languages, I'll always pick the humble one. But to make sure you get in the door, it's probably best to list all your skills in a way that's upbeat but honest.
    8. Re:Don't Lie by CertGen · · Score: 1

      Provide a good assessment of your profiency with the language on your resume. Something like:

      | Language | Level of Proficency |
      | Java | Expert |
      | C++ | Beginner |
      | Perl | Beginner |

      Use some modesty in assessing your abilities. If I see an "Intermediate" level I'm going to assume you can write a few lines without needing that reference manual.

      An interview is a (too?) quick assessment of your skills and your ability to think and translate those thoughts into something tangible. It's okay to tell the interviewer that you're only comfortable in Java. (Mind you, you will look like and idiot if you say something like that when the job requirements listed LISP experience as a requirement. Don't apply for a job you are not qualified to hold.) It's better to be up front and honest about what you know than subversive and diliberatly vague. I'll be leniant if I ask you to answer a question in Perl and you say, "Hey, can you give me a quick refresher on Perl semantics? As you can see I have only professed to having a beginners level of Perl knowledge." I'd be down right friendly about helping you out if you were up front about what you do and do not know. Otherwise I'm inclined to try and make you cry. Or at least feel very, very dumb.

  17. Not Language Specific by etedronai · · Score: 2, Interesting

    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. Implement a fuction that takes in a string and returns that string with the characters in the opposite order.
    2. Implement a function with the same functionality as question 1 but implement it with recursion.
    3. Write me two functions, that are meant to run in a thread safe manner, where one function pushes strings on to a stack and the other retrieves data from the stack and prints out the string.
    4. Please develop a high level UML-like design for a simple thread pool. Please be sure to include ways to retrive threads out of the pool, exprire threads out of the pool when they have been inactive for a certain period of time, grow as usage increases etc.

    Those are the types of questions that I ask. Once they have answered all of the questions I generally sit down with them and grill them on their answers - to me this is the most important part as you get to see how they react to their answers being questioned, see how fast they can think on their feet and see how they pick up new ideas that are given to them and how they can apply that to the problems that are given.

    Just my 2 cents.

    1. Re:Not Language Specific by HeelToe · · Score: 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.

    2. Re:Not Language Specific by vbweenie · · Score: 1

      2. Implement a function with the same functionality as question 1 but implement it with recursion.

      That's how I would have implemented it to begin with, you insensitive clod!

      --
      Experience is a hard school, but fools will learn no other.
  18. Might never see one. by JVert · · Score: 2, Informative

    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.

    1. Re:Might never see one. by sevinkey · · Score: 1

      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 together.

      I gave all of the good candidates the same test: a simple ASP.Net page that I had written that populates a drop-down list using code, and change that to populate it using an xml file provided instead. I gave links to all of the documentation of relevant objects.

      Only one applicant got the answer correct and elegant happened to be someone we didn't expect: a recent college graduate who was already working tech-support in-house who didn't know c# or .net, but stayed up all night figuring it out. I got lots of answers back... many that didn't even compile (we're talking 9 lines of code here, and everyone else listed asp.net on their resumes!), and the more educated the person, the more conveluted the answer seemed to get.

  19. Choose Your Language-Functional by Anonymous Coward · · Score: 1, Interesting

    "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.

    Failing that there's Lisp or Smalltalk.

  20. I lost a job to one by Just+Some+Guy · · Score: 1
    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 unsigned 16-bit integer?

    A. LONG
    B. FLOAT
    C. CHAR
    D. SHORTINT
    and
    What's the result of this arithmetic problem:

    1 + 5 / 10 * 8
    My answer to the second was:
    If those are integers in Fortran's notation, and it is evaluated left-to-right, then the answer is 0. If they're integers and evaluated in the standard precedence, then it's 1. If they're floating point numbers left-to-right, then it's 4.8. If they're floating point numbers in the standard order, then it's 5.0.

    I'll go out on a limb and say that even if I didn't know Fortran, I certainly understood the concepts involved and could figure it out pretty quickly. Alas, I didn't get the job (in retrospect, thank God!). Too bad for them; two years later that ad is still running at least once a month.

    --
    Dewey, what part of this looks like authorities should be involved?
    1. Re:I lost a job to one by Glonoinha · · Score: 2, Interesting

      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 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.

      --
      Glonoinha the MebiByte Slayer
    2. Re:I lost a job to one by Anonymous Coward · · Score: 0
      I dont see how the answer is anything other than 5. Mul and div have got higher precedence than addition in every language. Case closed.

      As for the first quest, that should be C.

    3. Re:I lost a job to one by Just+Some+Guy · · Score: 1
      I dont see how the answer is anything other than 5.

      And that, my friends, is why the job is still unfilled two years later.

      --
      Dewey, what part of this looks like authorities should be involved?
    4. Re:I lost a job to one by Just+Some+Guy · · Score: 1
      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 least two years' of output in order to save one month of training (at the most).

      --
      Dewey, what part of this looks like authorities should be involved?
    5. Re:I lost a job to one by Anonymous Coward · · Score: 0

      explain? im a hardcore fortran programmer but i never write stuff like that without using parens around the important stuff cause compilers will sometimes optimize in odd manners that may violate operator precedense.

    6. Re:I lost a job to one by Just+Some+Guy · · Score: 1
      Mul and div have got higher precedence than addition in every language.

      And since I forgot to mention it earlier, just about any language that uses RPN expressions would have evaluated to "not enough operands" after the "+" sign. You're making the (naive) assumption that all languages have the concept of "precedence". Don't worry; you'll get to that in a couple of semesters.

      --
      Dewey, what part of this looks like authorities should be involved?
    7. Re:I lost a job to one by Violet+Null · · Score: 1

      If those are integers, the answer is 1. The 5/10 evaluates to 0, 0*8 is 0, 1+0 is 1. C will do this, for instance. Not sure about FORTRAN.

      #include

      int main() {

      printf("Result: %i\n", 1 + 5 / 10 * 8);

      return 0;

      }

      Will print out 1.

    8. Re:I lost a job to one by Bill+Dog · · Score: 2, Interesting
      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. Boss just wants him off his back so he says okay and tells HR to put up an ad. HR puts out the notice of the job, and responses fill an inbox or db somewhere. Boss never calls HR back to get a list candidates, because he doesn't care. Developer assumes company tried but couldn't find anyone.

      --
      Attention zealots and haters: 00100 00100
    9. Re:I lost a job to one by kristoferkarlsson · · Score: 1

      The expression is clearly stated as an arithmetic question, not an expression in some programming language, so 5 whould be the only valid answer.

    10. Re:I lost a job to one by Anonymous Coward · · Score: 0
      Mul and div have got higher precedence than addition in every language. Case closed.
      Not quite.
      In APL, expressions are (usually) evaluated from right to left.
      So "2 × 3 + 1" would evaluate to "8", not "7".
  21. Its about how you think by bluGill · · Score: 1

    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 compiler they gave me doesn't support correctly because it is old and obsolete) I got the job because I approached the problems correctly, trying a variety of things, Thinking out loud, and eventually got good answers. (In one case I solved a sequence that the interviewer said he had never seen anyone solve before)

    Do not stick to just programing skills. Most of the test is likely to be logic puzzles that have little to do with programing.

  22. My experience by Pan+T.+Hose · · Score: 2, Insightful

    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, but the Real World(TM) is very different. In the Real World(TM) understanding CPAN and APT is more important than understanding the Turing Machine, even if the latter is otherwise much more important than the former for any serious scientist. Today usually in every group of candidates there are at least few who have their code to show, so it's pointless to waste time on those who don't. Also, it seems important to award those who are productive and useful to the humanity at large, to punish and motivate those who aren't, and to tell the Big Boss(TM) "I told you, embracing the open source paradigm is profitable and good for the economy. Why not be more proactive from the hiring perspective and always demand appropriate portfolio up front?" This is just a common sense. For example, hiring a Debian developer you can expect that he will be able to package his software and install it properly on all of the systems instead of cluttering the filesystem with junk and making the servers expensive to migrate. Similarly, hiring a CPAN author you can expect that he will know how to use standard Perl modules instead of wasting his time and your money on reinventing the wheel and writing one big-arse slow-as-hell monolithic stand-alone CGI script when a nice hierarchy of mod_perl modules would work like a charm. I could go on and on forever, but I guess you get the point already. I never buy a cat in the bag. Neither should anyone else. This is not to say that free software and open source is "better" than its proprietary counterpart, but it surely is more visible.

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
    1. Re:My experience by Anonymous+Brave+Guy · · Score: 1

      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?

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    2. Re:My experience by Anonymous Coward · · Score: 1, Insightful
      Also, it seems important to award those who are productive and useful to the humanity at large, to punish and motivate those who aren't, and to tell the Big Boss(TM) "I told you, embracing the open source paradigm is profitable and good for the economy.
      I always ask if the person believes in Jesus, and punish them if they don't by not giving them the job. See, I'm a fucking religious kook asshole too.
  23. Relax and be yourself by anomalous+cohort · · Score: 1

    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 written exam gives a baseline from which you can compare candidates.

    Most certification tests are incredibly innacurate and nearly useless because test making is itself an art. If you want to test how much you learned in college, then take the CS GRE.

  24. MOD PARENT DOWN by Anonymous Coward · · Score: 0

    Contains concealed links to obscene peverse gay porn (goat.cx) and necrophilia (bucket.cx).

    1. Re:MOD PARENT DOWN by Anonymous Coward · · Score: 0

      can't find those links....
      runs away dissapointed

  25. It could just suck by Anonymous Coward · · Score: 0

    Interviewer: Here finish this product for us and we'll see what we can do. --1 month later-- You: Ok here it is! Interviewer grabs CD with the code on it Interviewer: Oh well we hired someone else, thanks you. Next day you see the company release a headline talking about this revolutionary product you just made for them.

    1. Re:It could just suck by dnhughes · · Score: 1

      You didn't get the job because you forgot to protect your interests. You should have given them an executable and a CD of the source encrypted. That way you hold the key and your release of the key is contingent on the offer.

      --
      "When I die, I want to go quietly, like my grandfather, in his sleep... not screaming, like the passengers in his car."
  26. Are you serious? by Anonymous Coward · · Score: 2, Interesting
    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.

    You might be able to build a sea worthy vessel out of copper. You'd certainly have plenty of sand to form a mold.

    1. Re:Are you serious? by Jorkapp · · Score: 1

      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.

      --
      Frink: Nice try floyd, but you were designed for scrubbing, and scrubbing is what you shall do.
  27. Smartest Test by Poietes · · Score: 2, Interesting

    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 problems without requiring them to demonstrate rote learning of tons of APIs. If you get a skill test along these lines, count your blessings and do your best to get a job with the company that set it. They understand what programming's about.

    1. Re:Smartest Test by tomstdenis · · Score: 2, Interesting

      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% to an answer so they were a bit annoyed but decided to interview anyways. During the interview they gave me another question [about how to draw some form of pascal triangle].

      While we were discussing the question I basically asked him "does solving puzzles make me a great employee?" to which he replied "it's good to know how you think" or some such.

      See my background is crypto and math. I know how to multiply fast, how to exponentiate fast, etc. But because I took the full 3 minutes to write the algo [for the triangle thingy] he seemed not pleased as if I wasn't smart enough for the job.

      So I then asked him to give me an algorithm to multiply 1024-bit numbers quickly [less than n^2 time] to put him in his place. He said he didn't know how and was mystified by the question. I told him "oh, well because YOU can't solve that puzzle you're a bad employee".

      At which point the interview was over.

      To me interviews are stressful. Giving stupid questions is retarded. Wanna see what I'm capable of? Check out the 100,368 lines of C, TeX and Perl that make up my public domain portfolio [e.g. libtom projects] that is used by corporations around the globe.

      But somehow that doesn't count.

      During an interview at entrust [a crypto company] they didn't seem to care about LibTomCrypt and more so if I could debug a Java program they printed out [it had a race condition]. I never said I was proficient at Java [my resume lists it but all my projects are in C].

      Mostly I think interviewers don't do proper background checks. They [entrust] never downloaded a copy of LibTomCrypt to look at it. The questions were not suited to my resume [they called me first!] and I left feeling stupid because I couldn't answer the questions properly. ... just my experience...

      Tom

      --
      Someday, I'll have a real sig.
    2. Re:Smartest Test by Anonymous Coward · · Score: 0

      you refused to anwser a question, threw some dumbass question back, then insulted the guy because your ego was threatened?

      I don't care how smart you think you are, I hope you never work for me.

      and I'm not in the least surprised you're still trolling for jobs on /. and your web page.

    3. Re:Smartest Test by Schwarzchild · · Score: 1

      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.

      --

      "sweet dreams are made of this..."

  28. Worst interview ever! Ever! by PylonHead · · Score: 3, Interesting

    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.

    --
    # (/.);;
    - : float -> float -> float =
  29. Dont leave us hangin! by Anonymous Coward · · Score: 0

    Didya walk out?

    1. Re:Dont leave us hangin! by PylonHead · · Score: 1

      Oh, I totally walked out. I ran into one of the guys two years later at the Computer Games Developers Conference. I found someone willing to pay me to work on games, and two years later he still hadn't found anyone to program his.

      --
      # (/.);;
      - : float -> float -> float =
    2. Re:Dont leave us hangin! by Gnulix · · Score: 1
      Didya walk out?

      Nah, he pulled down his pants, got down on all four and said "Please, sir, may I have a little more?". Just as we'd all do for the chance to become game coders...

    3. Re:Dont leave us hangin! by Anonymous Coward · · Score: 0

      u kidding!?

      game programming is the pits. it's hard, pay is crap, deadlines (like Christmas) can't be put off.

      and it's boring.

      after the age of 13, game programming, like train driving, really loses its appeal.

    4. Re:Dont leave us hangin! by PylonHead · · Score: 1

      Actually that's what I eventually found out.

      The hours are long for the paycheck you're getting. (on the project I was on, we went into "crunch time" 60 hour weeks for 6 months straight).

      But the worst part was that generally, the work I did was about as boring as the Windows apps I had been writing before. I remember spending 1/2 a day adjusting the AI of a pidgeon to get the poop to come out at the correct intervals.

      I discovered to my chagrin that I enjoyed playing games and writing code, but not working as a professional game coder.

      I am still like playing around with writing simple games in my spare time, but it's much more pleasurable when you make all the design decisions, no deadlines, etc.

      --
      # (/.);;
      - : float -> float -> float =
  30. Yes by Pan+T.+Hose · · Score: 1, Troll

    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?

    Yes, but not just because of the public contribution. Let me rephrase it: I would always hire someone who I know is good over someone who I don't know whether he is good or not. And by "good" I mean both a good programmer and a good citizen.

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
    1. Re:Yes by Anonymous+Brave+Guy · · Score: 1
      I would always hire someone who I know is good over someone who I don't know whether he is good or not. And by "good" I mean both a good programmer and a good citizen.

      So would you also include someone who appeared to fall into both categories but for other reasons? For example, someone who regularly participates in on-line programming forums might have plenty of sample code available there, and might be a great help to less experienced users of whatever languages or tools are being discussed. More generally, someone might have a strong professional programming background, but choose to do volunteer work for charity in their spare time. Obviously in that case you can't necessarily see a sample of their code on-line, though their work might be of excellent quality and they're certainly helping society in a useful way. Would these people attract your attention?

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  31. Who cares? by loony · · Score: 1

    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 same time get work done... So while doing something that takes long, he has to be able to either get interrupted and then go back to his work where he left off or he has to go tell people to hold on. Someone who gets interrupted and then doesn't know what he was doing will get lost. So while my college asked some questions that took a long time to explain I constantly interrupted (asking for more detail or other related short questions) and then watched the reaction of the candidate. One of the guys I interviewed got thrown off by it and wasn't able to ever go back to the question asked by my college - he would have failed in our environment...

    Guess the point I'm trying to make is that you anyway never know what someone looks for - so don't bother studying or worrying what might happen. Relax, do your best and just try be yourself.

    Peter.

    1. Re:Who cares? by Anonymous Coward · · Score: 0

      Did you explain what you were doing to the interviewee? If you didn't, I would probably just assume that you were an asshole and not accept any offer from you.

  32. Quizzed in an invented language by dmorin · · Score: 3, Interesting
    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.

    1. Re:Quizzed in an invented language by Anonymous Coward · · Score: 0

      Hi,
      Just out of interest, was that interview with the invented language at Intersystems, the makers of Cache ? If so I've done that too, it was probably the most difficult technical test I've ever done in an interview.

    2. Re:Quizzed in an invented language by Anonymous Coward · · Score: 0

      Yup, that must be Intersystems. I interviewed with them a coupla years ago. They are really serious about recruiting: I was in for a "lowly" engineering position, but they me asked in for four or five interviews and sent in all the top executives except for the CEO himself. (BTW, judging by their opinions of Terry Ragon, he is apparently the long-lost twin of Steve Wolfram. :-)) Toughest interview ever, and a very interesting experience overall. But it wasn't that difficult in a technical sense. I went through the abovementioned test on the fly, cashing in 19 pts of 20. Was happy to hear afterwards that 18 was the lower limit.

      Didn't get the job though, as they decided to hire a guy who one of the managers had worked with before, on the grounds that he would fit better into the team. Oh well, their loss... ;-)

      --Mr. Unnamed Slashdot Reader

  33. I would because it means they know the OS world by michaelggreer · · Score: 1

    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.

    1. Re:I would because it means they know the OS world by Anonymous+Brave+Guy · · Score: 1
      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? :-)

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  34. MacGyver a Powered Transmitter? by Schwarzchild · · Score: 2, Interesting
    "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 are.

    --

    "sweet dreams are made of this..."

    1. Re:MacGyver a Powered Transmitter? by oliverthered · · Score: 1

      You've got enough stuff to make a generator, food for life a nice beach view and hot running water, why bother with the SOS.

      --
      thank God the internet isn't a human right.
    2. Re:MacGyver a Powered Transmitter? by UntamedPlayer · · Score: 1

      Given the aforementioned materials one can build a battery (hell it's been done with urine). Once you've got a power source you build a spark-gap transmitter, and use it to transmit SOS. When the press interviews you upon your arrival back in civilization, attribute your escape to the solid, scientifically grounded education foisted on you by your parents. Don't ever, ever, admit to having read either Murray Leinster's "Exploration Team", or Harry Harrison's "Deathworld 2". >;-{>

  35. My experience with a test by Anonymous Coward · · Score: 0

    [posted anon for obvious reasons]

    I recently did a programming test for a job at Bussiness Objects and it was a complete disaster. I did the test and walked out feeling confident that I had passed. Imagine then, my horror when they contacted me and informed me that I had failed it.

    I was stunned. I had been so sure my solutions were correct. So I immediately sat down and wrote out all the questions and my solutions (there were only 4, so it was easy to remember them). I then tested these solutions, and they worked correctly. I then sat down with someone who had done the same test (and passed) and asked him to go over the solutions with me -- it turns out his solutions were almost identical to mine.

    So why did I fail? Well, it turns out that they outsource the marking of the tests, and they get bored, disinterested university students marking the tests. You can guess what happened...

    It was an aggravating, humilitating experience which has given me a deep distrust of such tests.

  36. swap two ints without creating any new variables by rjshields · · Score: 1
    I was once asked to swap two ints without creating any new variables, using pseudo-code, e.g.:

    void swap(int a, int b) {

    // swap the values
    }
    --
    In this world nothing is certain but death, taxes and flawed car analogies.
  37. Algorithm design by BenjyD · · Score: 1

    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 aces (1 or 11) as the average source of points.

    This was after three hours of written exams, logic tests and IQ tests, so my brain was mush already and I failed majorly.

  38. Skill test suggestions. by puffysleeves · · Score: 1

    A few suggestions for how to answer a problem solving- or coding-type interview question:

    - Talk as you work through the probem. The interviewer is trying to determine how you go about tackling a difficult problem and the more you communicate, the easier this is and the better it reflects on you. You're going to have to be able to discuss what you're doing with coworkers and this is one good way to show the intervewer that you have those skills.

    - Ask lots of questions. Make sure you fully understand the constraints on the problem and what they want. Do this before you start designing and coding. Again, you'll likely get ill-defined problems once you start working and you should show the interviewer that you can ferret out the true work from a poor specification.

    - Don't be afraid to make mistakes. Most people don't get the right answer the first time and have to iterate through the problem to figure it out. It's never bad to sketch out a quick brute-force solution first-thing as it usually helps to have a working base from which to derive your eventual solution. It is important, however, that you can explain the strengths and weaknesses of any solution you come up with, especially the time it will take to run. It's also important to keep refining your solution to an even better answer.

    - Use appropriate languages and techniques for the question being asked. If you're asked a low-level programming or data structures question then don't start spewing out a bunch of STL-based C++ code; chances are the interviewer is interested in knowing that you actually know how a linked list works "under the covers". Of course, if they're probing your knowledge of STL then an STL-based answer would be appropriate. Ask the interviewer if you have any doubt.

    - Always check your work. Walk though your algorithm with some sample input to make sure that you have everything correct. Check every edge case. Make sure that you're verifying that the inputs are correct. This is where you show the interviewer that you have good attention to detail.

    - Never give up. Never admit that you're stumped. Simplify the problem if need be, come up with a design then add any complexities back in. If they ask something you don't know then admit it and ask questions to try to figure it out. Deriving the answer from clues is often more impressive than simply knowing the answer up-front.

    Your goal for the interview is to show the interviewer that you have the abilities they're likely to need. Such skill tests can be vital in selling yourself to them; figure out what they're likely to want and use the test to show them what you can do.

  39. Exams by Anonymous Coward · · Score: 0

    This really ticks me off to no end. I had a recruiter CALL ME last week. He seen my resume online. He asked for me to send him a copy of the resume in MS Word format. OK. No problem - even though the resume is posted on the job site where you have the option to download it in word format. Anyway, he calls back and wants me to come down for an interview (2 hour drive) and quickly (at the end of the conversation) added "and a few tests."

    I get annoyed when asked that to begin with but especially when they're the one that is contacting me! I include a complete skillset with my resume and it leaves no doubt whatsoever as to my abilities. So, it's very insulting when they ask this of me - it's as if they don't believe me - that I've done nothing for the past six years while employed as a system administrator / programmer.

    Just my 2 cents...

  40. Evil Java question by rjshields · · Score: 1, Interesting
    I've never been asked this one, fortunately because I would have got it wrong:

    int i = 0;
    i = i++;
    What is the value of i now? (Hint: it's not 1)

    It seems Java behaves differently from other languages in this respect.
    --
    In this world nothing is certain but death, taxes and flawed car analogies.
    1. Re:Evil Java question by rjshields · · Score: 1

      Sorry to reply to my own post, but it turns out Java behaves like most other languages and C and C++ behave differently (in C and C++ the answer would be 1).

      --
      In this world nothing is certain but death, taxes and flawed car analogies.
    2. Re:Evil Java question by IndiJ · · Score: 1

      Incorrect, this invokes undefined behaviour in C++ (see here).

      I don't know why you would expect that this should give 1, or what else you think it should give (0?), nor do I know what Java or most other languages would do with this. The key problem rests on how you interpret "i++". Does it mean "return the value of i and immediately increment before doing anything else (ie, returning the value of i and incrementing is an atomic operation)", or does it mean "return the value of i and increment after the statement is complete but before the next statement", or something else? 10 programmers will give you 11 different answers on what it should do.

      It's all well and good if the language specifies the behaviour enough to make this statement clearly defined, but even then I'd smack the punk that handed in code like this.

      --
      It's hard to soar like an eagle when you're surrounded by turkeys.
    3. Re:Evil Java question by rjshields · · Score: 1

      Exactly, no-one in their right mind would write code like this, but some exams would expect you to know the answer. A more enlightened exam perhaps would not ask questions like this since there are undoubtedly better ways to to test a programmer's knowledge and aptitude.

      Incidentally, the answer in the case of Java, Perl and Javascript is 0. Gnu C and MS VC++ give 1.

      --
      In this world nothing is certain but death, taxes and flawed car analogies.
    4. Re:Evil Java question by theghost · · Score: 1

      int i=0;
      i=i++;

      In this example, the value of i (0) gets reassigned to i and then gets incremented (but not stored).

      To get 1, you would write it like this:

      int i=0;
      i=++i;

      That way it gets incremented before being reassigned.

      Personally, i think it's a stupid feature of the language that's just begging to be used in buggy code. (Critics will say that about all of Java, but to each their own.)

      --
      The only thing necessary for the triumph of evil is that good men do nothing.
    5. Re:Evil Java question by IndiJ · · Score: 1
      Gnu C and MS VC++ give 1.

      ... and CodeWarrior gives 0. Undefined behaviour is undefined behaviour.

      However, in your case, this may have been a good question. If Java specifies that post-increment is done "atomically" (which, IIRC, it does), asking this question may be a good way to test just how well the applicant knows the ins and outs of Java. It may not be good programming practice, but that's not what the question is testing.

      But the minute you start trying to guess what will happen in C or C++, as in:

      in C and C++ the answer would be 1

      ... you are wrong.

      --
      It's hard to soar like an eagle when you're surrounded by turkeys.
    6. Re:Evil Java question by rjshields · · Score: 1

      Undefined behaviour is undefined behaviour.

      You have already established that point in your previous post - there is really no need to keep making the same point.

      --
      In this world nothing is certain but death, taxes and flawed car analogies.
    7. Re:Evil Java question by Anonymous Coward · · Score: 0

      it could be a pretty good question for a compiler writer, ask him to explain why a compiler might give 0, why another might give 1 etc. fully understanding why there are so many ways to increment an integer in C and how they all relate to asm is a good question.

      in Java, tho, it's useless.

  41. Maybe by Pan+T.+Hose · · Score: 1

    I would always hire someone who I know is good over someone who I don't know whether he is good or not. And by "good" I mean both a good programmer and a good citizen.

    So would you also include someone who appeared to fall into both categories but for other reasons? For example, someone who regularly participates in on-line programming forums might have plenty of sample code available there, and might be a great help to less experienced users of whatever languages or tools are being discussed. More generally, someone might have a strong professional programming background, but choose to do volunteer work for charity in their spare time. Obviously in that case you can't necessarily see a sample of their code on-line, though their work might be of excellent quality and they're certainly helping society in a useful way. Would these people attract your attention?

    They would probably attract my attention, especially if they were females! But, seriously... Someone helping a charity is certainly a very good citizen, and might be a great programmer, but I have no way to be sure if I cannot see a finished project. Someone active in on-line forums would certainly be a great help to less experienced programmers, but I wouldn't hire those in the first place. The problem with not contributing to open source projects is that it looks very suspicious to me. When someone tells me "this is impossible to do because of a bug in the operating system [or a compiler, library, interpreter, etc.]" I say "So?" because if someone cannot fix a simple bug in open source software than we might use proprietary crap just as well. It is just a common sense to hire someone who has already done it, to avoid possible problems in the future. You are right that a proprietary programmer may be just as good or much better than a free software hacker, but the point is that not being able to see his code, I can never know it. On the other hand, it is quite common to not hire someone when he shows you some crappy mp3 player on sourceforge, or you find some stupid questions on the mailing lists (Google groups is priceless for that sort of investigation--here's an advice: always use a pseudonym to ask questions). The answer to the question "is one a good programmer?" has only one difference between proprietary and free software developers: most of the programmers in both groups are incompetent, but it is easy and fast to determine in the case of free software, and nearly impossible otherwise. The difference is in the level of transparency. The second thing is the experience using open source tools and systems, and the ability to fix them when needed. This is the difference between Microsoft mentality where even the best programmers can only beg Microsoft to fix a bug in their compiler and meanwhile work around it until they maybe fix it ten years later, and the open source community where anyone can send a patch to GCC and have it fixed in the next release, and meanwhile happily use the locally patched version until the patch is present in the main branch after few days. Another thing is the issue with NDAs. It is foolish to hire anyone who has signed any kind of NDA which will interfere with your projects, and it is even more foolish to sign such NDA in the first place. Likewise, it may be unwise to hire someone who has accepted any EULA containing NDA and anticompetition clauses. You don't have said problems when working with GPL, do you?

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
    1. Re:Maybe by Anonymous Coward · · Score: 0

      You sound like a real fucking dumbass.

      Does mommy know you're using the family computer?

      Go back to your bedroom and continue jacking off to your framed copy of the GPL.

  42. Re:swap two ints without creating any new variable by BenjyD · · Score: 1
    void swap (int &a,int & b)
    {
    a^=b;
    b^=a;
    a^=b;
    }
  43. You all have the wrong idea by IndiJ · · Score: 3, Funny

    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 fauna would be granted titles, such as Marquis, Earl or Chuck. Those that show signs of causing trouble must be controlled, so a prison will be built near the sulfur by hammering four nails into the ground and tying the rope around them to form guard walls. Burly Sgt. Coconuts will be placed at each corner, and a sadistic Chuck Berry in charge. Prisoners will be forced to work in my sulfur mines.

    By this point, I shall be undisputed Lord of the Island. So to celebrate that fact, I shall begin construction of a 100m tall effigy of myself in copper and obsidian (for the sake of morale and artistic freedom, certain physical attributes may be emphasized or diminished, as necessary). The sail will serve as a cover to prevent the work from being seen before it is finished.

    Of course, during construction, I will begin to create my armed forces. Mostly this will involve drilling the birds (air force), fish (navy) and crabs (marines) until I am satisfied that they show military spit and polish.

    After years of rule, I imagine some passing ship will notice a 100m tall copper statue on a supposedly deserted island. By this time my rule will be assured. I will not leave the island, instead declaring my domain a sovereign nation and offering to host affluent guests from around the world - for a fee. I will also create a website, offering the services of the elite of my armed forces as mercenaries for hire, again for a fee. Eventually, I will pass on the throne, and retire to the mainland to live large off of the book deals, and movie revenue.

    His Imperial Majesty,
    King Indi I of Indiland

    --
    It's hard to soar like an eagle when you're surrounded by turkeys.
    1. Re:You all have the wrong idea by Wilk4 · · Score: 1

      very creative... time to up your meds again though. ;-)

    2. Re:You all have the wrong idea by Anonymous Coward · · Score: 0

      It didn't say anywhere in the quiz that there was a ready source of crack cocaine on the island.

  44. Re:swap two ints without creating any new variable by Anonymous Coward · · Score: 0

    Ack, that's easy.

    void swap(int a, int b) {
    a ^= b;
    b ^= a;
    a ^= b;
    }

    Of course, that'll discard a and b afterwards. You might want to print them out, or declare int * a, int * b.

  45. easier than that (one line) by generationxyu · · Score: 1

    void swap (int &a,int & b)
    {
    a ^= b ^= a ^= b;
    }

    Yeah, it's the same thing, but you know CS majors... we have to compete to get the shortest, most obscure code.

    --
    I mod down pyramid schemes in sigs.
    1. Re:easier than that (one line) by ameline · · Score: 2, Interesting

      I'm afraid I can't hire you with that answer. While shorter, it is clearly undefined in C/C++. I quote (from memory) the relevant ANSI/ISO standard; "Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression. Furthermore, the prior value shall be accessed only to determine the value to be stored." You are modifying 'a' twice between sequence points. And NO, an assignment operator is NOT a sequence point.

      --
      Ian Ameline
    2. Re:easier than that (one line) by generationxyu · · Score: 1

      When did it ask for ANSI C/C++? The question was looking for problem solving/knowledge of the language. Not for it to pass --ansi, or even -Wall.

      --
      I mod down pyramid schemes in sigs.
    3. Re:easier than that (one line) by ameline · · Score: 1

      It doesn't matter if you use --ansi or -wall, and ignore the warnings -- independent of compiler options, the above code will not work reliably across different compilers. And possibly not work the same with different options (think optimization) on the same compiler. Such blatant ignorance of one of the most important and common pitfalls of the language sends up a very big red flag for me. And whether the question called for ansi-c, the solution was clearly written in c, and therefore it behooves the author of the code to ensure that it conforms to the relevant standards for that language -- especially with regards to undefined behaviour.

      --
      Ian Ameline
  46. Listen by mattpalmer1086 · · Score: 1

    I used to interview for a small company. We were interested in people's technical abilities sure, but also very much in how well they could work in a team.

    We used to set a design test which would take about half of the interview. Books and internet access were allowed - this wasn't a memory test. The next half of the interview was all about what would happen if the requirements suddenly changed. We'd work together and explore how we might change the design in different situations.

    The worst candidate I ever interviewed could not seem to get it through his head that the whole point of the second half was to work with me on changing the design. He just kept saying "But you didn't tell me that right at the start - that's not how I designed the system" and I kept saying "I know - the whole point of this is to see how you deal with changing requirements working in a team.".

    He didn't get the job...

  47. Gilligan's Island by obtuse · · Score: 4, Interesting

    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.

    --
    Assembly is the reverse of disassembly.
    1. Re:Gilligan's Island by zlexiss · · Score: 1

      One needs to rub three things togther to get a flat surface. If you use just two, you end up with one concave, one convex..

  48. Seen a lot... by sgauss · · Score: 1

    I've seen them running the gamut, from an IBM programmer's logic test that they gave to everyone, to grueling questions concerning language nits. I think language nits don't accurately gauge on the job performance, as they are 1) The sort of issue you don't deal with. 2) Gotchas that reasonable programming style will avoid. A shop where I was working used to ask simple programming questions, the kind of thing that could be done in twenty lines or less. That seemed pretty reasonable as a lot of the questions were basic programming tasks. It's done interactively, one-on-one as much to see how you think as how well you program. One place I interviewed at, the test was heavily based around the string pasting functionality in the C Preprocessor. Having gotten a heads up on that, with five minutes of preparation it was easy. But without prior warning, given that it wasn't a Preprocessor feature I was using, I would have failed miserably. I've run into Brain Bench on my current job search. They have a large question pool, with the question difficulty supposedly advancing to challenge the test taker. It seemed like a lot of nits to me, some of which I knew, some of which I didn't. A lot of stuff on the Standard Library, which I'm somewhat familiar with, but as I've worked a lot in Windows, I'm more familiar with MFC. They encourage you to use sources, but with only three minutes per question you can only check so much in Stroustrup! Side rant: I've got headhunters asking if I have BrainBench certifications. Given the cost and the fact that the certifications only last a year, why would I do that? I could probably spend over $500 a year staying certified in what I consider are my core skills!

  49. Programming Interviews Exposed by psykocrime · · Score: 2, Informative

    The book Programming Interviews Exposed 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.

    --
    // TODO: Insert Cool Sig
  50. ITA software has some interesting problems by alw53 · · Score: 1

    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

    1. Re:ITA software has some interesting problems by Anonymous Coward · · Score: 0

      and the company does airfare shopping!

      what a load of crap. I've worked for years in business software, and those tests test things totally irrelevant to what makes a successful programmer. you just never write shit that hard (or very rarely and when you do you have time to do it). but you do need to talk to people, write docs, understand subtleties, not mathematical complexities. write stuff that always works, not 'optimal' (which has a unique meaning in comp. sci. not found anywhere else, least of all in air ticket booking programs).

      business software just isn't for geeks who like fancy algorithms and optimisation problems. in fact, they're a menace, and a right royal pain in the ass when you come across one.

  51. Good, Bad, and Ugly programming skills tests by staplin · · Score: 2, Insightful

    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.

    1. Re:Good, Bad, and Ugly programming skills tests by Anonymous Coward · · Score: 0

      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.

      I should hope so, since the STL is in C++, not C.

    2. Re:Good, Bad, and Ugly programming skills tests by staplin · · Score: 1

      Good catch, that should have be "a linked list in C++".

  52. Depends by Stormcrow309 · · Score: 1

    When I interview, it depends on the resume and the skillset I need. I tend to cover standard logic problems in psuedocode just to see if they can think. I also cover some light real world applications based off the languages the person claims, but not too many esoteric questions. Well, unless someone says that they know everything about a subject. That is when I find out how long before they go insane over windows api calls and what they do. (We are a systems and programing dept that supports mostly windows clients in a large corporation)

    --

    In God we trust, all others require data.

  53. I want to call bullshit by Schwarzchild · · Score: 1
    on this. I've cooked a lot with copper and I've never felt ill.

    I'm sure that if you ingest a lot of copper then you could get ill but if you cook with a clean copper pan and avoid acidic foods I'm sure you'll be ok.

    --

    "sweet dreams are made of this..."

    1. Re:I want to call bullshit by FortKnox · · Score: 1

      I went back and did research. Egg whites are the issue. If you beat egg whites in a copper bowl, some copper ions come out of the bowl and into the eggs. This is actually good, because this helps the eggs become harder to 'unfold'. However, if you do it a lot, you it can be dangerous to have that much copper in your diet.

      So I guess I did overestimate the 'poisonous' part, but it was coming off the top of what I remembered rather than actual research I did right then.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
  54. Evil C++ question by Anonymous Coward · · Score: 0
    delete this;
    Under what circumstances would the above be appropriate/inappropriate?
  55. Talk Coherently, Intelligently, Enthusiastically by 4of12 · · Score: 1

    ...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.

    --
    "Provided by the management for your protection."
  56. Testing potential employers at interview by Anonymous+Brave+Guy · · Score: 1
    No one wants to work at a place that's clueless or screwed up ... and the kinds of questions that are asked and how they're worded is one of only a few major clues available to the interviewee into what it might be like to work there.

    That's very true. My current employer's interview process was pretty good. The first was a technical interview, wherein I was asked some relevant mathematical questions and to write a fairly straightforward function to do some floating point work without kindergarten errors. Up to this point, I was impressed both with the interviewers' (now my boss and boss's boss) comments and with how they conducted the interview itself.

    Then they asked me what I thought of an example function, producing some sample code the function identifier XXXX'd out. My immediate reaction -- and I said this out loud -- was "Well, whoever wrote it should be shot." The formatting was terrible, the variable names were unhelpful, and there were no comments, for a start. There were more egregious things, too, notably the dreaded misused operator overloads. Fortunately, they thought I was just joking about the function name; it turned out to be real code from the project I was going to work on!

    After seeing the kind of code they wrote, I nearly walked away before the second interiew. The coding standards are still the worst part of the job, but most of the more heinous crimes have been stomped on by the sheer force of my team's will, and fortunately the remaining aspects of the job are enough to make up for it. But I nearly never knew.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  57. Actually happened to me once... by cwolfsheep · · Score: 1

    About 2 years ago, I had an interview with a call-in center that wanted help maintaining a VB application: they had a bug they wanted me to fix, so I did some research, found a tidbit online that looked like someone else asking how to fix the exact same problem, cobbled a solution between their notes & mine, and submitted the fix. Never heard from them again until I called a month later stating they "hired someone already."

    --

    Life is irony, and nothing ever goes as planned.
  58. Re:swap two ints without creating any new variable by Anonymous Coward · · Score: 0

    void swap (int &a,int & b){
    a^=b; b^=a; a^=b;
    }


    #include <iostream>
    using namespace std;
    void swap (int &a, int& b) {
    a^=b; b^=a; a^=b;
    }
    int main(){
    int i = 7;
    swap(i,i);
    cout << "i: " << i << endl;
    }

    ---Output---
    i: 0

  59. you're hired!!! by NateKid · · Score: 1

    are you willing to relocate?