信区: Job_IT
标 题: guxinxing的求职经历与建议(IT类)
发信站: 北大未名站 (2009年03月20日13:58:37 星期五), 站内信件
早就答应了lobbat同学,拖到现在才完工,很不好意思哈~
先简单介绍一下我的情况:
cs02本06研,网络实验室。拿到百度工程师、Booz咨询师和谷歌APM三个offer,今年
夏天加入谷歌。
下面正式开始:
从第一次面试,到选定工作offer,前后只有四个多月的时间。但为了拿到自己喜欢
的工作机会,从确立兴趣方向、做着各种准备到应对面试、最后选择职业发展道路,付出
的时间和精力比这要多得多。下面就这几个方面,主要针对IT职位的申请,谈一点我自己
的亲身经历和体会,最后还会谈一谈如何准备简历。
【准备】
整个求职过程中,我一共只投了大概10家公司,包括谷歌产品经理、微软项目经理和
百度工程师,6家管理咨询公司以及中国移动产品设计岗。在年后才拿到最终offer的同学
中,这算是非常少了,这里的主要原因是我在求职季节到来之前就立下了明确的求职目标
,即IT业的产品经理和管理咨询业的分析师,并且针对这个目标进行了充分地准备。
针对技术职位
为了准备技术类的面试,在半年多以前我就开始了复习,主要包括算法、数据结构、
操作系统、体系结构等。此外,对于互联网公司离不开的网络以及分布式系统的相关知识
,我也会特别关注。复习的方法除了回顾基本理论之外,有两点被证实是有效的:一是要
动手写代码。尤其是基本的数据结构和相关算法,一定要动手写出来并编译通过。原因是
,一来面试常常会面试到基本数据结构的细节,或者从基本数据结构出发,要求做出改进
以满足一些特殊条件,二来即使如删除链表头节点这样简单得不能再简单的操作,如果不
熟悉,在实现上也容易发生错误(比如,函数参数应该是链表头指针的指针而不仅仅是指
针)。二是要关心实际系统。程序员杂志或者CSDN网站经常会有实际大型网站架构等分析
文章,关注这样的实际系统能够加深对分布式大型系统的理解,对于面试互联网公司是很
有帮助的。
针对产品经理职位
相对技术类“靠硬本事吃饭”的职位,产品经理的评估指标更加软性一些,相对地也
不容易特别有针对性地准备。我做的准备主要包括,了解IT产品经理的工作,增强对产品
和行业的了解,锻炼逻辑思维能力,提升英语听力与口语水平,等。
申请产品经理自然要对产品和行业非常了解,因此我从很早以前就开始广泛地关注和
尝试新的互联网产品。我关心的产品不仅包括谷歌的大部分服务,还从techcrunch, wir
ed等网站上了解到硅谷最新的产品和服务。当然,了解只是第一步,之后我会花更多地精
力来问自己很多问题,比如:这个新产品解决了什么问题,这个问题以前是否存在,是对
所有人都存在还是只针对部分用户,如何发现这个问题,还有什么问题没有解决,等等。
这样的思考过程有时候很艰难,但是每一次思考都是对自己的磨练,也相当于一次模拟面
试。
逻辑思维的锻炼主要是准备咨询业的案例面试中获得的副产品。咨询行业是以观察和
推理来得出问题解决方案的行业,对逻辑严密性要求很高,多了解一些相关的知识和方法
,能够帮助我们锻炼思维和表达。例如,咨询行业常用的框架如4C、4P等,有助于我们形
成结构化的思维模式;而根据更重要的分析原则,如MECE(不重复,不遗漏),则能让我
们脱离框架的机械化思路,根据实际问题进行有条不紊、逻辑严密的分析和论述。
最后,对于外企中需要与人作大量沟通的职位,英语太重要了。没有顺畅的理解和较
为流利的表达,很难想象我能顺利通过7轮英语母语考官的面试。英语的锻炼是个长期的
过程,但如果找一个水平较高的语伴坚持完全用英语交流,加上有针对性的练习(比如,
用英语回答我上面提到的关于产品的问题),在较短时间内达到英语面试要求的水平是很
有可能的。
【简历】
在申请职位之前,如何准备一份合格的求职简历?
我认为,一份好的简历应该在形式上美观大方、清晰明了,在内容上充实有分量,主
次分明,针对性强。
解决形式问题的办法就是使用合适的模板。一般来说,普通求职简历可以采用比较流
行的哈佛商学院简历模板,这在网上很容易搜到。但是,针对不同的职位以及个人经历,
应该对模板进行适当地修改,使之适合目标职位的具体要求。例如,针对IT职位,可以将
“工作经验”换成“实习经历”或者“项目经历”;再比如将“个人信息”换成“职业技
能”,填写自己熟悉的计算机语言和获得的认证,等等。而要申请外企经管类的职位,“
课外活动”或“交流活动”则是必不可少的要点。另外,每个人的情况不同,要根据自己
的经历和特点来修改简历模板。例如,学术上成果比较多的,可以单独加一项“专利论文
”,而奖学金奖励多的,也可以单列出来以突出。
简历更重要的是内容。一方面,内容要能体现求职者的能力和经历满足目标职位的需
要。这就要求我们仔细地挖掘相关的经历,并加以适当的总结和提升,最后用书面化的语
言表达出来。另一方面,内容应该能反映出作者训练有素的逻辑思维。一般来说,一段经
历需要有三到四个要点来支持,重要的就在于如何选择几个要点的内容,以及如何对它们
排序。一般而言,可以选择如下两种策略。第一种,首先简明扼要的说明是一段什么经历
,然后用一到两个要点来说明自己(注意,不是项目组)具体完成了哪些工作,最后一个
要点说明工作效果或者自己的收获。第二种,对于事情多且杂的经历,应该选取最具有代
表性的事务,按照其重要性递减的次序分别描述出来。
套用一句老话,一份好的简历“不是写出来的,而是改出来的”。即使针对同一类型
的职位,我的简历经过前后不下数十次修改,小到把中文逗号改为英文逗号,大到增删一
段个人经历,目的只是为了使得简历更加符合雇主的需要,顺利通过求职第一关。
【面试】
百度•研发工程师
9月底,我的第一次面试是百度web新产品部门的工程师。这个时间之所以早于百度正
式招聘的笔试,是因为有百度的师兄进行了内部推荐(这告诉我们一个道理,只要是自己
真正想要的职位,一定要争取内部推荐,这样能保证自己至少能通过简历关甚至笔试关,
避免一时失误造成自己和招聘公司的损失:)
我当天面试了两轮技术面,每轮面试一小时,一周后加一轮经理面之后就顺利拿到了
offer。百度的技术面试一向难度不小,但幸运的是,一面的面试官虽然年轻,还很有面
试经验。他从几个简单的问题开始入手,逐渐加大问题难度,给了我充分的时间来给大脑
热身。这个部门的面试题特点是,跟实际系统结合得很紧,分布式系统的题目很多。由于
热身充分,等到真正的难题出现的时候,我已经能够充分地放松紧张的神经,全力思考问
题的各种解决方案,评估方案的优劣,并试图优化方案,比较顺利地解决了大部分问题(
这又告诉我们,遇上一个有经验的面试官是多么的重要。成功的面试是考官和被面试者双
方共同的成功!)。面试官也很满意,咨询我的意见后,直接叫来另一位工程师进行第二
次面试。值得一提的是最后的经理面,提的第一个问题竟然是,“你在前面面试中有哪题
没回答上来,回去后是否思考了,答案是怎样”。这题看似没有问新的问题,但它直接考
察了求职者是否具有积极学习和孜孜求解的态度,如果抱着考完拉倒的心态,估计很难让
这位经理满意。
技术面试中很难保证不碰到难题,在不能立即回答出最优答案的时候,需要使用一些
面试技巧来应对。我的经验是分四步走,即理解题目,原始算法,优化算法,复杂度/性
能分析。首先要确认问题的细节,通过跟面试官的沟通来彻底理解题目要求和限制条件等
。然后,在最短的时间内提出自己的原始算法,并进行计算复杂度分析,如果是系统设计
,则进行系统性能以及优缺点分析。一般来说,原始算法很容易想到,但几乎不是考官需
要考察的最优解。因此,应该利用理解题目和描述原始算法的时间,脑子里积极开动脑筋
,通过联想类似的系统或问题的解决思路,快速形成优化算法的基本思路。在提出优化算
法之后,还应进行复杂度和性能评估。
微软•项目经理
11月下旬,我参加了微软MBDC部门Office组的项目经理面试。由于在微软做过项目经
理实习生,因此我对于公司对PM的要求很熟悉,因此面试得比较顺利,一个下午连续面试
完4位项目经理,大概耗时5个小时。相对而言,微软对项目经理的技术要求不高,仅仅有
一轮面试要求写一段很简单的代码。主要围绕着产品设计和项目管理展开,考察是否具备
开阔的思路、对产品开发流程的理解以及对产品进度的掌控。例如,有一位面试官问到了
如何对待产品bug的问题。这个问题考察你是否理解bug解决的代价,可能带来的风险,以
及在不同的产品开发阶段应对bug的不同方式。如果简单地回答解决bug,那说明对产品开
发的经验和理解太过欠缺,也说明思考问题不够全面,不适合这个职位。就我看来,这些
要求,恰恰体现了微软作为全世界软件(狭义的软件,区别于互联网等)业老大所最擅长
和最看重的特质:稳定压倒一切。HR通知我的面试结果是,面试成绩非常好,但是由于金
融危机和即将到来的微软裁员,MBDC没有PM的指标,真让我感觉哭笑不得:)
谷歌•助理产品经理
从去年10月份到今年1月份的四个月期间,我参加了谷歌助理产品经理(以下简称AP
M)的职位申请。产品经理是谷歌的一个非常特殊的角色,一个产品除了开发和测试之外
的事情,基本都由产品经理主导。其中最重要也是最令人激动的是产品功能设计,也就是
说,你对产品功能的任何合理的想法,都可以在产品经理这个平台上得到实现,最终被全
球数以亿计的网民使用,改变他们的生活!这样的影响力是吸引我的最主要原因。另外,
足够大的学习平台、世界水准的开发团队和优良的工作环境与待遇,也使我心向往之:)
APM是面向工作经验两年以下的产品经理申请者的一个为期两年的培训生计划,工作内容
与产品经理基本一样。也由于产品经理的重要性,谷歌这个职位的招聘流程非常之长,前
后一共面试了十二人次,撰写一篇英文的产品分析文章。这十二人次分别包括了,普通的
工程师,谷歌中国的产品经理,谷歌总部的产品经理,远东地区产品经理主管,亚太地区
产品经理主管,APM项目HR,以及一位负责搜索产品与用户体验的全球副总裁。所以,需
要得到自上而下各个层级的同事的认可,才能拿到这个工作机会。
首先是两轮技术面试。由于我原本申请的是工程师职位,后来才改申产品经理,因此
参加了两轮工程师技术面试。参加过PM技术面试的同学说,只有一轮技术面试,而且内容
相对比较容易。谷歌的技术面试算是行业内最高难度的之一,一般认为有过ACM编程比赛
训练的应聘者会有明显优势,但也不尽然。面试的内容比较广,其中一个面试官考了我6
个问题,涉及了图论、概率等不同的六个方面;既有动手写代码,又有设计题,要求相当
全面。从我的面试来看,谷歌技术类面试不强调对特定领域知识的了解(比如如何将BMP
压缩成JPEG),而是喜欢从基本知识出发,加上新的限制条件,来考察求职者综合技术水
平。这也印证了我前面提到的,复习基础知识,加强动手能力是行之有效的准备方法。
之后的十次APM面试两种区别明显的风格:PM面试官倾向于考察产品具体特性设计能
力以及对技术的了解,管理层面试官则更多地考察创造性、个性以及对产品和行业的理解
。在与PM面试官的交谈中,不仅被问到对特性的设计和改进,还被追问到可以使用怎样的
技术,如何设计实现框架等。这种考察仅限于了解有哪些相关技术,以及各种技术的适用
场合,并不要求编码实现。当然,这也很好理解:一个对技术缺乏了解的PM与工程师将无
法沟通。管理层的面试官关心的问题更加高层,很少提特别细节的问题,甚至会问到与产
品设计、与互联网、与软件甚至与IT业都完全无关的问题。但是这些开放性问题却能考察
求职者的个性(能否处变不惊,)、逻辑思维与表达、创新性以及对互联网领域的理解。
如何准备这些面试,在前面部分已经提过,就不再赘述了。
【选择】
对不少人来说,第一份工作可能就决定了以后的职业发展道路和生活方式。因此,选
择目标职位和offer其实比面试更为重要。
当我开始考虑自己适合做程序员还是产品经理或项目经理时,我对PM的了解还仅限于
师兄口口相传的一些“轶事”。为此我申请了微软Office部门的项目经理实习。在这次实
习中,我亲身体验了PM的工作性质和内容。对比工程师和PM实习经历,我发现了自己的如
下特点:
1. 喜欢做较高层的思考胜于具体实现(相对于很多技术天才关心于“怎么做”并从
中获得极大满足,带给我更多快乐是“做什么”的问题)
2. 对IT新产品新特性有着莫大的兴趣
3. 常常换位思考,试图从管理层、开发者和用户等不同角度来看待一个产品
4. 在技术工程师中具有沟通优势,在管理人员中具有技术优势
这样,我发现了自己的兴趣和“比较优势”,同时也就明确了自己的求职目标。这些
结论除非通过亲身体验,否则是很难从别人口中得到的。另外,不同公司的PM职位性质和
内容都不尽相同,因此我会通过搜索引擎详细地了解我关心的公司对PM的要求,并从中选
择自己最适合的职位。
选择offer的时候,在管理咨询师和产品经理之间,我考虑的因素主要包括以下(按
重要性降序):个人兴趣、学习发展机会、平台及其影响力、生活方式和待遇。
第一重要的是兴趣,对我来说,兴趣是我全身心工作的基础,也是成功的必要条件。
我很看重薪水和生活方式,但我没有把它放在第二重要的位置上,因为我更看重的是
五年后、十年后的薪水,而不是起薪。有一位师兄跟我说过,对于事业起步的年轻人而言
,决定未来薪水的,就是你能在这份工作中学到什么,在这份工作后你能积累什么作为以
后的资本。我非常认同这样的见解。因此,我把学习和发展的机会放在了仅次于个人兴趣
的位置上。
企业是个人发展的最主要平台。平台的好坏不仅由其大小决定,也在于个人是否适合
平台的整体文化和氛围。即使在同一行业中,不同公司的文化差异也是很大的。谷歌相对
宽松的氛围和鼓励创新的文化正是我所追求的,我相信这样的文化能够有助于我发挥潜能
。
在这里我仅把我的考量拿出来供大家参考和批评。个人情况不同,应该综合考虑。比
如我,还需要把户口作为一个很重要因素,就是因为个人原因。
【尾声】
在这篇文章里我对自己的求职心理、感悟等几乎没有涉及,啰啰嗦嗦写的都是经历和
具体的建议。原因在于,面试是个充满了太多不确定性的过程,但同时又有很多经验可以
借鉴来避免失误。我几乎毫无保留的把所有我觉得在求职过程中最值得注意的和最有效的
方法介绍给大家,只是希望可以通过这些给未来求职的优秀的校友一些提醒和帮助,使他
们能够多一些成功的经验,少一些失败的教训。