ADM-201 dump PMP dumps pdf SSCP exam materials CBAP exam sample questions

公司如何评估技术面试者 – 译学馆
未登陆,请登陆后再发表信息
最新评论 (0)
播放视频

公司如何评估技术面试者

How Companies Evaluate Technical Interviews

大家好 我是《程序员面试金典》这本书的作者盖勒·拉克曼恩·麦克道威尔
Hi, I’m Gayle Laakmann McDowell author of Cracking the Coding Interview.
今天我想要介绍一些内容
Today I want to give a bit of context about
是关于公司在技术人员的面试中是怎样进行评估的
how evaluation of technical interviews works.
顺便说一下 这里讲的内容偏理想化
And by the way this is talking a little bit an ideal world,
所以面试官们听好了
so interviewers listen up,
如果你没有这样评估他们
if you’re not evaluating them this way,
你的做法可能是有问题的
you’re probably doing something wrong.
那么接下来的就是我个人评估应聘者的方法
So this is how I personally evaluate candidates
以及我相关的一些看法
and how I think about this.
那么 当一个应试者来参加一个面试
So when a candidate walks into an interview
你知道 他们是要解决一些问题的
and, you know, they’re solving some problem,
但实际上我不会就拿着秒表坐在那
I’m not really sitting there with a stopwatch saying
说“好 快点 你要解决这个问题
“well gee you need to solve it,
你知道 我已经准备好了两个问题
you know, I have two questions ready.
你需要在20分钟内完成
and you need to solve in 20 minutes
否则 你就是不合格的”
or else you’re rejected.”
那不是我要做的事情
That’s not what I’m doing.
我会做的是 我会关注
What I’m doing is I’m looking at
你在面试中的所有表现
really everything you do in the interview
然后我退一步来想
and I’m taking a step back and saying
“这说明你是一个怎样的程序工程师呢?”
“what does this tell me about you as a software engineer.”
所以我们拿写代码来举个例子
So let’s take the coding portion for example.
假设你写了一些代码
Suppose you write some code.
一般来说 我首先要看到真正的代码 不是伪代码
Well, first of all I do want to see real code generally speaking, not pseudocode,
但是那不意味着我要把你的程序拍下来
but that doesn’t mean that I’m gonna go take pictures of your code
回到我的电脑上
run back to my computer,
逐字录入 然后说“哦 它失败了
type it in verbatim and then say “Ooh it failed.
你懂的 现在我要拒绝录用你了
You know, now I’m going to reject you
因为你有一些编译错误”之类的
because I had some compilation errors” or something like that.
那不是我要做的事情
That’s not what I’m doing.
我要做的是 把你的代码当作一个代码示例
What I’m doing is looking at your code as a code sample
然后我要试着从中推断出一些信息
and I’m going to try to extrapolate information about that code sample
来搞清楚你是一个怎样的程序员
figure out what do I think about you as a software engineer.
所以 某些错误 一些编译错误
So some mistakes, some compilation errors
和一些程序漏洞等等 是大问题 某些不是
and set bugs etc. are big deals, some are not.
举个例子
So for example,
假设你正用某种语言的内置链表类
suppose you’re using the built-in linked list class in some language
在那种语言中 某个函数名实际上是list.add
and in that language some method is actually called, you know, list.add
但你写的是list.insert
but you call list.insert.
那么严格来说 这当然不能编译成功
Now technically speaking, of course this would not compile.
所以你知道 如果你在白板上(这样写)
So if you’re, you know, you’re on a whiteboard
然后我逐字录入
and I type this verbatim,
你知道 它一定会构建失败 它不能编译
you know, it clearly breaks the build, it will not compile.
但是用list.insert而不是list.add
But using list.insert instead of list.add,
那对于你作为一个程序员来讲说明了什么呢?
what does that tell me about you as a software engineer?
它并不能告诉我说你是一个不好的程序员
It doesn’t tell me you’re bad software engineer,
它说明你可能不是经常会用到内置链表类
it tells me you probably don’t use the built-in linked list class every day.
好 那这是我关心的问题吗?
Well is that issue I’m concerned about?
我会因为这个就觉得你是一个不合格的程序员吗?
Do I think you’re bad software engineer because of that?
当然不是 那太不合理了
Course not, that would be crazy.
我只能得出结论说 好吧你不是每天都能用到它
I just conclude, ok you don’t use that every day.
那是我关心的问题么?
Is that an issue I care about?
完全不是
Not at all.
所以严格来说 这个代码错误会导致构建失败
So technically speaking, this compilation error will break the build
但那完全不是我所关心的问题
but it’s not gonna be something I’m gonna be concerned about at all.
现在另一个问题是
Now another issue is,
我最近也看到了很多次这个问题
that I’ve actually seen multiple times recently,
就是你会混淆单等号和双等号
is you’re mixing up single equals and double equals,
不是像写错那样 我以前见过那种单纯的写错
not like it’s a typo,I’v seen that typo before,
如果真的是写错的话 我就不关心了
I’m not concerned about it if it’s truly a typo.
而是 我认为你还在试图搞清楚
But I mean like you’re still kind of trying to figure out the difference
赋值和比较之间的区别
between assignment and comparison.
那是我非常关心的问题
That issue I’m pretty concerned about.
那意味着你缺乏编程的经验
That is signaling just a lack of experience with coding.
所以同样是一个编译错误
So still a compilation error,
但是 单双等号是一个大得多的问题
but singling a much much bigger problem.
所以 所有像这样的错误和问题
So all these errors and things like that
都告诉我你是一个怎样的程序员
it’s all about what is it telling me about you as a software engineer
不是它加没加上 或者是否可以运行的问题
not does it exist does it not, does it work does it not.
对于解决问题方面也是这样
And the same thing goes for the problem-solving portion.
当我有面试的时候
When, you know, if I have some interview I’d ideally like
我会准备好一到两个问题
to get through one or two problems,
我不是坐在那里说“20分钟内 你解决了它 很赞;
I’m not sitting there saying “20 minutes you solve it, thumbs up,
超过20分钟 抱歉”
more than 20 minutes, thumbs down.”
关键都在于你的表现告诉了我什么
It’s all about what is it telling me.
所以实际上非常非常普遍的是 我会遇到两种不同的应试者
So it’s very very common actually I can interview two different candidates.
第一种应试者会花10分钟解决掉某个问题
The first candidate takes 10 minutes to solve some problem,
另一种会花15分钟
the other candidate takes 15 minutes.
那个花15分钟的可能会做得更好
The candidate that took 15 minutes might have done actually much better
因为他花15分钟的原因是
because the reason he took 15 minutes is
我们花了这些时间来讨论散列表和冲突的问题
we had this long discussion about hash tables and collisions
和这位应试者的这种深入的探讨
and this really deep discussion with this candidate
是我和另一位之间所没有的
that I didn’t have with the other one.
可能另一位应试者陷于苦战
Maybe the other one was actually struggling so much
以至于我基本上只能填鸭式地灌输给他那些算法
that I basically had to spoon-feed him the algorithm.
但是第一个应试者
But this first candidate,
花了15分钟的这位应试者
with this other candidate that took 15 minutes,
她能够更加独立地去处理问题
she just, you know, was able to do the problem pretty much independently.
所以 虽然她花了更长时间
so yes she took longer
但是 她展现出了更好的技能
but the things she demonstrated, demonstrated much better skills.
所以你在面试中表现出的方方面面
So everything you do in the interview,
比如 你花了多长时间解决问题
the, you know, how longs it takes you to solve the problem,
你的解答是否最佳 甚至你的解答是不是对的
how optimal is the answer, is your answer even correct,
你的代码是不是对的 诸如此类的事情
is your code correct, things like that,
都在告诉我 作为软件工程师 你的技术如何
it’s all about what is it signaling to me about your skills as a software engineer.
所以你能做的最好的事就是
So the best thing you can do here is just
尽可能多地交流你的思考过程
communicate your thought process as much as possible.
所以试着讲出来
So try to talk out loud.
可能一开始的时候会有点不适应
It’s a little bit uncomfortable at first
但这是你绝对可以做准备的事情
but it’s something you can definitely prepare for.
给你一些做准备工作的小技巧
Some tips for preparation here.
首先就是 要实际练习一下
First thing is actually practice this.
把你自己关在一个房间里
Lock yourself in a room alone
或者实际上房间里有其他人更好
or better yet actually with somebody else in the room.
哪怕这些人一点也不懂编程相关的东西
Even if its somebody who has no idea about coding or anything like that
只是要慢慢习惯于大声表达和展现你的思路
and just get comfortable talking out loud and exposing your thought process.
第二是 在准备过程中也好 在实际面试中也好
The second thing is in the preparation as well as in the actual interview
每当你察觉你自己变得沉默时
whenever you notice yourself being quiet
试着退后一步
try to take a step back
至少给我你思路的概要
and at least give me the headline of your thought process.
所以你可能告诉我 比如说
So you might tell me something like
我现在在想的是怎么优化这一块
what I’m thinking about right now is how to optimize this piece.
我现在在想的是
What I’m thinking about right now is,
你知道的
you know,
我感觉有些方式可以利用上已经排序的数据
I feel there’s some way of using the fact the data is sorted.
所以试着至少给我你思考过程的概况
So try to give me at least the headline of your thought process
即使你给不了我其他的
even if you can’t give me anything else.
然后第三点是
And then the third thing is,
你知道的 尽可能地展示给我你能做的事情
you know, try to give me what you can.
如果你能给我明确清晰地描述你的思路
it’s fantastic of course if you can give,
那当然最好不过了
you know, this really clear articulate description of your thought process
但即使你最多只能含糊其辞
but even if all you can do is mumbling,
含糊其辞也比沉默不语好得多
it is so much better to mumble than to say nothing at all.
我以往已经见过大概十几个或二十几个人来解决同一个问题
I’ve probably seen a dozen or two people solve the same problem before,
所以即使只是只言片语地说一点
so even little mumbles here and there
我也能对你脑中的想法有一些了解
I have some idea of what’s going on in your head.
毕竟那才是我要去评估的东西
And ultimately that’s what I’m trying to evaluate
你脑中的想法
what’s going in your head.
如果你不大声说出来
And if you’re not talking out loud,
如果你不把你的思路展现出来
if you’re not exposing your thought process,
我没法相信你有那样的真知灼见
I can’t give you credit for that really great insight you made,
更糟的是 我可能会认为你已经被难倒了 虽然你并没有
and even worse I might think that you’re stuck when you are not
那么我就可能会给你一些你实际上并不需要的提示
so I might jump in to give you this hint that you didn’t really need.
这显然对你或者对我都不是一个好的局面
and that’s obviously not a good situation for you or for me.
所以再说一次 要练习这个能力
So again practice this.
尽可能地去交流你的思维过程
Do the best you can to communicate your thought process.
如果你表达得清晰出彩 那再好不过
If it’s beautiful clear articulation, fantastic.
但如果只能告诉我
but if it’s just giving me, you know,
你思路的概况 其他时候只能喃喃自语
the brief headlines of your thought process and mumbling other times,
好 这当然不完美
well, it’s not perfect,
但是也比沉默不语好得多
but it’s a lot better than just staying silent.
所以再说一遍 专注于这一点 专注于你的沟通交流
So again, focus on this, focus on your communication,
把它当作一个与人协作的练习
think about this as a collaborative exercise
而不是只在面试结尾交上你的作业
and not just you submitting homework at the end of the interview.
祝你好运
Good luck.

发表评论

译制信息
视频概述

《程序员面试金典》的作者,带你了解程序员面试中公司最注重的是什么。

听录译者

收集自网络

翻译译者

吾家黄姑娘

审核员

审核团O

视频来源

https://www.youtube.com/watch?v=jxAWQN5t6wg

相关推荐