What does it mean to be a good engineer?
image by tf2wh.com |
This week at work I've been thinking a lot about how to determine if someone is a good engineer and how do you put someone at a certain level of ability. Next week I have to give training about this, so I really want to have something valuable to say.
The way that many companies interview software engineers includes whiteboard problems. You're in a room with the person interviewing you and he or she asks you to write some code on the whiteboard to solve the problem that they give you.
Before this week I almost wrote off whiteboard problem interviewing completely. I had a talk with a coworker (@zachp) and he explained the importance of whiteboard problems, and the efficient way it gets at problem solving skills and a little bit of just raw technical ability.
It's not about them coming up with the best solution or if they can do that the fastest. It's not about the interviewer seeing if the candidate can come up with the "correct" solution that the interviewer was looking for.
You're looking for just a few things while whiteboarding:
- Can they find a solution, any solution
- Can they identify patterns in the problem
- Can they identify where their code isn't performant and edge cases it misses
- Can they iterate towards a better solution or the optimal solution
If the candidate can't do #1, they're not at the level of the problem. Maybe try another problem or they aren't a good fit.
Great candidates will do #2, 3, and 4.
This was really world-changing for me when he explained that. Interviewing became clear and I think I'll be able to give a halfway decent training next week.
Last of all, we talked about the need for interviewers to not just be familiar with the problems, but to know them inside and out, and to know basic solutions, mid-level solutions, and optimal solutions. Role playing and practicing with other engineers is recommended to help them get up to speed on each problem that they are going to have the candidate do.
Do you have some insight into hiring good people?
0 comments :
Hey there, thanks for leaving a comment. You're a good person