Hello candidate,
亲爱的求职者,
Congratulations that your application has successfully proceeded to interview! We believe you are expecting to demonstrate your excellence during this interview. To help you better understand Google’s interview and get prepared, we’d like to share some interview tips with you.
首先恭喜你进入面试环节!我们相信你也一定期望自己能够在接下来的面试过程中一展身手。为了帮助你更好地了解和准备Google的面试,我们有一些面试小技巧要与你分享。
Before reading all detailed information below, you should clearly note that Google is not simply looking for engineers to solve the problems they are already well-trained on; we are interested in engineers who have passion and capability to work out the answers to questions they have never come across before. Although we list many specific knowledge and skills for your reference, we don’t suggest treating them with higher priority than those not mentioned here, because the interview may cover but not limited to them. One more thing you should know about Google’s interview is that we will regard your systematic thinking, quick learning ability, verbal communication and personality as the same as or even more important than knowledge itself.
在详细阅读本文之前,你需要明白Google并不是简单地需要你在经过良好的训练之后解决某些熟知问题,我们更看重你是否有激情和能力试着去解决一些从未见到过的问题。在本文中我们罗列了面试中可能会遇到的一些知识点,但面试的考查范围并不仅限于这些,我们强烈建议你
对于那些我们在此没有提到的知识同样给予足够的重视。值得一提的是,在Google的面试中,除了针对知识本身进行评估外,我们同样会甚至更加看重对于你的系统化思维,快速学习能力,语言沟通能力以及个性的考察。
I.What you will expect:
面试流程
45 minute technical interview with a Google software engineer. The interviewers will be interested in your knowledge of computer science principles (data structures, algorithms etc.) and how they can be used in your solutions.
每轮面试持续45分钟,面试官将是一位来自Google的软件工程师。面试官会考察你对于计算机专业基础知识(如数据结构,算法等)的掌握程度以及你在解决实际问题时如何利用它们。
Interview topics may cover:
面试内容包括:
●Brief self-introduction, previous projects, major accomplishments or anything on your CV. especially if you have stated that you are an expert!),
● 简单的自我介绍,之前做过的项目,所获的主要成绩以及你列在简历上的其它任何东西,尤其是当你自诩为某方面专家的时候(面试官会重点考察)。
●Coding: During the interview, you’ll need to write codes on whiteboard or paper (or Google docs if phone interview).
● 编码能力测试: 在面试中,你需要在白板上或者纸上完成代码(电话面试时需要在Googledocs上完成)
●Building and developing complex algorithms and analyzing their performance characteristics.
●设计和开发复杂算法并分析其性能特征。
●Computer Science fundamentals: Object oriented programming and design; common data structures like hash tables, stacks, arrays, etc; system-level knowledge such as operating system, network, compiler basics, etc
● 计算机科学的基础知识:面向对象的设计和编程;常见数据结构如哈希表,栈,数组等;系统级的知识如操作系统,计算机网络,编译器等。
●Real-world problem solving: solve fairly new problems with CS knowledge and skills.
●解决实际问题的能力:利用计算机的知识解决全新的问题。
●Design questions: Sample topics: features sets, interfaces, class hierarchies, designing a system under certain constraints, simplicity and robustness, tradeoffs.
● 设计问题:例如功能集,接口设计,类的继承,约束条件下的系统设计,系统的简单性和鲁棒性,折衷设计。
●Open-ended discussion: biggest challenges faced, best/worst designs seen, performance analysis and optimization, testing, ideas for improving existing products.
● 开放性问题:面临的最大挑战,已知的最好/最坏设计,效率分析及优化,测试问题,如何改良一个已有产品的思路。
II.What to prepare
如何准备
Coding
编程
We expect high quality, efficient, clear and compilable code without typing mistakes. Because all engineers (at every level) collaborate throughout the Google code base, with an efficient code review process, it’s essential that every engineer works at the same high standard.
我们期待你在面试中能写出高质量且高效的,结