4 ms·
Here's an idea for how to actually do a technical test (if you do want to do one). 1. You bring the candidate in to your office. You have their future desk alr
by genezeta 8y ago
Here's an idea for how to actually do a technical test (if you do want to do one).
1. You bring the candidate in to your office. You have their future desk already available with computer and development environment already functional. Pick a somewhat standard environment configuration.
2. Have an exercise already prepared. Best option is not a "build this from scratch" but have something that already works and needs some additional feature. Something small that could be done in, at most, an hour. Another option is two or three smaller tasks that together would take as long.
3. You give the candidate incomplete information. You describe the task clearly and in a mostly complete way, but leave out a number of details.
4. Very clearly explain these things. One: You won't be on them; this is not pair programming and they should feel at ease and free to do however they want. But you will be sitting in the next desk and you will be doing something unimportant so they can -and should- ask you anything and all they want. They can also use S.O. or whatever search service they want but you'd prefer that they asked you first. Two: You won't be looking at their code unless they want to show you. Three: they have around one hour, but time doesn't matter that much. If giving out more than a single task, indicate that they won't be judged by how many they manage to finish.
5. During that time, you focus on the questions they ask you. What they ask, how they ask them, which problems they face, what things they do or don't understand. This is the key. This is what will tell you about how they think, what things they know and which ones they don't. Keep an eye on them, if they seem too quiet you can interrupt them with simple "how's it going?" or "something wrong?", but don't push it too much so that you don't stress them. You may even suggest a 5 minute break for a coffee/water half-way through if you feel they might need it.
6. The whole idea is to get them to do some task but more importantly to get them to talk about it. When they are done, or when enough time has gone by, don't go over their code. Instead, ask them how it went, what they managed to do, if they got stuck. If they got it running, they can run it. If they want, they can show you the code or part of it. but you don't need to focus on that. Focus on their talk.
7. Finally, do offer them the option of showing the code. But then, get them to show it and explain it. Don't just go over it yourself.
8. The task(s) should be adequate and reasonable for the role, of course. But try to lean on the easier side more than on the harder one. And remember: do leave some information out. The task should be clearly understood but not finely detailed so that they will need to ask and maybe even make some decisions. (You can make them have to decide something by giving them more than one option as answer to some question.)
- zimpenfish 8y agoIn all my years of interviewing (~25), I've only had this happen once - I got sat in front of an internet connected laptop, given a perfectly sensible task, and left alone for half an hour. Most of the time it's "solve this already thoroughly solved problem in your own time but with {one hand in a blender, whilst you're on fire, without using any variables}" or some such bullshit.
- arethuza 8y agoAbout the same - I had one 'interview' where I had to write a client and server in C++ that would allow clients to register network MAC addresses with the server along with some associated data and then retrieve it at a later time. Took me a couple of hours, interviewer said my code wasn't particularly "object oriented" but I got the job. The irony of this was it was for a Director of Engineering job where I didn't do any coding! :-)
- genezeta 8y agoIn my similar amount of experience... I have seen an approach similar to this maybe twice. Sad, yeah. I have used it, though, when I had to hire. And it went fairly well. I don't have any hiring responsibilities now so I haven't had the chance to use it more often.
- citeguised 8y agoThanks! This is a nice approach which I will try with our next front-end-candidate. Currently our process consists of three exercises: A small website-layout where the candidate has to fix two styling-bugs and equalize some container-heights (CSS-Part); a Palindrome-Function (JS-Part); and a discussion where we look at a webpage-layout, and go through how they would structure it HTML/Component-wise and talk about general topics that come up. But I like the colleague-like approach of your way and guess that it'll work better in our case. Can you name an example of an app which the candidate has to extend?
- genezeta 8y ago> Can you name an example of an app which the candidate has to extend? Oh, it can be almost anything, but it depends a lot on the role. For the kind of work you mention you could, say, give them an already built layout and ask them to add some additional component or section, or to rearrange some parts. Maybe add a form similar to some other one in a different page. Or something like "add an option for this block to be hidden/shown depending on a configuration". Really anything can do. I've sometimes had success picking up some minor tasks that we had already done in the previous months. Using things you actually work on is nice. It gives them some sense of what you do and gives you good knowledge about the task and possible difficulties. There's the risk of becoming biased towards the particular solution you implemented. To combat this I sometimes pick tasks I didn't work on myself or that I wasn't completely satisfied with the solution we achieved.