views:

1103

answers:

14

I am In a situation where for an interview I have been asked to code For half a day and create a web based gallery with tagging, search, uploading, rating and so on. I'm starting to worry that I can't possibly fulfill the requirements in the alloted time. Does this mean I'm not good enough or is it a test designed not to be beaten?

Edit: after talking with the developers there I believe they are quite genuine and after seeing some of their work I do believe they are know what they are doing. I also don't believe they just want some free 4 hour gallery as I have seen some of the galleries they have made and they are impressive

+6  A: 

If you know what you're asked to do, can't you practice ahead of time? What language is the application to be written in? In certain languages/web frameworks that would not be an issue if you were facile enough (e.g. Ruby on Rails) whereas on others it would probably be a real bear (e.g. Java/Struts/Tomcat).

I82Much
+5  A: 

I'd say it can take a half of a year not a half of a day to complete this project properly.

Yes, it's definitely too much coding for a job interview session. Either people who're asking for this do not understand software development or they just want to rip off some free coding results from you.

Developer Art
+10  A: 

Personally I think that's too much to ask for - it sounds like they want some work done for free. Is the company a good one?

Galwegian
Why would any company want to use interview candidates to get a 4 hour chunk of work done for free?
Mike Two
Yes I too think it's too much to ask for, but then again there are companies where interviews last for days not hours ... so it really depends if they really offer as much as they ask, if they do then it might be worth spending 4 hours coding.
Pop Catalin
@Mike - I don't know the first thing about this company. Neither do you as far as I know. There are some pretty dodgy 'companies' out there.
Galwegian
@Gelwegian - No I don't know anything about them. It wasn't meant to be a criticism of your answer just a follow on. I wasn't asking why you thought that but why would they do that? Dodgy or not, what could it possibly accomplish?
Mike Two
@Mike - agreed, very little - but as I say, we don't know enough about the company to ascertain whether they're genuine or a bunch of chancers.
Galwegian
+3  A: 

What they are looking for is a work horse. Look somewhere else.

Vivek
you might be right, i feel its small company.
01
+1  A: 

Yes, I would consider it a completely ridiculous requirement for an interview; only you can decide how badly you need the job vs your desire to complete the task :) But it is not, from my experience, normal. Only once, many years ago, was I asked to write a program over night (and it wasn't particularly involved).

Noon Silk
I was once asked about it to and program was really challenging, so ive done it. but there was some problems with their email account and i think they have not even got it. it was cool program and i even now use it ;)
01
+3  A: 

I guess they want to know how you structure your database and your code.

Ghommey
+1  A: 

I'm sure that completion won't be valued more than quality, and if it is then is that a job you really want in the long run?

Droo
I can imagine interview after that and them saying "you're app was amazing, but we can pay you half of what you want"
01
+15  A: 

I wouldn't worry about fulfilling the requirements, I don't imaging that is what they are expecting. (This is taking a guess without knowing anything about the company)

They probably want to see how you work, what questions you ask, what approach you take.

Also it's a good test to see if you can handle unreasonable demands in a reasonable way.

Andrew Barrett
I was thinking more they just want to see how much you can get done and get a larger sample to evaluate.
Joel Coehoorn
It could be that. But if you want to see if a developer can code, and get a good sample of it, you might as well scope down the problem you ask them to something a bit smaller and more tightly specified.You could definitely work on that problem validly for half a day without getting a lot of code done. I guess it's up to you to scope something small enough to get done in half a day and still be useful. Sounds almost fun.
Andrew Barrett
+21  A: 

I've worked at a place that asked a similar kind of thing. The point wasn't to accomplish the whole thing. We wanted to see if people would estimate, give good feedback on what they could get done in 4 hours that was still worth something and then execute on that plan. No one ever came close to getting more than 10% of the requirements done.

Several people refused to do the work because they thought we wanted problems solved for free. That would be crazy. If it is something I think can be coded in 4 hours I don't need interview candidates to do it.

If anyone still feels a potiential employer is trying to get free code out of them then stick a copyright in the source. Not perfect but it should give them pause.

In my opinion you should have to write code to get a job where you write code. I want that requirement applied to me and to the people that work there.

Mike Two
The second paragraph brings up a good point to those people who think that the company is just trying to get free programming. Who would bother with all this trouble for 4 hours worth of programming?
Beska
I think the real problem is that your are looking for job at more than one company and do you really want to waste all of this time when you could use it to refresh your knowledge on how indexes are built(i was once asked about it).
01
A company that does 3 or 4 interviews a week for two months but never ends up hiring any of them... each candidate given a slightly different interview problem. At the end the code is pieced together like some type of Frankenstein's monster because they "couldn't find a candidate they liked". Not that I have seen this first hand...
pdavis
@pdavis I'm sure things like that happen. But I usually research a company I'm applying to enough before hand to know that they are turning out stuff better than that. And I can't imagine a company lasting too long with this as a strategy. It sounds like a lot more work to do it that way then just have one developer write it.
Mike Two
This sounds like a practice done with a significant disregard for the candidates time. This person is coming to your site on their time and to have a single "test" take more than an hour or two is too much.Perhaps after a series of candidates has been narrowed down to two or three prospects and there is a very likely chance of an offer then it may be acceptable. However as a general interview practice it smells of people who have little consideration for others.
another average joe
@another average joe - When viewed as a single "test" you're right. But we didn't see it that way, and neither did most of the candidates. We were upfront about what the process was. We also didn't just stick them in a room and say, "code away". It was highly interactive. Their were mini requirements gathering session, prioritization, design, coding and code review sessions. We also sought feed back from the candidates to improve the process. It was never the very first round. We found it to be an incredibly efficient use of everyone's time and the candidates did too.
Mike Two
+6  A: 

I am In a situation where for an interview I have been asked to code For half a day

Yeah? And you're applying for a situation in which you'll be asked to write code for a full day, every day. There's nothing unreasonable about this.

anthony
disagree, the interview is probably not paid. The time spent getting this information could have been done more efficiently .
asawilliams
what about a one hour interview where they just ask you general questions, would you send the company that interviewed you an invoice for one hour? what about two? what if there was a small whiteboard coding section of the interview? Where is this magical line where evaluating a candidate's coding abilities becomes OMG UNPAID LABORZ!!!
anthony
anthony- you should try that approach with other people, for example when you go to mechanic ask him to do something for free before he can work on fixing your car. make him change wheels or wash the car.
01
the mechanic isn't interviewing for a full time job as my mechanic. this is a false equivalence.
anthony
+5  A: 

It sounds to me as if developers are doing the interviewing.

The basic, fundamental problem is that they're asking you to do coding:

  • with no design.
  • no documentation.
  • no input from users to describe what they want.
  • no workflow description.
  • no explanation of what databases are available or what schemas are in use.
  • no mention of standards.

If someone asked me to do that, I would politely reply that I couldn't possibly write anything in 4 hours that hadn't already been thoroughly scoped out and designed. OTHERWISE - they're asking me to write "trial and error" code which will have no bearing on what my skills are or what a finished product would look like.

What's the job? If you're asked to be a codemonkey, then you'll have specs provided for you.

If you're supposed to design the software, you have to know what you're designing for.

If you're an architect, there's even MORE reviews and up-front work that has to be done.

There are better ways of finding out if you have the technical competence to use the technologies you describe without wasting 4 hours of your time.

David
+1  A: 

a web based gallery with tagging, search, uploading, rating and so on.

What is "and so on"? User management? Slick design? If not, this task is certainly doable in the alloted time, using standard LAMP server.

  • Design your DB tables. (SQL)
  • Write upload page. (PHP)
  • Write display page. (this is the most complicated)
  • Write rating "page". (just update rating and redirect)
  • Write search (result) page.

No (page) design, just bare-bones HTML. No fancy stuff. No fancy error management, just get it to work. I think you could even add some simple user management. (login and registration)

I think it's doable, but you have to have a lot of experience and be able to focus in an interview-situation. So, if you really manage to do it, you're almost guaranteed to be offered the job.

Fozi
+3  A: 

It depends on the company involved, but I'm surprised by the number of answers suggesting that this is some underhand way of getting some work done for free. I think that's very unlikely. Unless the company was completely clueless and desperate, why would they get somebody who's ability they are not sure of (which is ostensibly why they are interviewing the person in the first place) to do the work for them? I'm sure that they probably have somebody on their staff already who is capable of doing the work. If you went to interview at Google and they asked you to write some code, would you think it was because they haven't got anyone else that can solve their problem?

Interviewing candidates is hard and making the wrong decision can be expensive. When interviewing a programmer, getting them to write some code is absolutely a good thing to do. You hire programmers to design programs/write code, so why not see how good they are at this?

A four hour task is going a lot further than most companies do, but it's not necessarily a bad idea. I don't think it's that unreasonable either. It's not unusual for companies to ask you to set aside a whole day for the interview process, even if coding doesn't usually account for most of it.

Setting somebody a real programming task, as opposed to something like FizzBuzz, could be extremely valuable for the interviewers. They may be looking for how you deal with ambitious deadlines and unclear requirements, how you approach problems and how you structure and prioritise your work.

One final thought: A difficult interview is a good sign from the candidate's perspective. Remember that your future co-workers will have been judged by the same standards. If there's no quality control you could end up working with some less than gifted individuals.

Dan Dyer
+1  A: 

Among other things, it is a test to see how you handle the pressure. You know you've been given a big task, they know you've been given a big task, and they want to see how you rise to the situation. I seriously doubt they expect you to finish the whole thing.

They probably want to assess things like the following:

  • Can you deliver anything?
  • Where did you get stuck?
  • Where are your work areas?
  • How you handle peer criticism

And more...

Dr. Watson