求教,疫苗研发相关方向好找工作吗# Biology - 生物学
t*n
1 楼
找工作这段时间以来常匿名浏览,在版上获益良多。不久前刚拿到A公司的Offer,特地
注册了账号,呈上面经,以感谢各位xdjm。
先说一下我的背景,国内CS硕士,毕业后在国内做了三年startup。去年10月搬家到西
雅图,11月初开始撒简历,没有什么reference,直接网投。就在投简历到A公司网站上
之后一个礼拜不到就有recruiter发来email说邀请电面。BTW,至今其他投递的简历没
有一个有音讯的,回想起来感觉很lucky,另外说明A公司直接网投是有用的。
因为自己的背景,所以apply主要是SDE/AJAX/front-end的position。其实这类
position的面经在上网还挺少的,所以希望我的面试经过可以给大家提供这方面的参考。
面的过程一共是3轮phone interview和2轮on-site,其中一次是8个session,另一次是
3个session,面的比较多,可能是因为有2个team都感兴趣的关系。
整理了一下印象比较深的问题有以下这些:
========比较Personal的一些问题========
1)简单介绍自己。每个interviewer必问的头一个问题。面试官基本都看过resume,所
以我选了其中一部分的概要说下。
2)谈谈自己做过项目中最challenging的部分。On-site时被问到了两次,临场想的,
说的一般,如果事先准备一下可以发挥好些。
3)分析讨论自己的研究生的主要工作。被On-site的一个architect问的,非常囧,因
为自己完全没有准备,毕业三年做得不太相关,一些本来熟悉的词汇都没法到嘴边。准
备不足呀。
4)谈谈之前的项目,在lunch的时候跟一个Hiring manager掰。
========算法和数据结构========
5)设计算法给一个integer数组找出目标sum的pair。Phone interview的问题。给出了
两种算法。
6)设计算法给一串integer其中有一个数字仅出现一次,其他出现两次。找出这个数字
。Phone interview的问题。用XOR是最佳的方法。
7)写一段代码用stack来实现queue,然后通过电话念给他听。
8)谈谈对于hash的理解和各种操作复杂度分析等等。Phone interview的问题。
9)谈谈BST各种操作的复杂度。Phone interview的问题。
10)比较经典排序算法和复杂度。Phone interview的问题。
11)代码实现:给一个单词和一个字典文件,实现anagram。Email作业题,1个半小时
内发回给他。我喜欢用C++ Template的,结果发给他之后,他email我说在他那儿的
linux上跑不了,想请我加上compatible的support。随后再修改了一下,再发给他的。
结合其他的情形来看,A公司是用Linux的,所以这个方面可以留心下。
12)On-site组合型的编程题,给出一个函数和对于这个函数的调用sequence,要求白
板coding,然后进行优化,然后进行OO的改写,然后加入multi-threading的保护。
13)白板coding:输入+-*整数运算式子,这种式子有一个term的,输出计算结果。我
做的不太好,有些思路但是没有写完代码。
14)白板coding:写一个二维数组的serialize函数。我也做的不太好,serialize和
unserialize的算法设计好了,interviewer说可以work,不过最后没有写完代码。
15)白板coding:只有整数加法和shift两种操作的CPU,写一个乘法的实现。啪啦啪啦
写完之后,interviewer说“嗯,完成了还是还有一个bug?”我一看果然有个bug,立
马改正。
16)算法设计,按照输入构建graph之类的。
========OOD和Architecture========
17)设计一个board game。
18)架构讨论:分析讨论Twitter的architecture
19)架构讨论:一个Mash-up的service,白板画deployment diagram,进行一些
measurement和address一些potential issue。
========HTML/JavaScript/AJAX/JSON========
20)谈谈Javascript Framework的好处。Phone interview的问题。
21)写一段javascript代码实现一个person类,包含一个private field、和两个
public function实现一些简单的操作,然后通过电话念给他听。
22)白板coding:不用任何framework做Ajax request和response的代码。我边写边讲
解为什么这里要这样写,那里可以做一些什么增进和cross-browser的考量,
interviewer点头如捣蒜,后来我还没有开始写connection open的部分,就说OK了。
23)白板coding:给定JSON输入,实现要求的页面输出,包括一些的动态的UI的功能。
内容涉及JSON和DOM的操作。
========General Problem Solving========
24)On-site:给出一个网站遇到的突发性能问题,和网络结构,要如何找到问题的症
结。根据网络结构中的组成部分,给出各个层面出现问题的可能。
25)On-site:“你如何确保所写的代码是正确的?”我觉得这个是很好的问题,我是从
review和test的两方面讲述的。题外话,顺便掰一下,据说中国卫星火箭的代码的QA是
通过无数人review来保证的。
其实还有一些interviewer带来了非常有趣的用graph来描述的问题,很难在这里用文字
写出来。难度不大,只要不慌,一般可以应付的了。
最后分享一下面试下来的几点心得:
1)将《Hacking a Google Interview》的handout烂熟于心。绝对是宝典!如果没有时
间读《编程之美》,甚至连读《编程珠玑》的时间也没有的话,这个handout是绝对绝
对要看的。不过大约大家都读过了吧。
2)白板coding的时候,并不需要一下子写出完美的代码,可以迅速给出straight
forward的完整的代码,写完之后,如果发现有纰漏,可以马上告诉interviewer,甚至
interviewer也会提示有bug,然后找一下修一下bug。
3)算法复杂度的基本要掌握好,尽管没有很刁钻的分析需要。
4)bitwise的arithmetic可以多看看,灵活应用,interviewer会很喜欢。
5)白板coding的时候,边写边说关于这些代码的想法。其中有一个interviewer告诉我
说,其实看interviewee写代码,很容看出是不是一个bad developer,我问他“怎么叫
bad呢?”他说,一下子给出正确解答就会是bad,因为没有呈现出思考的过程。虽然这
个说法并不是绝对,但是尽量呈现自己的思考过程是重要的。
6)A公司的interviewer挺喜欢hash。
7)A公司interviewer里面70%是caucasion,个别有英国口音,余下是印度gg,印度口
音没有很严重。都是些非常smart的人,但也很nice。聊下来,有个别的人甚至很geek
,另一些人却从来不打游戏。
其实这次是本人第一次找工作,国内的小硕,没有大公司的工作经验,来美国时间也很
短,比起大家的background来说应该是非常弱的了,能顺利得到A公司的offer,要非常
感谢我gg的鼓励,以及在“待字闺中”发帖分享经验的朋友们。希望我的面试经历可以
给大家带来好运和信心!
Keep faith and bless you all!
注册了账号,呈上面经,以感谢各位xdjm。
先说一下我的背景,国内CS硕士,毕业后在国内做了三年startup。去年10月搬家到西
雅图,11月初开始撒简历,没有什么reference,直接网投。就在投简历到A公司网站上
之后一个礼拜不到就有recruiter发来email说邀请电面。BTW,至今其他投递的简历没
有一个有音讯的,回想起来感觉很lucky,另外说明A公司直接网投是有用的。
因为自己的背景,所以apply主要是SDE/AJAX/front-end的position。其实这类
position的面经在上网还挺少的,所以希望我的面试经过可以给大家提供这方面的参考。
面的过程一共是3轮phone interview和2轮on-site,其中一次是8个session,另一次是
3个session,面的比较多,可能是因为有2个team都感兴趣的关系。
整理了一下印象比较深的问题有以下这些:
========比较Personal的一些问题========
1)简单介绍自己。每个interviewer必问的头一个问题。面试官基本都看过resume,所
以我选了其中一部分的概要说下。
2)谈谈自己做过项目中最challenging的部分。On-site时被问到了两次,临场想的,
说的一般,如果事先准备一下可以发挥好些。
3)分析讨论自己的研究生的主要工作。被On-site的一个architect问的,非常囧,因
为自己完全没有准备,毕业三年做得不太相关,一些本来熟悉的词汇都没法到嘴边。准
备不足呀。
4)谈谈之前的项目,在lunch的时候跟一个Hiring manager掰。
========算法和数据结构========
5)设计算法给一个integer数组找出目标sum的pair。Phone interview的问题。给出了
两种算法。
6)设计算法给一串integer其中有一个数字仅出现一次,其他出现两次。找出这个数字
。Phone interview的问题。用XOR是最佳的方法。
7)写一段代码用stack来实现queue,然后通过电话念给他听。
8)谈谈对于hash的理解和各种操作复杂度分析等等。Phone interview的问题。
9)谈谈BST各种操作的复杂度。Phone interview的问题。
10)比较经典排序算法和复杂度。Phone interview的问题。
11)代码实现:给一个单词和一个字典文件,实现anagram。Email作业题,1个半小时
内发回给他。我喜欢用C++ Template的,结果发给他之后,他email我说在他那儿的
linux上跑不了,想请我加上compatible的support。随后再修改了一下,再发给他的。
结合其他的情形来看,A公司是用Linux的,所以这个方面可以留心下。
12)On-site组合型的编程题,给出一个函数和对于这个函数的调用sequence,要求白
板coding,然后进行优化,然后进行OO的改写,然后加入multi-threading的保护。
13)白板coding:输入+-*整数运算式子,这种式子有一个term的,输出计算结果。我
做的不太好,有些思路但是没有写完代码。
14)白板coding:写一个二维数组的serialize函数。我也做的不太好,serialize和
unserialize的算法设计好了,interviewer说可以work,不过最后没有写完代码。
15)白板coding:只有整数加法和shift两种操作的CPU,写一个乘法的实现。啪啦啪啦
写完之后,interviewer说“嗯,完成了还是还有一个bug?”我一看果然有个bug,立
马改正。
16)算法设计,按照输入构建graph之类的。
========OOD和Architecture========
17)设计一个board game。
18)架构讨论:分析讨论Twitter的architecture
19)架构讨论:一个Mash-up的service,白板画deployment diagram,进行一些
measurement和address一些potential issue。
========HTML/JavaScript/AJAX/JSON========
20)谈谈Javascript Framework的好处。Phone interview的问题。
21)写一段javascript代码实现一个person类,包含一个private field、和两个
public function实现一些简单的操作,然后通过电话念给他听。
22)白板coding:不用任何framework做Ajax request和response的代码。我边写边讲
解为什么这里要这样写,那里可以做一些什么增进和cross-browser的考量,
interviewer点头如捣蒜,后来我还没有开始写connection open的部分,就说OK了。
23)白板coding:给定JSON输入,实现要求的页面输出,包括一些的动态的UI的功能。
内容涉及JSON和DOM的操作。
========General Problem Solving========
24)On-site:给出一个网站遇到的突发性能问题,和网络结构,要如何找到问题的症
结。根据网络结构中的组成部分,给出各个层面出现问题的可能。
25)On-site:“你如何确保所写的代码是正确的?”我觉得这个是很好的问题,我是从
review和test的两方面讲述的。题外话,顺便掰一下,据说中国卫星火箭的代码的QA是
通过无数人review来保证的。
其实还有一些interviewer带来了非常有趣的用graph来描述的问题,很难在这里用文字
写出来。难度不大,只要不慌,一般可以应付的了。
最后分享一下面试下来的几点心得:
1)将《Hacking a Google Interview》的handout烂熟于心。绝对是宝典!如果没有时
间读《编程之美》,甚至连读《编程珠玑》的时间也没有的话,这个handout是绝对绝
对要看的。不过大约大家都读过了吧。
2)白板coding的时候,并不需要一下子写出完美的代码,可以迅速给出straight
forward的完整的代码,写完之后,如果发现有纰漏,可以马上告诉interviewer,甚至
interviewer也会提示有bug,然后找一下修一下bug。
3)算法复杂度的基本要掌握好,尽管没有很刁钻的分析需要。
4)bitwise的arithmetic可以多看看,灵活应用,interviewer会很喜欢。
5)白板coding的时候,边写边说关于这些代码的想法。其中有一个interviewer告诉我
说,其实看interviewee写代码,很容看出是不是一个bad developer,我问他“怎么叫
bad呢?”他说,一下子给出正确解答就会是bad,因为没有呈现出思考的过程。虽然这
个说法并不是绝对,但是尽量呈现自己的思考过程是重要的。
6)A公司的interviewer挺喜欢hash。
7)A公司interviewer里面70%是caucasion,个别有英国口音,余下是印度gg,印度口
音没有很严重。都是些非常smart的人,但也很nice。聊下来,有个别的人甚至很geek
,另一些人却从来不打游戏。
其实这次是本人第一次找工作,国内的小硕,没有大公司的工作经验,来美国时间也很
短,比起大家的background来说应该是非常弱的了,能顺利得到A公司的offer,要非常
感谢我gg的鼓励,以及在“待字闺中”发帖分享经验的朋友们。希望我的面试经历可以
给大家带来好运和信心!
Keep faith and bless you all!