工程面试中仍应保留课后作业:一位面试官谈 AI 时代的评估方式
We Should Still Send Home Assignments in Engineering Interviews
一位有 8 年招聘经验的软件工程师认为,AI 编程智能体能代做课后作业,并不代表作业失去价值,反而打开了新的评估空间。他不再把作业当作面试流程中的孤立环节,而是作为深度技术面试的起点,围绕依赖选型、领域设计、可扩展性等提问,考察候选人是否理解其中的权衡与设计决策。约 95% 的提交都能覆盖作业要求,因此他更关注候选人能否推理这些取舍,以及他们向智能体下达指令时是否留意关键点。
I’ve been hiring software engineers for the last 8 years. I’ve reviewed hundreds of home assignments as part of hiring process. In the recently introduced AI era, it is more and more believed that hiring assignments are useless because candidate can just feed the assignment specification to their favourite coding agent & send them back to us. I think we should still keep sending home assignments & change how we evaluate them.
I’ve never used a home assignment as a stateless hop between sequential interview steps. Being at the other end of the table, I’ve seen that interviewers did not know anything about my submission, most of the time they didn’t even know what the home assignment covers. Instead, we have been already using the home assignment as a starter for the deep-dive technical interview.
With AI-assisted coding era, I changed my interview questions. About 95% of the submissions cover what is asked in the assignment anyways. But now, there are many questions that can be asked when you remove the syntactic or language-specific questions. In the end, the new joiner will use coding agents, just as we are doing on a daily basis. So the assessment we do should also validate their coding agent usage as well.
We can talk more about choices - coding agent can solve the issue with the specification but the user should be aware of the trade-offs and design decisions if we’ll have a long lasting working relationship. I ended up asking a lot of questions & discussing them with the candidates. Frankly, I don’t expect exact answers; instead, I’m trying to figure out if they are aware of them and they can reason about them. I listen to their follow-up questions more than their exact answers to my questions.
Dependencies
Why did you use this library? What alternatives did you check before deciding in this one?
Why did you use Postgres but not Mysql? How should we choose between them and what would change your decision?
Domain design
I saw that you used two modules to implement the solution, can you tell me where the boundary is between them? What drove you to draw the line here?
If we needed to separate this application into two different services, how would you do it?
Scalability
Where is the bottleneck of this application in your opinion? If we need to replace sync processing with async processing, how should we approach it?
Is your solution stateless? Where do you keep the stateful data? Does it survive restarts & can it run with multiple replicas?
These are some sample questions that I can summarize for now. They try to evaluate candidate’s expertise in these subjects, also they dig into if the candidate is concerned about the important points while instructing their agents. Depending on the context, field, specific position, experience there will be many different questions. The important point is, just because a candidate can generate home assignment answers with coding agents, it doesn’t mean home assignments are useless; it just opens a thousand new doors.
来源:Hacker News · mtyurt.net