一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 2626|回复: 7
收起左侧

我的美国CS面试经验分享(zz)

[复制链接] |试试Instant~ |关注本帖
jnxc2011 发表于 2014-7-3 09:12:35 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
王沁夏://上官园://林峰for real://魏琦: @王冰月//何山:分享日志 ◆◆. From 1point 3acres bbs
我的美国CS面试经验分享  来源:人人网. more info on 1point3acres.com
作者: 孙正立
.鐣欏璁哄潧-涓浜-涓夊垎鍦
过去的一年多里,参加了一些面试,虽然面过的公司不多,但都从头一直走到尾。毕竟自己也是花了大量的时间和精力在这一场场的面试里。所以,就絮叨下自己的一些经验,希望能给在美国找实习找工作的同学们提供一点点帮助。
. 1point 3acres 璁哄潧
开始前的一些说明:

1. 笔者只是一介小本科,虽然留了学,但是留了级,学识浅薄,目光短浅,文章若有不恰之处,恳请各位大牛不吝指正!

2. 笔者面试的岗位均为Software Engineer,俗称“程序猿”。如果读者是非CS专业或没有找此类工作的需求,请ctrl + w。本文更多的倾向于CS技术层面,关于面试仪表妆容礼仪等等的其他问题,请出门右拐。

3. 鉴于保密协议,本文只谈面试准备材料和方法,不涉及任何具体面试题。(当然,你如果单独请笔者吃饭,可以考虑)

4. 本文涉及的内容更多地适用于在美国本土的技术面试。美国的面试更加正式规范,国内同学可做适当参考。.鐣欏璁哄潧-涓浜-涓夊垎鍦

5. 个人认为,面试的成功 = 60%的平时积累 + 30%的考前准备 + 10%的其他因素(如自信、谈吐)。所以,面试的准备对于我们这类凡人来说,异常重要;靠平时积累就能虐了面试官的大牛,不在本文考虑之列。
. 1point 3acres 璁哄潧
我面过的公司:

公司       时间          岗位    地点         过程
. From 1point 3acres bbs


百度       2010          实习    中关村总部   3轮onsite

Microsoft  2011年上半年  实习    西雅图总部   1轮on-campus + 4轮onsite



Bloomberg  2011上半年    实习    纽约总部     1轮网上答题 + 1轮电话面试 + 3轮onsite
. visit 1point3acres.com for more.
      

Google     2011下半年    全职    硅谷总部     2轮电话面试 + 5轮onsite. From 1point 3acres bbs
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴


PS:

百度 百度(Nasdaq简称:BIDU)是全球最大的中文搜索引擎,2000年1月由李彦宏、徐勇两人创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。



Microsoft 美国微软 微软(Microsoft Corporation) (NASDAQ:msfT,港交所:4338),是一家基于美国的跨国电脑科技公司,是世界PC([1]Personal Computer,个人计算机)机软件开发的先导,由比尔·盖茨与保罗·艾伦创始于1975年,公司总部设立在华盛顿州的雷德蒙市(Redmond,邻近西雅图)。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴



Bloomberg 彭博(Bloomberg)是全球商业、金融信息和财经资讯的领先提供商,由现任纽约市市长迈克尔·布隆伯格于1981年创立的,总部位于美国纽约市曼哈顿,现有超过1万3千员工,业务遍及全球185多个国家与地区。2012年彭博资讯集团全球营业收入达76亿美元,成为全球最大的财经资讯服务提供商。 鏉ユ簮涓浜.涓夊垎鍦拌鍧.



Google Google公司(英语:Google Inc.,NASDAQ:GOOG、FWB:GGQ1,官方中文译名为谷歌),是一家美国的跨国科技企业,致力于互联网搜索、云计算、广告技术等领域,开发并提供大量基于互联网的产品与服务,其主要利润来自于AdWords等广告服务。




.鐣欏璁哄潧-涓浜-涓夊垎鍦
笔者运气较好,除了在微软败在了最后一轮大manager的石榴裙下,其他三家都顺利拿到了offer:先后在百度和Bloomberg实习,并将于2012年正式加入Google工作。


下面将分Behavior Question和Technical Question分别介绍个人的面试准备技巧:

鏉ユ簮涓浜.涓夊垎鍦拌鍧. I.         Behavior Question

这类问题的特点是,易准备,好回答,必出现。所以一定要花几个小时好好准备,写写提纲,面试前对着镜子说几次。
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
a.     HR Question

最无聊的一类问题,比如“why Microsoft?”、“what’s your plan in 5 years? ” 一般为HR所喜欢。

推荐准备材料:http://hrinterviews.blogspot.com/。把这64道题刷一下,所有的HR问题都不会是问题了。准备的方法类似于托福口语,准备几个段子,反复用,就很充分了。

另外,回答一定要真诚。比如,如果被问到“what’s your weakness?”,你如果回答:我太追求完美太热爱工作巴拉巴拉——太过时太恶心人了吧,亲!

b.     Talk about your project

一般会在面试的开始被问及,必然会被问到的题目之一。把简历上的项目好好地阐述,辅以画图更佳。一些经典的Follow up是:What is the most challenging part? What will you do if you have opportunities to improve it?

百分一万的准备好这些问题!面试官通常会刨根问底。答的吭吭哧哧,几乎是不诚信的表现。. From 1point 3acres bbs

c.     Question for interviewer
. 1point3acres.com/bbs
一般会在面试的最后十分钟里,面试官会请你提出问题。这是你展现对公司的激情、个人的兴趣、和面试官套近乎等等等等的大好机会。不要说“no”或者仅仅问“啥时知道结果啊,哥们”这类的问题。至少准备五个有深度的问题。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
.鐣欏璁哄潧-涓浜-涓夊垎鍦
个人经验来说,最好的方法还是随机应变,根据之前面试的情况来合理提问。比如,我在Google的一次面试里,面试官无意间提及他在设计一门新的编程语言。面试最后,我就满脸好奇地说:“talk about your language, please”。然后我和他就编程语言的设计各方面进行了一些小讨论,他最后离开时万分兴奋。就这样,对面试官的尊重,自身兴趣和能力的展现,对技术的激情——一脉相承,水到渠成。

II.         Technical Question

技术面试的最核心部分。

下面是一些笔者使用过的材料(请适当支持正版):

Programming Interviews Exposed
入门级书籍,可以了解一些基本概念。

Cracking the Coding Interview
中级书籍,经典必备教材,重点推荐,重中之重!从头到尾我做过五次。

Hacking a Google Interview
MIT的一门课程,教学Handout可作为中级题目练习。

mitbbs的JobHunt板块
资料很多,水帖更多,可以寻找到很多战友和第一手的面经。可以重点学习里面的精华贴。
. 鍥磋鎴戜滑@1point 3 acres
http://www.sureinterview.com/
中高级的算法题。
.鏈枃鍘熷垱鑷1point3acres璁哄潧
http://www.leetcode.com/
高级算法题,难度偏难,可做适当了解。个人认为,如果不是面Google,里面的题目被面到的可能性不高。

Topcoder
知名的编程练习网站,有一些相关的材料和教材很经典。

面经来源:
mitbbs的JobHunt板块,Glassdoor,CareerCup

C++ FAQ
非常有名的高级C++语言学习网站。啃下来会很有帮助。主要的目的是为了应付关于Object-Oriented的相关题目。

如果你准备用Java,也请至少把语言使用能力达到中阶。
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
Object Oriented Analysis and Design (Oreilly Head First.)和
Design Patterns Oct.2004(Oreilly Head First)

两本OOP的经典教材。据说Design Pattern挺重要,但个人从未遇到过相关题目。但是大致了解一下,总不会错。

Wikipedia/Google. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
仔细查阅每一个你所不知道的算法、数据结构和概念,做好笔记。等你在面试时发现一个名词你见过却不知道是什么,你会把肠子悔青的。

每个公司所关注的技术
这一点非常重要。比如面Google,就要把Distributed System和Information  Retrieval的相关技术了解下,好好看看他家的经典Paper:Map-Reduce和Google File System;比如面Bloomberg,对C++的了解和使用一定要啃到一定级别;比如面Amazon,要准备好OOP。. 1point3acres.com/bbs





相信我,花六个月的时间,把上述的所有材料搞定,世界上没有哪个技术公司你进不去的。(You know I’m kidding… But it’s basically the fact. )

你可能会问,那如果我只有一周,或者两天,甚至更短的时间去准备一场面试,该怎么办?

我的回答是:第一,如果它是phone interview或者on-campus interview,那只是初级的筛选,难度不会很高,just relax;第二,拿下上述材料中的初级和中级部分(再次强调Cracking the Coding Interview这本书),然后根据公司来决定学习重点,这样就应该有不错的发挥了。毕竟个人积累不同,尽力而为吧。

当你拿到on-site的邀请时,不要去炫耀你的成就了,赶紧去准备之后的面试吧。On-site的难度深度都会有很大的提高。那才是真正的战斗!过不了on-site,你什么也都不是!

下面我会分topic介绍一下准备重点。在你准备面试的过程中,你也应该有一份这样类似的word文档,记录你每天学习到的所有东西。
. more info on 1point3acres.com
面试准备绝不是背诵和题海战术,而是能帮助你对CS知识的理解和运用提升到新高度的过程。-google 1point3acres

1.)  Time Complexity分析

基础中的基础。绝大部分情况下,算法的时间复杂度能一眼看出来。

如果是面Google,需要掌握一些严密的时间复杂度的数学推导,有些算法不是一眼能看出时间复杂度的。

2.)  Coding   
. 1point3acres.com/bbs
废话!. From 1point 3acres bbs

. Waral 鍗氬鏈夋洿澶氭枃绔,但是需要练习的是在纸上和在白板上写code。 (不要小看这件事!关掉愚蠢的Eclipse和VC吧)

更关键的是,写的代码要一次成型,bug-free,即使多花点时间。如果你平时有写完代码再慢慢debug的习惯,是很不利的。被面试官找出bug来,你的分数会被大扣分!

语言选择上,C++和Java,抑或 C#,都是无可挑剔的选择——好比,孙权刘备曹操主;

Python,Ruby,Perl啥的也还行,在字符串处理上有奇效,但面试官未必买账,因为有些问题他需要你从底层实现起——貂蝉诸葛主;
. Waral 鍗氬鏈夋洿澶氭枃绔,
啥,你说汇编?——黄盖主!还是开局鞭挞至一血的!

3.)  Data Structure

题目类型大多是:给定一些实际需求,来设计相应的数据结构。所以,对每一种数据结构的特点、时间复杂度要非常熟悉,而且要有很敏锐的第一感。

a.   Hashtables

可以说是人类发明的最重要的数据结构之一了。面试时的出现率极高!. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

保证你玩得转Collision strategies和hash function。如果深入到如何设计具体的hash function,题目的难度也会是很大的。

b.   Trees

BST,BFS,DFS,trie,Kruskal’s Algorithm ,Prim’s Algorithm

Balanced tree就没什么研究必要了。

c.   Graphs:. From 1point 3acres bbs
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
图的几种储存形式,BFS/DFS,Dijkstra,A* algorithm
.1point3acres缃
d.   Linked List/Queue/Stack/Heap

相应操作的时间复杂度要了如指掌。保证你能轻松写出C++ STL或Java Library对应类库的API。

4.)  Algorithm

重中之重的重中之重!

Sort,Recursion,Binary Search,Greedy Strategy等等等等要全面准备到。. 鍥磋鎴戜滑@1point 3 acres

Dynamic Programming的一些经典题也要会。如果面Google,可能要准备一下DP的高级题目。

笔者认为,准备这类题目毫无捷径,只有不断刷题,总结,刷题,总结。要培养出对题目的直觉,这是一个漫长的训练过程。

在面试的时候,一般来说,要先给面试官提供一个暴力搜索的方法,然后计算复杂度。然后再慢慢做优化。面试时一定要keep talking,提出自己的想法,展现自己的思路。如果你get stuck,面试官也会给出相应的hint(当然这是会被扣分的)。

5.)  System Design

常见形式是:给定大数据量和N台机器,解决一个特定的问题。较开放的题目。在网络公司的面试中经常出现。

解法有固定套路,可以参考Cracking the Coding Interview 相关章节,并自己做一些总结和应用。这类题目看起来很难,掌握方法后,实际难度并不算很高,而且容易展现自身的分析能力,容易出彩。当然,面试官很可能会做适当的延伸,涉及到具体的技术,这就靠自身平时的积累见招拆招了。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

推荐的一些补充阅读材料:
. 鍥磋鎴戜滑@1point 3 acres
External Sort (http://en.wikipedia.org/wiki/External_sorting)
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
Web Crawler (http://nlp.stanford.edu/IR-book/html/htmledition/web-crawling-and-indexes-1.html)
. visit 1point3acres.com for more.
Google MapReduce (http://labs.google.com/papers/mapreduce.html)
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
Google File System (http://labs.google.com/papers/gfs.html)

6.)  Mathematics

重点在于组合数学和概率论。会有一些这类的变体出现。稍微准备准备就可以了,相信国人的数学水平,绝对凌驾于世界巅峰,不管他面试官是阿三还是老美还是欧洲人。

7.)  Operating Systems

Processes vs. Threads

Locks, mutexes and semaphores
.1point3acres缃
Deadlock and livelock

Scheduling: FIFO, priority, shortest remaining time, round robin, and multi level.
. 1point 3acres 璁哄潧
不算特别重要。至少笔者从未遇过相关题目。
. more info on 1point3acres.com
8.)  Bit manipulation
. from: 1point3acres.com/bbs
两个目的:应付该类面试题(出现率不高,但是Google喜欢问);
. from: 1point3acres.com/bbs
用于自己的编程技巧——尽管有些silly,但是在代码中整一点bit manipulation,是很geek的事。
.鐣欏璁哄潧-涓浜-涓夊垎鍦
9.)  Design Pattern. visit 1point3acres.com for more.
. Waral 鍗氬鏈夋洿澶氭枃绔,
了解这些:Observer Pattern, Decorator pattern, Factory Pattern, Singleton Pattern

  
面试是一个很吃经验的考试。不要顾忌前几次的失败,那都是必要的练级。

最后,送上我笃信的一句话:"Success is just like being pregnant. Everybody congratulates you but nobody knows how many times you were f***ed"。

谨以此祝愿所有的童鞋都能获得自己Dream Company的offer!

. 鍥磋鎴戜滑@1point 3 acres
全文完。

Zhengli Sun©2011
. 1point 3acres 璁哄潧
来源:孙正立 | 分享(5489) | 浏览(31176)
源地址: http://blog.renren.com/GetEntry.do?id=790042807&owner=232634863

本帖被以下淘专辑推荐:

donnice 发表于 2014-7-3 09:31:47 | 显示全部楼层
好文章!收藏了
回复 支持 反对

使用道具 举报

greatvxin 发表于 2014-7-4 21:35:46 | 显示全部楼层
赞!总结的真好!
回复 支持 反对

使用道具 举报

myxgenius 发表于 2014-7-4 22:04:21 | 显示全部楼层
太有用的信息了,非常感谢楼主~~
回复 支持 反对

使用道具 举报

yangyuxu 发表于 2014-7-6 00:21:54 | 显示全部楼层
很有用的消息呀。
回复 支持 反对

使用道具 举报

smile.rocky 发表于 2014-8-6 09:59:15 | 显示全部楼层
总结的很好
回复 支持 反对

使用道具 举报

yufen 发表于 2014-8-15 11:49:47
很受用,文中讲到  Behavior Question a.   HR Question 推荐准备材料:http://hrinterviews.blogspot.com/。把这64道题刷一下,所有的HR问题都不会是问题了。这个网址打不开,能否发麻烦你发邮件给我呢?我的邮箱是:hongyufen@njust.edu.cn 非常感谢
支持 反对

yufen 发表于 2014-8-15 19:30:13
总结的很好,非常感谢分享。文中提到的关于HR Question 推荐准备材料:http://hrinterviews.blogspot.com/。把这64道题刷一下,这个网址打不开,能否麻烦你发到我邮箱中?我的邮箱是:hongyufen@njust.edu.cn
支持 反对

yufen 发表于 2014-8-15 19:30:34 | 显示全部楼层
总结的很好,非常感谢分享。文中提到的关于HR Question 推荐准备材料:http://hrinterviews.blogspot.com/。把这64道题刷一下,这个网址打不开,能否麻烦你发到我邮箱中?我的邮箱是:hongyufen@njust.edu.cn
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-8 06:30

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表