views:

115

answers:

5

Help me out, please...

After a 9 month dry spell, I've finally gotten an interview for a C# Win forms position. Better yet, the job actually sounds exciting -- as opposed to, "I'll take anything to have a job again."

Now, the recruiter sent someone over before me. During that candidate's interview, the questioner asked him to create a blank Win form that switches between two background colors every 5 seconds. The first, "highly qualified" candidate, either couldn't, or wouldn't do it! Having learned about the problem, I've gone ahead and practiced that particular app, a few times. But, if it were me doing the interviewing, I sure as heck wouldn't present the same problem. So, my question: anybody have suggestions for similar mini-projects, of approximately same complexity, that I could build as practice?

I'm not asking for code, I just want the suggestion, in the same way you might ask me if you were interviewing me. I realize, of course, that the interviewer most likely will come up with something else, but I figure the more practice I get just whipping out little things like this, the better prepared I'll be to deal with whatever he throws at me.

OTOH, if you think I'm barking up the wrong tree, let me know.

Thanks!

Randy

+4  A: 

Well, it's not really much of an answer, but "you either know it or you don't".

If you know it; demonstrate it.

If you don't; then don't pretend to sound like you know how to do it. You'll get caught very quickly. Be up front; and demonstrate how you would figure out how to solve it.

Nobody knows everything. The programmers that can figure stuff out with appropriate resources are the valuable ones.

Jim B
I think they are really asking for demonstration of basic coding knowledge. Whatever they ask me, I'm certainly going to ask lots of questions, just like in real life. My prob. is being rusty, I don't want to waste time figuring out that a Windows.Forms.Timer's interface is different from a System.Timer interface.
EoRaptor013
But, I agree: Never, ever, try to BS an answer. Even if you're _sure_ the interviewer is a mor... um, technically challenged.
EoRaptor013
+4  A: 

A nice one from the MCTS certification:

  1. Create a form which has a button.
  2. Set the button caption to "Click Me".
  3. Display the number of times the button has been clicked in the top left corner of the button by overriding its OnPaint method.
Philip Wallace
Thanks! Exactly the king of thing I was looking for!
EoRaptor013
+1  A: 

I agree with Jim B.

A confident candidate for a position that states I'm not specifically familiar with, but know how to research and resolve is WHY I should be considered. Too many people out there can talk, but only work by examples and don't have enough to thing for themselves on problem solving.

DRapp
Do you really want to say you don't know how to code a no-controls form to change background color every so often, but you know how to look it up? If they asked something relatively esoteric -- update DB from a form when initial form values were drawn from a SQL view (I dunno? Is that relatively esoteric?) -- I'd identify the problems, at least, then say I'd look up the final answer. But this?
EoRaptor013
No, if you can't do something as simple a basic controls, timers, and understanding how to set color properties and such, you shouldn't even be in the door. However, if someone were to actually challenge you with more difficult, real-life scenarios of a problem and how to solve, it might take experience to pull that information out, and identify what / where the problems are, as you noted, then do the research for a solution.
DRapp
A: 

I'm a firm disbeliever of interview tests. I prefer to set a trial period for the candidate so that I can really see him working on the environment. If you can, always set that trial, too many candidates can fool you into thinking they're so great they can get the project done by themselves only to find they are not worth it.

I'd recommend to the Guerrilla Guide to interviewing by Joel Spolsky. For me is kind of a bible to interviewing (although I'm a little more relaxed than him when it comes to discarting a candidate)

The fact is... you should hire someone who will get the job done, if possible whatever job you get him.

With that said, don't forget to be pragmatic. An expert in Lisp would always be better for your Lisp project than a great "GetJobDoner" with no experience whatsoever in Lisp. Don't forget what you're hiring for, enthusiasm cannot replace experience when the schedule is short.

I used to disregard concrete "field questions" and look only for a guy which can learn whatever in a short period of time, and that's still what I do but I spent enough time in the interview process to look for both and if I don't have the time I go for solve my problem now, get the rest later.

Jorge Córdoba
So instead of making someone answer some test questions which will at least filter out the fakes (and is free) you would bring them into your company, set them up with a workstation and take time to integrate them (expensive)?
Philip Wallace
I didn't say that. I say you judge the person character more than it's ability to pass a simple test. Many good developers will fail your test or be offended by it, be nervous or whatever. If a person seems proficient, his cv is good (he has experience and ability on what you demand) and he seems like the kind of person that get things done... you still try him. Any other one would simply be out of the selection process. A test in an interview won't work naturally, it doesn't usually judges person proficiency or knowledge.
Jorge Córdoba
I linked the Guerrilla Guide to Interviewing, why would you think I won't interview?
Jorge Córdoba
I agree with you totally on the "can he get things done" issue. But, I still think a .NET test is important IF a candidate claims to be proficient in .NET.
Philip Wallace
I'm the hiree, not the hireror! But, amen to Joel's article. I don't think I'm smart enough to work at FogBugz.
EoRaptor013
I don't know about concrete tests. If the test if too simple you might not get an real idea of the potential of the candidate, if it too complex it might even be unrealistic for a coder with no reference to get it done on time...
Jorge Córdoba
+1  A: 

I wonder if the concern of causing epliptic seizures was part of the answer that wasn't given that the interviewer was expecting. So that while the question may seem like a rather trivial thing to code, the fact that such a concern wasn't voiced is what killed the candidate's chances of getting the position.

I'd wonder what other similar minor changes could one make to a blank form that should cause similar questions in terms of why one wouldn't code something.

JB King
Hmm... Hadn't thought of that! +1 for the perfectly valid, but completely unanticipated, thought!
EoRaptor013