当前在线人数18119
首页 - 分类讨论区 - 海外生活 - 待字闺中版 -阅读文章
未名交友
[更多]
[更多]
文章阅读:我曾经是Google的主力面试官,面试过很多人
[同主题阅读] [版面: 待字闺中] [作者:getout] , 2017年09月07日20:46:22
getout
进入未名形象秀
我的博客
[上篇] [下篇] [同主题上篇] [同主题下篇]

发信人: getout(出去), 信区: JobHunting
标题: 我曾经是Google的主力面试官,面试过很多人
发信站: BBS未名空间站(Fri Sep 8 08:46:22 2017,GMT)

国内知乎上看到的:
https://www.zhihu.com/question/39238915/answer/226484516

我曾经在google工作多年,是Google的主力面试官,面试过很多人,也帮助过很多人进
FLAG(其中包括LeetCode版主)。对于怎么面试和如何准备面试,特别是顶级科技公司
的面试,我想聊一聊我的经验。

面试官真正想要的,是能够独自和与团队一起为公司解决问题的人。写出了code,答对
了题,并不代表你coding能力就强,即使coding已经达到了标准,也不完全代表面试官
就愿意选择和你共事。

首先,并不是写出了code,做到了基本的bug free,就代表你coding能力很solid。

以下是我自己总结的比较有用的check list:

code本身:

code写的对不对,是不是做到bug free?是不是能够处理所有可能的情况?有没有主动
walk through几个test cases?code是不是用标准的格式来写的?结构是不是让别人能
够很清楚的看明白?沟通code:在写code之前,有没有主动的跟面试官沟通来明确题目
要求,分析各种需要处理的情形?有没有考虑可能的环境和多种解决方案?有没有做必
要的trade off的分析?如果你用到了某些数据结构和算法,有没有解释清楚运用这些
工具的原因到底是什么?

code优化方面:

有没有冗余的可以优化的代码?你给的答案是否是效率比较好的?能否主动继续分析优
化方案?

其次,那种Coding能力不错,但是因为其他原因挂了的,也太多太多了,举几个典型的
例子:

例子1:

面试官:The Candidate was very quiet. I need to probe him all the time. I’m
worried about his communication.

例子2:

面试官:Do you have a bug here?

应试者:(想都没想)”No! No! No! I disagree with you”

例子3:

面试官:Do you have any question for me for the last minute?

应试者:You work in XXX department, right? I think there are quite a number
of things that can be improved...(喷了10分钟面试官的工作)

这些不论是太安静,还是太急于证明自己,都最终导致了面试的失败。所以说,Coding
能力是很重要,但只是拿Offer的必要不充分条件。

如果说FLAG面试的完整攻略,还是必须要在Hard Skill和Soft Skill两个方面都表现出
色。

Hard skill方面,主要考察的就是你的专业能力,包括Coding, Testing, Basic Data
Structures & Algorithms和Design。

Coding

能保证至少一门语言,不论是java还是C++还是Python,不会被面试官问倒。能够很快
将复杂的问题转化成逻辑和代码。想到和处理可能的边界条件。写出的代码能够符合业
界对格式、易读性和结构的要求。

Testing

对于测试的要求大多为单元测试,因此要求工程师能够自己写test来验证自己代码的正
确性

Basic Data Structures & Algorithms

能够深度理解各种数据结构和算法,对应选择高效的解决方案,并告诉面试官为什么

Design

Solution Design:能够从工程的角度,考虑不同的需求和环境之下,不同的解决方案
的tradeoff。

System Design:应该具有完整的知识体系和储备,熟悉计算机系统的基本知识,在复
杂的情况下分析和解决对应的设计问题。基本知识概念包括操作系统、数据库、网络、
web technology、分布式系统、多线程等等。

(虽然很多人都说New Grad不考Design,但事实上,FLAG这个级别的面试还是多少会有
涉及,而且了解Design的知识,对于和面试官分析、解决问题有很大的帮助。)

Soft Skill方面,除了一个必须具备的Attitude,对于面试来说最重要的就是两个方面
:Problem Solving和Communication。

Problem Solving

要能够系统地、明确地观察问题,定义问题,分析问题,分解问题,最后找到合适工具
来解决问题。

还能够不断总结、优化、调整现有方案,多次迭代来找到更合适方法(这是一个非常重
要,但也很容易被忽视的方面。所有的技术能力都只是用来解决问题的工具,而不是方
法。)

CommunicationTechnical

Communication方面就是要有目的、有条理、有主次

Non-Tech Communication方面包括自我介绍、Behavior Questions、向面试者提问,以
及其他所有的细节。这方面相对没有那么唯一的要求,但是自信、积极、尊重应该是一
个普遍的标准。

(一样的题目,面试官可以选择给你提示也可以选择不给你提示。评分评价主观上,加
减10%到20%轻轻松松。2.8和3.2一样吗?一个天上,一个地下。)

--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM:108.]

[上篇] [下篇] [同主题上篇] [同主题下篇]
[转寄] [转贴] [回信给作者] [修改文章] [删除文章] [同主题阅读] [从此处展开] [返回版面] [快速返回] [收藏] [举报]
 
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996