As with any of these kinds of discussions, it's very polarized and I agree with some against these kinds of tests. I do regard them as silly. I've had one once where I would had to write out SQL on paper to demonstrate my knowledge of sql coding. To me this is quite inane. In the "real world" of programming I will not be using paper to write SQL, nor will I not have access to parsers to help me make sure my code is accurate. I've also had some where I would have to hand write code on paper in VB. I really want to know what purpose any of this serves? I would much rather someone ask me some technical questions to which I can answer from my knowledge than have me write down some "silly" algorithm that I wouldn't normally do in "real life" anyway.
For instance how about these framework-style questions: 1) Can you tell me the difference between "by reference" and "by value" for method parameters? 2) What does the params keyword do in a method? 3) What is a class? What is an interface? What's the difference between a Class and Object? 4) What is generic convergence? 5) How can you use generics to reference "your" class type in the class itself? 6) What is threading? 7) How can you implement a background thread? 8) What is a listener? 9) What is remoting? 10) What is a monitor? What's C#'s generic way of using the Monitor class? What is VB's generic way of using the Monitor class? 11) How do you implement asynchronous programming in .NET? 12) What does a Using statement do? (requires two answers) 13) What does the default C# keyword do? How can you use it? 14) Is multiple inheritance implemented in the Framework? 15) What is polymorphism? Encapsulation? 16) How do you create an event in C#? In VB? 17) What is a delegate and for what is it used? 18) What are the benefits of Generics over non-generic programming? Limitations? 19) What is a dictionary? How do you use it? 20) Does the graphics object need to be disposed in the Paint event of a control? I think someone that's able to answer these types of questions satisfactorily might demonstrate the ability to think and reason and really work on the task at hand over someone who can reverse a string. I suppose it all boils down to personal preference though. I don't believe that a test asking me to reverse a string in place or whatever is a true test of my abilities as a programmer. If someone can answer those for me, I'll know right away that they have studied the Framework and have taken the time to learn over someone who can pull some "generic" algorithm out to fit the particular test. On 9/21/07, Frans Bouma <[EMAIL PROTECTED]> wrote: > > > On Fri, 21 Sep 2007 15:40:24 +0200, Frans Bouma <[EMAIL PROTECTED]> > wrote: > > >> Well, if it's for a junior programmer they might not have a lot of > design > > >> experience, so asking them to solve a coding problem working it out > in > front > > >> of you, and thinking out loud, will reveal a lot about how they > think. So > I > > >> wouldn't call this "stupid" (in fact I think that's uncalled for). > > > > > > The tests are IMHO stupid because they: > > >1) could make you not pick the one you should because the daily work > the > hire > > >will do is different than writing little routines which are already in > the > > >framework > > does the question get harder if a method doesn't exist in the framework? > > I think your employee will write code ON TOP OF the framework, not > the > framework code itself or tiny routines already there. So code working with > the > framework is often different than code which should be in the framework or > a > tiny routine. > > (your example was in fact *not* an example or reversing a string in place) > > Indeed. I didn't do it in place. But it's not possible to do it in > place, as in C# strings are immutable. :) Did you think of that btw? > > So I failed your test and you would not hire me. See how silly this > is? :) > > > >2) could make you pick the wrong person because you think his string > reversal > > >goo was excellent while he'll fail miserably designing some classes or > writing > > >some basic OO code. > > > > the point is if he *cannot* write the function......if he cannot reverse > a > > simple string then what does that tell us? > > that he can't reverse a string. Though I don't think the person > would > draw a complete blank stare, so there will be thoughts of solutions. THOSE > will tell you more. I'm with Per, you should talk about various .net > elements > instead. > > > Again it would seem to be the claim there is no correlation between > > programming and the application of basic algorithms. > > programming is about writing algorithms, not about typing code. So > I > don't think I can agree with your conclusion that I would claim what you > say I > claim. All I say is that if you test a person if s/he can cook up a given > algorithm that it would tell anything. I say: no that doesn't say > anything. > > FB > > =================================== > This list is hosted by DevelopMentor(r) http://www.develop.com > > View archives and manage your subscription(s) at > http://discuss.develop.com > =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
