Re: Test for potential programmer
Daniel Pittman <[email protected]>
| Newsgroups | gmane.org.user-groups.slug.chat |
|---|---|
| Message-ID | <[email protected]> |
Carlo Sogono <[email protected]> writes: > What kinds of tests should I be giving people to measure their > aptitude to become good programmers/problem solvers? There isn't one. Given many years of experience interviewing and hiring programmings and systems admin staff, I assure you that there is no single, widely applicable, useful test that you can use for this. What you /can/ do is apply *specific* tests to people: Ask them detailed, technical questions appropriate to the level of knowledge they claim for languages, tools or techniques. This will weed out people who transform "I saw a C++ book once" and claim to be experts on C++. Ask them to write some code in the language they will be working with in front of you, so they can't cheat. Use a whiteboard, or pen-and-paper, for this. Make sure that it isn't complete junk. This weeds out the people who claim to be programmers, but can't actually manage correct syntax, or recall anything about the language at all. > I work in a really specialised field and it is actually better to hire > someone who has experience in this field then train them to do a > programming than hire a programmer to learn the business. I assume you are speaking form past experience, where you have done both of these things, and judged the results over *multiple* people in both cases.[1] Otherwise, this sounds like a dangerous assumption to me; generally, my experience is that you are better off hiring the best people regardless of background, provided they can do the job. > Are IQ tests enough? Absolutely, under no circumstances, let yourself be fooled into thinking these show you anything except the most basic anything, and keep in mind that they are almost all heavily culturally biased. Certainly, they are useless for the traits you are looking for. > Or should I be looking for something else? Yes: look for personal recommendations, and people who maintain a good public presence on the Internet. Both of those give you insight into the character and abilities of the people you are looking to hire. Review code that people have written previously[2], or other works they have created. Ensure these show actual skill and talent before you bring them in. Look for claims like "I contributed significant code to GNU Grep", which you can actually check for factual accuracy[3], and then check them. Which is educational. :) Mostly, though, personal recommendation is the way you want to hire. You get a much, much harder judge between you and the candidate[4], from someone with extensive personal knowledge of the candidate, and from someone with extensive knowledge of the business. Daniel Footnotes: [1] To reduce the chances that, for example, you just got two dud programmers, but one or two really sharp non-programmers, for example. [2] I doubt that non-programmers can be trained to write code better than *good* programmers can be trained in a new language / business, although a good non-programmer is going to be better than a bad programmer. [3] ...and, as a hint to those people who have sent me resumés with claims like this before: yes, I /do/ actually check that. GNU keep good records, so either your contribution was so insignificant they didn't need to record it, or predates records kept back to the '80s.[5] [4] ...well, unless you have employed someone who is rather an idiot, and is willing to make themselves look awful by recommending someone who can't do the job. [5] ...and one day I hope to actually get a resumé that claims this, and where the name of the person /does/ show up in the changelogs. -- ✣ Daniel Pittman ✉ [email protected] ☎ +61 401 155 707 ♽ made with 100 percent post-consumer electrons -- SLUG - Sydney Linux User Group Mailing List - http://slug.org.au/ Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html