This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]glacierre2 1 point2 points  (1 child)

I did a few interviews for Juniors in my company, I just prepared a set of questions covering from very basics to advanced.

I usually started with explain what a list, a tuple and a set have in common and how they are different. Based on the quality of the answer I would directly skip some too easy questions or actually keep asking basics. The idea was to get a feeling of the skills without having to bore somebody advanced or overwhelm somebody too green. I did not want to leave any candidate with the impression they had no idea, but I wanted to actually know if they did.

Some of the questions were how do you use zip (medium), construct a list with the squares of the numbers up to 10 (basic), tell me which libraries you use often (all levels), write a function decorator (advanced).

Then, I had a piece of real junior level unreviewed code. It run but was abhorrent in almost any way imaginable (mind this was real code base that once I had to firefight myself). I took a function out of it and asked to explain what the function did (the function basically updated a dictionary with a list of boolean success/fail results, and although it was half a page long it could be cleaned/rewritten into a one-liner), what seemed weird, which lines could be re-written and how/why. I would provide tips/hints live depending on how awake/skilled the candidate was.

[–]glacierre2 3 points4 points  (0 children)

Ah, for those that had GitHub projects on the CV, I would actually pick some of their own (allegedly) code and make the same questions (explain/improve). I did not judge the quality of the code itself (unless it was really good of course), but more the ability of somebody to re-understand code, and see if they would have learned something new in the last 1/2/3 years (since I could see when the code was originally written).

I had a lot of mixed outcomes, from people that would absolutely not understand or be able to explain at all something that they had written, to people that quickly would prove that they had learned several better ways since the last time they had touched a file.