Interview · Career
USC来Coder Club学长学姐私享会嘉宾
Xiaoyue:南加州大学(USC)CS 专业研究生一年级,本科为软件工程专业,目前在Amazon实习。
Yuning:USC CSSE 应届硕士毕业生,7月份即将入职YouTube。本科就读国内大学与美国密苏里大学的2+2 EE专业。硕士毕业前没有CS相关的实习经历。
Club小助手:感谢两位USC学姐为大家分享求职心得!相信有很多同学都和Yuning学姐一样,想从EE转向CS,请问在转专业中遇到的最大挑战是什么?
Yuning:在学习方面,我遇到的最大的挑战是基础比较薄弱。曾想借助Coursera补充基础知识,但Coursera的课程有这样一个问题:简单的问题花费时间过长,而困难的问题讲解又太仓促。在求职中,转专业同学时常能感觉到自己的CS素养不够,缺乏最基本的CS的知识,很多专业课都没有学过。我在硕士入学一年之后就开始进行求职面试,很多基础知识都没来得及补,而这些专业课上训练出来的专业素养又恰恰是面试官最看重的。
Club小助手:这么听上去,EE转CS的同学真是不容易啊…那学姐对转专业的学弟学妹们有什么建议呢?准备周期需要多长,又该如何做学习计划?
Yuning:对于准备周期,我觉得半年时间足够;至于学习计划,如果时间足够,可自学一些课程,首先是以打好算法和语言的基础为主。应至少熟练掌握一门语言,以及了解多线程并发的概念及实现,系统设计,linux系统的常用命令。当时来offer的课程对我帮助很大,比如孙老师的算法课和吕老师的Java课。在制定个人学习计划的时候,应该有的放矢,把重点和注意力放在自己不足的地方,一步步的填补自己的不足。
Club小助手:群里刚刚有位同学提了这样一个问题,作为转CS专业的学生,在操作系统这个方面上需要了解多深?在面试中,具体哪部分的知识会更重要呢?
Yuning:其实这位同学的认识有一个根本上的问题,那就是在你找工作的时候公司并不会因为你是转专业的学生而降低要求。我觉得在操作系统这上面,首先要把学校教授的相关知识掌握好,来Offer的系统设计等课程也是很好的补充。对于面试的重点,每个公司各有不同。比如Yahoo会问一些比较基础的知识,像内存如何分配,以及一些简单的概念问题,但不会让你就多线程进行编程。而Dropbox的onsite面试有一道题就是写一个多线程的web crawler,且会有很多follow-up questions。所以在学习巩固操作系统知识的时候,可以依你申请公司的不同量力而行。时间充足的话可以多掌握一些,没什么时间就集中解决基础问题,因为大部分公司并不会问多线程的问题。
Club小助手:Xiaoyue是CS科班出身,又有Amazon的实习经历,目测毕业后的求职会很顺利吧!不知道你在求职中有没有体会过Yuning学姐那样'知识不够用'的情况?
Xiaoyue:嗯我本科和硕士都是CS专业,对这个问题感触还是挺深的。就我了解,美国每个学校CS的课程设置都不一样,其中有几个内容会跟面试时的职位要求比较贴切,比如算法,数据结构,数据库,软件开发,web开发等;有的学校会教Java,有的学校是C++。但是,光靠学校的课程的确是不足以应对面试的,因为这些知识比较理论化,和实际工作脱节,在一些公司看重的方面又缺乏深度。而面试的时候,面试官通常会问的比较深入,而且更贴近实际工作。比如,现在学校里的课程很少会讲OOD(反正USC没有讲:-D),一般只讲object-oriented design和 system design,但是面试还是经常会考察OOD。面试中考察的基础知识都差不多,但每个人肯定都会有一个自己精通的语言,比如Java或者C++,一些考官就会针对这门你最擅长的语言,问得特别深入。如果你在简历上写了熟悉的语言,一定要确保面试时经常会问的那些细致的问题都要会回答。总而言之,即便是CS科班出身,应对面试还是要做大量功课的,一定要看面经,根据公司的具体要求去做准备,而且要提高知识和实际工作结合的能力,加深对知识的理解。
Yuning:就我而言,最重要的首先是完善简历。如果你的简历表达不足,是很容易被HR筛掉的。在简历方面,你要根据职位的要求来制作和投递相应的简历,简历上的经历与你的职位越契合,获得面试的机会就越大。另外,你还需要了解HR在筛选简历时的喜好。其实很多时候,HR并不是技术人员,他们只注重与一些词汇。所以,我们要学会有技巧地描述我们所做过的项目,让HR可以一眼就看中你的简历。来Offer的孙老师当时帮助我改过简历以后,我收到面试的次数大大增加。当然了,我们不仅要过HR这一关,也要让技术人员也认可你得简历。我的建议就是大家可以多看看印度人的简历,他们的简历就很好,很会吹,大家要学会'取其精华'。当你有了一个好的简历之后,你一定要抓住任何一个内推机会。当然有的公司并不注重内推,比如微软,这个时候就要求你们一定要在on-campus的career fair抓住机会跟面试官好好聊一下了。最后一点就是投简历的时机十分重要。如果你早一点开始投简历,只要你的简历过关,就有更大的机会拿到面试。如果错过了时机,那么除非简历非常出类拔萃,否则拿到面试的机会将会大大降低,因为你要等上一轮的人全部面试完并且全挂了才可以。
Club小助手:现在我们都知道了内推的重要性,但像我这种认识的人不多,或者专业也不是CS相关,接触不到很多公司里面的人,有哪些获得内推的有效途径呢?
Yuning:我就说一说我是怎么找内推的吧。首先,我在Linkedin上疯狂加人,比如本科校友,usc校友,只要是中国人我都会加,虽然并不是所有人都会回加你。等到他们加你了以后,可以写一封十分诚恳的信,介绍一下自己的情况。如果你自己能力不够、准备不充分,别人也是不大愿意推荐你的。在LinkedIn上,你也可以加一些陌生人。大家可以想象一下,如果你将来工作了,在网上收到了一个中国同胞的内推请求,只要对方不是特别粗鲁,你一般都会愿意帮忙的,对吧?(:-D)另外,如果大家报名了来Offer,那么来Offer的老师就能提供非常好的内推资源。我每次去找来Offer的孙老师,他都帮我内推了,比如我最后成功进入Google,也要感谢孙老师的大力推荐。
Club小助手:谢谢学姐分享找内推的方法,希望大家都get到啦!Yuning学姐也提到投简历的时机很重要,请问找full-time工作的话哪个时间投比较好呢?
Yuning:就我个人而言,我觉得投简历比较重要的时机是八月份。如果你没有准备好的话,九月初你一定要开始。我是九月初开始投简历,有很多比我晚一到两周的同学,他们的面试都会比我晚到三周,甚至是一个多月。这样的时间差,就可能导致当你on-site面试的预定时间到了的时候,这个职位已经招满了,那么你的面试就会被取消。如果你一切ready的话,那么八月初就可以开始找内推了。从你开始找联系人到拿到机会还是有一段时间的,更要提早开始行动。你可以列一个公司列表,管理你的求职进度。
Club小助手:准备简历和获得内推机会很重要,面试中的良好表现才是决定成败的关键。但是我身边的很多同学对面试的概念非常非常模糊。想问一下两位学姐,在真正面试时,应该如何正确地同面试官交流?
Xiaoyue:其实跟面试官交流的时候,首先就是不要害怕不要紧张。适度的紧张是可以的,但不要太紧张,只要当成是跟朋友交流就好。一开始你就要掌握主动权,比如跟面试官主动问好;要尽量跟面试官保持交流,让气氛轻松一点。在面试官提问之后,可以按自己的理解重复一遍,这样做有两个好处,一个是帮助自己理清思路,另一个是也保证自己理解对题目,如果你会错意跑题那就太惨了。在思考问题的时候也不要一言不发,要学会think loud,让面试官了解你的思路和思维方式。知道解法以后,也不要立刻下手写,而是要跟面试官解释自己要做什么。面试官要是觉得可以,他会让你写;但如果这个解法不是他想要的,他可能就会给你一些提示或者让你再想一想,这样就会特别好。