On Fri, 21 Sep 2007 15:28:58 +0200, Frans Bouma <[EMAIL PROTECTED]> wrote:
>> OK I half agree...... >> >> I do want to test general ability.... > > Then ask for a university degree in CS and several years of experience >in the field they'll work on. General ability isn't testable with simple tests >you can formulate in a couple of lines. It's a junior role....they wont have had several years of successful experience and be within budget. > > I've spend over 12 years in something called 'the demoscene' >(www.scene.org ), it's basicly nerd heaven for lowlevel programming. I can >tell you, a lot of people there beat anyone in these simple algo tests, >however they're unable to do a big class design, simply because they have no >education in that area. > no education? or no experience? >> if someone can't reverse a string >> in place or work out the longest run in a string then they probably wont >> be able to thing of sensible ways to create invoices associated to a >> supplier relating to a specific product.... > > I see 0.0 overlap between the two. Reversing a string is a low- level >algo and if you don't know how to do in-place buffer copying or reversing or >whatever you want them to do (in place reversing of ints without variables, >that's also a nice one, but only for people who think fiddling bits is what it >takes to be a software engineer), I completely disagree...the swapping of numerics without variables is a 'trick' used by assembly programmers....you either know it or you don't....the ability to write simple procedural algorithms is a critical programming skill, used every hour of every day, are you really claiming that a competent C# programmer wouldn't be able to reverse a string with a loop? would it matter if it were a string or a set of delegates in a generic collection used for event handlers?...does that somehow make it more relevant? To me it is just obscuring the underlying problem, and alienating those who while highly competent, may be slightly ignorant. > you will likely spend a lot of time on it, >but is that bad? What if the person gets nervous because s/he vaguely >remembers it's a stupid silly test but all s/he can think of is a rather big >loop full of goo and that they now think they'll fail? > I don't really understand this? > Remember: interviewing for a job is often totally difficult compared >to the real job. > difficult? or different? either way....they are not completely unrelated...I am trying to assertain the ability to do the job....long term. > Also, if I was given the tests you proposed, I'd have left right there >on the spot, simply because the tests would show that you don't know what to >ask from me, as I don't expect to write atoi routines or string reversers. > maybe that's part of the test...if you can't be bothered to sit a simple test, I probably wouldn't want to employ you....asking you to do voluntary overtime, or fix a bug would seem to be a nightmare in comparison. >> if they can't think in a >> coherent and organised algorithmic manner then they wont be able to >> design a new auto pilot....who gives a 'hoot' if they know how to do the >> specific task I'm going to ask them to do next week, and outperform >> other more able candidates who aren't up to speed on the latest version >> of ASP.net, if they are basically not as good as I can get over the >> longer term. > > That's something you'll never know, but definitely won't get >determined with tests which take a few lines of code. Again you seem to claim that you would not expect C# programmers can't reverse strings in place, any more than a random person off the street....a claim I find bizarre. > > For example, most algorithms to use on a daily basis are already >discovered and documented in full on the internet and in books. Like 'sort >this DAG in the right order so all jobs represented by nodes are enlisted in >the right order for execution'. Sounds tough? No, it doesn't. ? I'm not asking them to invent an algorithm....just apply it. > > If someone tries to re-do that topology sort algo by re-doing years of >graph math science in that interview, what does that tell you? Isn't it more >wise to hire someone who will tell you "THe algorithm is on the internet and >in Sedgewick, I don't have it with me but it will take 2 minutes to write it, >tops". What would you answer then? "You're lazy" ? It's the correct answer! programming is about the application of that knowledge. I don't know what you're getting at. If a programmer can't do a simple loop then I'm not interested. > >> BUT.....where I agree with you (and why I posted the question here) is >> that these specific examples are a bit low level C like. >> >> If I give them something too real world, you may find they fail because >> they know how to use Oracle, but not SQL 2005...or are familiar with >> .net 2003 but not 2005......if they are contractors coming in to do a >> specific job...then yes it bothers me, if it's someone I'm hoping to >> employ for the next 5-10 years maybe...I'm primarily interested in >> ability. > > An assignment to do might take an hour for example but has to be >reflecting what they have to do on the day they're starting, right? Or >something you want them to grow into perhaps. If you want them to pass a test >which is suitable for them in 2-3 years time, you've invited the wrong people >and have placed the wrong ad. :) > > FB ? interviewing is a crude way of trying to use crude correlations between measurable (possibly qualitively) metrics and how productive they will be as an employee....I don't think it's unreasonable to expect a programmer to be able to apply simple procedural algorithms.....if you don't think there is a correlation, fine....you can get all the people who can't do loops working for you on the cheap.....good luck. =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com