【IVY CLOSER PoFP】IVY CLOSER学员找summer intern心得(Oracle offer)
找实习要趁早哦!
Description
写给那些刚来美国,暑期准备找实习的孩子们,算是我的一点点心得吧。
先介绍我的一下背景。
本科:北京邮电大学,信息安全 GPA:86/100
研究生:Brown University, Master of Science in Computer Science GPA:4.0 (1st semester)
研究生课程:Operating Systems, Database Management Systems, Distributed Systems. Design and Analysy of Algorithm, Data-Intensive Scalable Computing.
拿到实习Offer:Oracle (Saloris Core System Service Group).
#一、 时间
大部分人都是秋季入学,然后实习是在第二年的暑假,所以最佳的准备找实习的时间是在入学当年的冬季和第二年的春季。按照我今年的情况,春季再开始着手准备就已经有点被动了,所以建议从秋季学期就开始准备实习。很多秋季投出的简历会在第二年的春季开始面试,所以不要担心秋季刚入学的时候还没学什么知识,没法应对面试。而且,根据经验,秋季投简历的同学会在第二年的春季最早拿到面试,这样在招聘季到来之前可以首先积攒很多经验。
通常,最早的一批人会在2月下旬就拿到Offer,然后3月是大多数人收获的时间。如果到了4月还没有拿到实习的话,希望就变得很渺茫了。而且这个时候多数人已经都拿到了Offer, 自己的心理压力会变得很大。如果再赶上要期中考的话,那种生活就真的生不如死了。所以一定要提前开始着手,争取早点把简历投出去,早点拿到面试。
**投简历的主要途径:**
1. 一般学校在每个学期都会有一次大型的career fair,会有大量的公司来到校园内摆摊收简历。这个时候是投简历的最佳时期。
2. 另外,在学期进行中也会有陆陆续续的公司来学校办讲座,这也是公司收简历的一个主要途径。
3. 学校的Career Lab网站上一般会有很多公司的招聘信息,有些可以在网站上直接进行申请和投简历。但根据学校的不同,通过Career Lab投简历的命中率千差万别。
4. 最后一种方式就是到公司的页面上直接申请。
上面四种是申请实习的主要途径,其中一学期一次的Career Fair是招聘的高峰期。可以说大部分公司在Career Fair之后基本就招的差不多了,也有少部分公司在Career Fair之前就会招很多人,然后借着Career Fair补全剩余的位置。所以,可以理解为,Career Fair是找实习的最后机会,如果在这之后还没有找到实习的话,就会比较难办。而且在Career Fair之后,大部分人都已经拿到实习Offer,这时候如果自己还没拿到,心理上也会有很大压力。所以建议充分利用其他三种途径,在Career Fair到来之前争取多拿面试,甚至拿到Offer。
千万不要等到春季学期已经开始了才开始准备简历和找实习。一般如果你从春季才开始准备的话,从投出第一份简历到拿到面试中间最长有可能要等1个月以上。这样一不小心就会拖到3月份,时间上就会变得很紧张。
#二、简历
说说简历的准备。
基本上实习的简历与申请学校时候的简历差别不太大,在那个的基础上改改就可以。格式也都大同小异。以我的简历为例说一下各部分的内容:
1. Education
2. Programming Skills
3. Courses
4. Projects (Courses Projects / Independent Projects)
5. Awards
如果有竞赛或者获奖的话也可以加上。
**准备简历的几点原则:**
1. 我个人觉得没有必要将兴趣爱好写上,毕竟空间有限,应该把尽量多的位置留给能体现你技术水平的内容。
2. 面试的人通常会拿着简历问你上面的内容,所以绝对不可以写自己没有做过的事情。
3. 简历的中心思想是体现你的技术水平,以及对技术的热情。如果有ACM获奖,或者凭着个人兴趣做过的小程序之类的,可以放在简历的显要位置。这样可令简历更有竞争力。
4. 要尽量将重要的事情放在简历的前面,次要的往后放。
5. 写完简历之后要找有经验的人帮忙修改一下。老师,学长,或者负责招聘的staff都行。
#三、面试
面试一般分为电话面试、on campus、onsite三种。电面和on campus面试都在学校进行,而onsite就要到公司所在的地方现场面试。大部分公司不会对实习生进行onsite面试,如果有的话,onsite通常作为最后一轮,而且onsite之后很快(最快当晚)就会拿到结果。
##电话面试
电话面试的话,通常会先用邮件与你约定好一个时间,这时候需要注意东西部时差。然后到了那个时间会有一个人打电话给你。有时会要求你在电脑旁接电话,这样方便对方问一些编程的题。大部分情况,对方会share一个链接给你(类似Google doc),这样你在页面上写代码,对方可以同步看到。也有极少数情况,对方并不share链接,这时候你要在本地写好代码以后念给对方听。
电话面试有些要注意的情况:
1. 一定要准备一个耳机,因为多数情况你需要用双手去敲代码,或者Google。
2. 一定要确认好问题,切忌在不清楚问题的情况下想当然的胡乱回答。
3. 要把思考的过程念出来,让对方知道你是怎样想的。这样一方面可以让面试官了解你的思维方式,另一方面当你思路偏差的时候对方可以及时纠正你。
因为是电话面试,对方看不到你的动作,所以有一些小技巧可以使用,比如利用好一切资源:Google,以前写好的代码等等。在问题没有思路的时候可以解燃眉之急。
##问题
一般面试的问题分为两大类:Technical和Behavioral问题。
先说Behaviroal的问题。这方面的问题主要问你一些背景、经历、为什么想来我们公司啊,未来的发展打算什么的。一般来说如果你在面试技术类职位的话,Behaviroal的问题不会占面试的大部分时间,通常5分钟左右。但是并不是因此就可以不重视Behaviroal的问题,还是应该好好准备一下。
我所遇到的Behaviroal问题大概有:
* 说说上过的最感兴趣的课。
* 遇到的最困难的问题,以及如何解决的。
* 针对简历上的某条经历详细介绍一下:为什么要做它,遇到什么困难,学到了什么。
* 为什么想要进入XXX公司。
* 有些公司可能会针对他们的产品问你喜欢的地方、不喜欢的地方、需要如何改进之类的。
基本上Behaviroal的问题准备一次就可以适用几乎所有公司,所以建议在面试之前好好回想一下自己简历上的事情,把可能问道的问题、自己想要突出介绍的地方详细想一下。最后可以把相关内容写下来,或者列个提纲。这样在电话面试的时候可以从容不迫的到上面找答案。
再说说Technical问题。这方面的问题是面试的主要部分,也是最难准备的部分。问题常常涉及:
* 编程语言:会根据你简历上所写的擅长的语言问你一些该语言的问题。
* 面向对象编程(OOP):可能会让你设计一些模型,以考察你面向对象编程的思想。比如设计一下家具的类和接口。这时通常需要考虑问题中几个对象的共同点,将他们抽取出来建立成父类,然后再分别继承出来并添加各自的属性。
* 数据库、操作系统基础知识。比如进程堆栈、线程互斥问题、SQL语言、关系范式之类。
* 算法与数据结构(编程能力):这方面的问题涉及非常广。需要我们对常用的数据结构有比较深的理解:
数据结构方面,经常涉及的有:数组、链表、树、哈希表、队、栈。通常不会涉及过于复杂的数据结构,尤其对于树,基本只要理解到二叉搜索树就可以了。
算法方面,需要知道时间、空间复杂度的计算,会分析算法最坏情况发生的条件,有可能的话需要知道如何优化已有的方法。
对于最后一点编程能力的考察,通常面试官会给出一道问题,要求你用你最熟悉的语言去解决。对此有几点要注意的地方:
* 不要用伪代码。要尽量写出可运行的实际代码。
* 要确认程序的输入输出。比如如果人家提供给你的输入是个String的话,需要确认的地方有可能包括:String的大小是否可以fit in memory。String是否全部是英文字符、符号,是否是ASCII编码。等等任何会影响编码的问题。
* 确认是否有memory constrants。通常一个问题有和没有内存限制难度差别是很大的。比如找出一个数组中重复元素的个数。如果允许使用额外空间的话,我们可以使用一个哈希表记录每个元素的出现次数;如果不允许的话,则必须在原数组内部操作,相对来说就会麻烦一些。
* 不要急于给出最高效的方法。通常一个问题拿到之后我们都会很快的想出一个非常naive的低效解法。可以先把这个解法说给对方听,如果需要的话,把代码写出来。这样做的好处一是可以确定我们有正确理解题意,二是可以在一般说naive算法的时候一边想更高效的改进方法。通常面试官明白这个naive算法之后会问类似can you do better之类的问题。这时候才是问题真正开始变得困难的时候,所以建议在前面naive方法的时间内尽量多考虑改进的办法,为后面节省点时间。
对于算法题的准备,推荐下面两个网站。上面会有各个公司的面试题。题目的来源是面试者们在找工作的时候实际遇到的,而且会及时更新。
http://www.careercup.com/
http://www.glassdoor.com/
最后有几点面试的建议:
1. 面带微笑,即使对方看不到,但是对方会感受到你说话时语气的不同。
2. 自信,每一句话都要有底气,不要总是用一些大概、可能之类的词。
3. 不要不懂装懂。如果不会,就直接说。可以把自己对问题的全部理解讲出来,然后说明哪里不会。没有人可以知道全部事情,遇到不会的问题是很正常的。
4. 多参加学校的career talk,上面会有各个公司介绍的关于如何准备面试的信息,很有用。
5. 多和同学、学长交流,及时获取有用的面试信息。有可能别人面到的题你今后也会碰到。
6. 提前练习用英语讲算法,表达思路。
Written by 郭峰@IVY CLOSER Team
郭峰是IVY CLOSER 2012 fall的学员,目前就读于Brown University Computer Science Master Program,感谢他为学弟学妹分享他的经验,飞友们加油!
--------------------------------------------------------------------------------------------------------------------------
需要留学申请全程服务的小伙伴请加微信(xieqiao1218)预约咨询,预约请注明“留学申请服务”,本人是布朗大学CS系2010年毕业的校友,每年带20个学员左右,仅限数据科学、商业分析、金融会计、CS等相关专业。
精华文章整理:http://shixiren.com/01%20gradaute_app/
美国留学豆瓣小窝:https://www.douban.com/people/IVYCLOSER/notes
Description
写给那些刚来美国,暑期准备找实习的孩子们,算是我的一点点心得吧。
先介绍我的一下背景。
本科:北京邮电大学,信息安全 GPA:86/100
研究生:Brown University, Master of Science in Computer Science GPA:4.0 (1st semester)
研究生课程:Operating Systems, Database Management Systems, Distributed Systems. Design and Analysy of Algorithm, Data-Intensive Scalable Computing.
拿到实习Offer:Oracle (Saloris Core System Service Group).
#一、 时间
大部分人都是秋季入学,然后实习是在第二年的暑假,所以最佳的准备找实习的时间是在入学当年的冬季和第二年的春季。按照我今年的情况,春季再开始着手准备就已经有点被动了,所以建议从秋季学期就开始准备实习。很多秋季投出的简历会在第二年的春季开始面试,所以不要担心秋季刚入学的时候还没学什么知识,没法应对面试。而且,根据经验,秋季投简历的同学会在第二年的春季最早拿到面试,这样在招聘季到来之前可以首先积攒很多经验。
通常,最早的一批人会在2月下旬就拿到Offer,然后3月是大多数人收获的时间。如果到了4月还没有拿到实习的话,希望就变得很渺茫了。而且这个时候多数人已经都拿到了Offer, 自己的心理压力会变得很大。如果再赶上要期中考的话,那种生活就真的生不如死了。所以一定要提前开始着手,争取早点把简历投出去,早点拿到面试。
**投简历的主要途径:**
1. 一般学校在每个学期都会有一次大型的career fair,会有大量的公司来到校园内摆摊收简历。这个时候是投简历的最佳时期。
2. 另外,在学期进行中也会有陆陆续续的公司来学校办讲座,这也是公司收简历的一个主要途径。
3. 学校的Career Lab网站上一般会有很多公司的招聘信息,有些可以在网站上直接进行申请和投简历。但根据学校的不同,通过Career Lab投简历的命中率千差万别。
4. 最后一种方式就是到公司的页面上直接申请。
上面四种是申请实习的主要途径,其中一学期一次的Career Fair是招聘的高峰期。可以说大部分公司在Career Fair之后基本就招的差不多了,也有少部分公司在Career Fair之前就会招很多人,然后借着Career Fair补全剩余的位置。所以,可以理解为,Career Fair是找实习的最后机会,如果在这之后还没有找到实习的话,就会比较难办。而且在Career Fair之后,大部分人都已经拿到实习Offer,这时候如果自己还没拿到,心理上也会有很大压力。所以建议充分利用其他三种途径,在Career Fair到来之前争取多拿面试,甚至拿到Offer。
千万不要等到春季学期已经开始了才开始准备简历和找实习。一般如果你从春季才开始准备的话,从投出第一份简历到拿到面试中间最长有可能要等1个月以上。这样一不小心就会拖到3月份,时间上就会变得很紧张。
#二、简历
说说简历的准备。
基本上实习的简历与申请学校时候的简历差别不太大,在那个的基础上改改就可以。格式也都大同小异。以我的简历为例说一下各部分的内容:
1. Education
2. Programming Skills
3. Courses
4. Projects (Courses Projects / Independent Projects)
5. Awards
如果有竞赛或者获奖的话也可以加上。
**准备简历的几点原则:**
1. 我个人觉得没有必要将兴趣爱好写上,毕竟空间有限,应该把尽量多的位置留给能体现你技术水平的内容。
2. 面试的人通常会拿着简历问你上面的内容,所以绝对不可以写自己没有做过的事情。
3. 简历的中心思想是体现你的技术水平,以及对技术的热情。如果有ACM获奖,或者凭着个人兴趣做过的小程序之类的,可以放在简历的显要位置。这样可令简历更有竞争力。
4. 要尽量将重要的事情放在简历的前面,次要的往后放。
5. 写完简历之后要找有经验的人帮忙修改一下。老师,学长,或者负责招聘的staff都行。
#三、面试
面试一般分为电话面试、on campus、onsite三种。电面和on campus面试都在学校进行,而onsite就要到公司所在的地方现场面试。大部分公司不会对实习生进行onsite面试,如果有的话,onsite通常作为最后一轮,而且onsite之后很快(最快当晚)就会拿到结果。
##电话面试
电话面试的话,通常会先用邮件与你约定好一个时间,这时候需要注意东西部时差。然后到了那个时间会有一个人打电话给你。有时会要求你在电脑旁接电话,这样方便对方问一些编程的题。大部分情况,对方会share一个链接给你(类似Google doc),这样你在页面上写代码,对方可以同步看到。也有极少数情况,对方并不share链接,这时候你要在本地写好代码以后念给对方听。
电话面试有些要注意的情况:
1. 一定要准备一个耳机,因为多数情况你需要用双手去敲代码,或者Google。
2. 一定要确认好问题,切忌在不清楚问题的情况下想当然的胡乱回答。
3. 要把思考的过程念出来,让对方知道你是怎样想的。这样一方面可以让面试官了解你的思维方式,另一方面当你思路偏差的时候对方可以及时纠正你。
因为是电话面试,对方看不到你的动作,所以有一些小技巧可以使用,比如利用好一切资源:Google,以前写好的代码等等。在问题没有思路的时候可以解燃眉之急。
##问题
一般面试的问题分为两大类:Technical和Behavioral问题。
先说Behaviroal的问题。这方面的问题主要问你一些背景、经历、为什么想来我们公司啊,未来的发展打算什么的。一般来说如果你在面试技术类职位的话,Behaviroal的问题不会占面试的大部分时间,通常5分钟左右。但是并不是因此就可以不重视Behaviroal的问题,还是应该好好准备一下。
我所遇到的Behaviroal问题大概有:
* 说说上过的最感兴趣的课。
* 遇到的最困难的问题,以及如何解决的。
* 针对简历上的某条经历详细介绍一下:为什么要做它,遇到什么困难,学到了什么。
* 为什么想要进入XXX公司。
* 有些公司可能会针对他们的产品问你喜欢的地方、不喜欢的地方、需要如何改进之类的。
基本上Behaviroal的问题准备一次就可以适用几乎所有公司,所以建议在面试之前好好回想一下自己简历上的事情,把可能问道的问题、自己想要突出介绍的地方详细想一下。最后可以把相关内容写下来,或者列个提纲。这样在电话面试的时候可以从容不迫的到上面找答案。
再说说Technical问题。这方面的问题是面试的主要部分,也是最难准备的部分。问题常常涉及:
* 编程语言:会根据你简历上所写的擅长的语言问你一些该语言的问题。
* 面向对象编程(OOP):可能会让你设计一些模型,以考察你面向对象编程的思想。比如设计一下家具的类和接口。这时通常需要考虑问题中几个对象的共同点,将他们抽取出来建立成父类,然后再分别继承出来并添加各自的属性。
* 数据库、操作系统基础知识。比如进程堆栈、线程互斥问题、SQL语言、关系范式之类。
* 算法与数据结构(编程能力):这方面的问题涉及非常广。需要我们对常用的数据结构有比较深的理解:
数据结构方面,经常涉及的有:数组、链表、树、哈希表、队、栈。通常不会涉及过于复杂的数据结构,尤其对于树,基本只要理解到二叉搜索树就可以了。
算法方面,需要知道时间、空间复杂度的计算,会分析算法最坏情况发生的条件,有可能的话需要知道如何优化已有的方法。
对于最后一点编程能力的考察,通常面试官会给出一道问题,要求你用你最熟悉的语言去解决。对此有几点要注意的地方:
* 不要用伪代码。要尽量写出可运行的实际代码。
* 要确认程序的输入输出。比如如果人家提供给你的输入是个String的话,需要确认的地方有可能包括:String的大小是否可以fit in memory。String是否全部是英文字符、符号,是否是ASCII编码。等等任何会影响编码的问题。
* 确认是否有memory constrants。通常一个问题有和没有内存限制难度差别是很大的。比如找出一个数组中重复元素的个数。如果允许使用额外空间的话,我们可以使用一个哈希表记录每个元素的出现次数;如果不允许的话,则必须在原数组内部操作,相对来说就会麻烦一些。
* 不要急于给出最高效的方法。通常一个问题拿到之后我们都会很快的想出一个非常naive的低效解法。可以先把这个解法说给对方听,如果需要的话,把代码写出来。这样做的好处一是可以确定我们有正确理解题意,二是可以在一般说naive算法的时候一边想更高效的改进方法。通常面试官明白这个naive算法之后会问类似can you do better之类的问题。这时候才是问题真正开始变得困难的时候,所以建议在前面naive方法的时间内尽量多考虑改进的办法,为后面节省点时间。
对于算法题的准备,推荐下面两个网站。上面会有各个公司的面试题。题目的来源是面试者们在找工作的时候实际遇到的,而且会及时更新。
http://www.careercup.com/
http://www.glassdoor.com/
最后有几点面试的建议:
1. 面带微笑,即使对方看不到,但是对方会感受到你说话时语气的不同。
2. 自信,每一句话都要有底气,不要总是用一些大概、可能之类的词。
3. 不要不懂装懂。如果不会,就直接说。可以把自己对问题的全部理解讲出来,然后说明哪里不会。没有人可以知道全部事情,遇到不会的问题是很正常的。
4. 多参加学校的career talk,上面会有各个公司介绍的关于如何准备面试的信息,很有用。
5. 多和同学、学长交流,及时获取有用的面试信息。有可能别人面到的题你今后也会碰到。
6. 提前练习用英语讲算法,表达思路。
Written by 郭峰@IVY CLOSER Team
郭峰是IVY CLOSER 2012 fall的学员,目前就读于Brown University Computer Science Master Program,感谢他为学弟学妹分享他的经验,飞友们加油!
--------------------------------------------------------------------------------------------------------------------------
需要留学申请全程服务的小伙伴请加微信(xieqiao1218)预约咨询,预约请注明“留学申请服务”,本人是布朗大学CS系2010年毕业的校友,每年带20个学员左右,仅限数据科学、商业分析、金融会计、CS等相关专业。
精华文章整理:http://shixiren.com/01%20gradaute_app/
美国留学豆瓣小窝:https://www.douban.com/people/IVYCLOSER/notes
-
小乖 转发了这篇日记 2012-07-09 21:43:38