35场面试,应届计算机毕业生的霸气求职之路

1,简介python

毕业答辩搞定,总算能够闲一段时间,把这段求职经历写出来,也做为以前三个半月的求职的回顾。linux

首先说说我拿到的offer状况:程序员

微软,3面->终面,搞定面试

百度,3面->终面,口头offer算法

搜狗,2面,悲剧数据库

腾讯,1面,悲剧编程

布丁移动,3面,搞定设计模式

涂鸦游戏,3面,搞定数组

友盟,3面->CEO面,搞定数据结构

雅虎,4面->终面,搞定

微策略,2面,悲剧

人民搜索,3面->终面,搞定

人人,2面+终面+Special面,搞定

Google,7面,搞定

求职经历分为定位、准备、简历、笔试和面试这五个部分,你们挑感兴趣的看就成。

个人求职经历适用但不限于码农,不适用与企事业单位(听说是彻底不一样的考察标准和流程)。废话比较多,你们耐心忍受,有什么问题能够跟帖提问。

2,定位

教育经历:本科在大连某工科院校,因为GPA比较惨烈+挂科,因此没保成研,毕业后修了一年英语双学位,而后到帝都计算机职业教育学院接受再教育。

技术能力:属于半码农半产品的类型,代码编的过去(搞过compiler),也有一些拿的出手的产品(几十w的用户量),一句话描述:几十w代码+几十w用户的Coder。

专业能力:非ACM出身,算法拙计但基础扎实。因为单身因此看了N多书(CS+心理+经管+历史),扯淡能力强大,碰到非专业的各类秒杀,碰到专业各类拙计。

实习经历:大四在一家ds公司实习过一年,攒了很多代码量;后来在MS断断续续的待了一年多,虽然说是打酱油,但在众大神的光环笼罩下,水平至少提了三个档。

目标公司:因为百度给个人印象实在不好,而MS给个人印象又实在很好,全部就有了下面的排名:

外企(Google、MS、Yahoo等)>国内互联网(阿里、腾讯、百度、网易等)>企事业单位(基本不考虑)

3,准备

常常在论坛里看到各类求职抱怨贴,其实在抱怨前应该仔细想想,为了求职,你付出了多少?看到人家找工做找的顺找的爽,有没有想过人家背地里付出了多少努力和心血?别拿官二代和富二代啥的说事,真ds只会拿一堆自身之外的理由掩饰本身的懒惰。

不要认为求职就是发个简历等面试通知,对于大神来讲不用发简历牛逼公司也会围着你转,对于ds来讲就是预则立不预则废,中国缺什么就是不缺人,不下功夫准备颇有可能连个P都没有。

其实不少ds就是怕预也废因此干脆不许备直接上,这样搞不定的话,就有借口说不是本身蠢而是本身没准备,能够捍卫本身的智商高地不被侵犯。身边有很多这样的实例,典型的死要面子×××,活该你找不到工做。

个人微软mentor曾提到过,个人实习面试表现通常,但后来表现出的动手能力大大超出以前面试的预估,而有些面试表现很出色,问题对答如流的选手,入职以后反而不是很理想,至少没有达到面试时发挥出的水准。

这 说明一个问题,就是笔试面试,准备和不许备会差别很大。若是你的简历不是那么NB,那就只能靠笔试和面试的加分撑场面。身边常常有同窗纳闷这样代码都编不 利索的傻屌都能进MS为何我不能进,答案每每很简单:人家比你多准备了一个月。平时电脑上写程序可能很利索,笔试面试时在纸上写写试试你就知道什么叫拙 计。

IT公司的笔试和面试的题量都不大(相对于企事业单位和银行动辄上百道选择题的题量,算是不多),通常十几道选择题,三四道大题就算题 量很大。但计算机的东西实在又是太多,程序设计、数据结构、算法设计、操做系统、体系结构、编译原理、数据库、软件工程等分支,编译的话太难(一千个码农 里也没几我的能在纸上写一个最基础的递归降低LLParser),软件工程、体系结构、数据库这些太水(不是说这些分支没用,而是它们很难考察,尤为对应 届生来讲这些都是些文字游戏,好比说面向对象的三要素五原则,有个鸟用),这么一排除,再把数据结构和算法设计一合并,就剩下程序设计、算法和操做系统。 没错,这三项搞定,国内外IT公司通杀。

所以个人笔试和面试准备很简单,就是重温+突击程序设计、算法和操做系统。下面是个人笔试+面试准备内容:

程序设计:

1,把基础的数据结构的C语言实如今纸上写三遍以上,用我能想到的最精简最优化的方法

2,阅读CARM和TCPL,确保不会遗漏C语言的每一个细节

3,重温以前本身作过的靠谱项目,并总结里面的关键难题和解决思路

4,重读Writing Solid Code、Elements of Programming、Practice of programming

5,阅读Science of Programming,作到能够证实本身的程序的正确性(前条件+后条件+不变式)

算法:

1,重读Algorithm Design Manual,重点阅读Dynamic Programming和Backtraverse

2,重读Programming Pearls和More Programming Pearls,并完成全部课后题

3,独立解决编程之美里面的题目(国内很多企业选题用的这本书)

4,完成Careercup里Amazon、Google和Microsoft这三个分类下面的前20页面试题

5,完成TopCoder的数十道D1L2~D2L1难度区间的算法题目

操做系统:

1,重读Modern Operating System,重温OS的核心概念

2,重读Computer Systems a Programmer's Perspective的关键章节,回顾里面的关键点

从七月底开始一直到十一月,花了接近四个月,不少东西都是一边面试一边准备:面试->发现盲点->修复盲点。

此外列出一些面试笔试题的资源,此外感谢×××@codewarrior以前的推荐:

1,Crack over the code interview

很靠谱的笔试面试指导手册

2,CareerCup

集齐了大量的真实笔试面试题,去外企的必定得看

3,TopCoder

若是不是ACM,练这个就够,其实面试也不会问太难的算法,哪怕是google

4,编程之美

尽管题目有些过期,但依然很实用,三星题目适合一我的仔细想

此外也说下一些不靠谱的资源:

1,IT公司面试100题

这个恐怕是国内传的最多的IT面试题

题目自己还能够,但那个出题人自己代码功底通常,给出的答案包含大量错误和缺陷,致使参考价值骤降

2,程序员面试宝典

翔同样的书,各类错误概念的堆积,若是一个错误给我一块钱,我能从这本书搞成万元户。若是去正规公司拿这本书准备,包你被黑出翔。

4,简历

在MS时,老大曾让我帮忙招几个靠谱的实习生,所以我收到了几百封简历,过了一把HR的瘾。这里说说本身在看简历时发现的几点:

1,可读性。不 要用Word或压缩包,用PDF。此外在邮件里面用纯文本加上本身的简介,简化对方阅读的操做。要记住HR一天看的简历海的去了,压缩包是HR最痛恨的格 式,由于解压了就不知道扔哪去了,有时干脆就不看;Word有版本问题,10的docx到了07 每每被黑出翔。还有就是对方有可能不在PC上读邮件,所以纯文本的简介很是有必要。

2,群发。不要给人群发的嫌疑,看清楚目标职位和目标公司,我发的工程院招聘贴,收到的几百封简历里面有十余封是投到微软亚洲研究院,有几个干脆写“敬爱的某领导”,尼玛这不找抽么。

3,设计。特 别提一下设计,不少电工的简历就是翔,丑的一逼,对齐没有,字体拙计,要点不明。再放到几百份几千份简历里面,活该你被忽略。建议全部电工投简历前阅读 《给你们看的设计书》,至少搞明白里面的C.R.A.P四原则。不要小看设计的威力,在简历内容接近的状况下,良好的设计会大大加分。

4,篇幅。控制在一页之内。倒不是说不能写两页,而是HR没时间看两页这么多。并且就我看过的几百封简历而言,凡是超过两页的没一个靠谱,有这么高的先验几率,HR才没工夫一个个筛,反正中国有的是人。

5,重点。必定要有重点,作到让HR经过简历在20秒内肯定你靠不靠谱。能够用加黑字体进行视觉引导。

6,措辞。甭搞“渴望获得这份工做”、“期待在xxx的工做机会”这样的句式,除了显得你低端,其它毛用没有。

7,别字。千万不要出现错别字,别字简历通常直接干掉。一页的简历都能出问题,通常不会靠谱。

因 为看了不少不靠谱的简历,我对简历重要性的理解要比其余人深入不少。首先花了一周把原来两页半的纸缩到一页内,而后找UI朋友帮忙调整了版式、缩进和字 体,并找UX朋友帮忙进行重点调整以进行视觉引导,而后在PC和手机上进行了简历可读性测试。从而得到了100%的简历经过率。@卢松松博客

此外,优先走内部推荐,这样最有效率,因此结识各个公司的朋友是很是有必要的。

海投简历既不必也没效率,有这个时间不如改改简从来的实在。

相关书目:

1,给你们看的设计书,让你的简历看起来不像一坨翔。

2,Google Resume,如何写出靠谱的简历,进行靠谱的求职。

5,笔试

如以前所说,IT公司的笔试相对单纯(程序设计、算法和操做系统),并且范围较窄,有很多题目被出了一遍又一遍。所以市面上存在大量面试/笔试宝典之类的书籍和题集。

准备国内的小公司,这些面试/笔试题集还靠的住,由于小公司每每不会在招人环节上下太大的成本,所以他们的试卷通常就是东拼西凑的网上题目;对于大型公司来讲,这些题库或是宝典就显的不够用了,尤为是外企。

所 以不要把但愿放在运气或是临阵磨枪上。就我本身而言,笔试准备了一个多月,尽管这个时间并不算多,但因为本身平时一直在阅读CS的基础书籍,并作了大量的 纸上代码练习,所以笔试经过率也达到了100%(其实是因为我笔试的公司题目都略简单,听说EMC和网易游戏的笔试难度很高,但当时因为时间冲突没有去 成,所以搞出了这个数据)。

多说无益,这里拿搜狗、腾讯、微软和雅虎这四家公司的笔试试卷为例,简单的介绍下IT公司的笔试题型和题目组成。

搜狗:

题型由十余道不定项选择题和三道算法题目组成,要求在两个小时完成。选择题难度通常,比较杂,也有一些原题;三道算法题目有点意思,至少网上是很难找到,须要必定的算法设计能力(主要是动态规划)才能给出解决。

搜 狗的笔试试题按职位分的很细,从C++开发工程师到iOS开发工程师再到数据挖掘研究工程师十余个职位,每一个职位的题目都有一套独立的试卷。可是研发的算 法题是同样的,最后一道算法题颇有意思,我花了一个多小时才想到利用组合数学里面的知识(多元一次方程非负解)给出设计方案,后来和面试官聊这道题时他们 也挺吃惊,由于个人方案比他们的答案还要优化。

腾讯:

题型由二十道单项选择题、六道填空 题和两道算法题组成,其中两道算法题是二选一。难度比较简单,题型很广,既有程序设计语言的细节也有几率统计的基本知识,甚至还有C语言的创始人是谁这样 的搞笑问题,从选择题上能看得出腾讯在笔试题上仍是下了点功夫的,但算法题就太简单了点,至少我认为考不出什么区分度。

腾讯的笔试试题也是按职位划分的,但就没有搜狗那么细了,研发类笔试题目是统一的,要求一个半小时完成,印象里本身四十分钟就搞定收工,不少人都提早交了试卷,由于确实很简单。

微软:

题型只有二十道不定项选择题,难度较难,要求在一小时四十分钟完成。难度较难,覆盖面很是广,从设计模式,算法分析,代码阅读到C++语言特性,甚至连冷门的函数式程序设计语言都有涉及。

微 软的笔试题目BT之处在于其独特的积分机制:答对了加分,不答无分,答错了倒扣。这就使得不少ds答完试卷感受自我良好但实际已经被倒扣出翔。以最后一道 题为例,答对了加7分,答错倒扣13分,至关于一会儿损失20分。因此微软的笔试题会作就得作对,不会作就别蒙,要不更惨。

此外,微软的笔试题是英文的,加上时间比较短,有些人题都读不完,有些ds连functional language是什么都不知道,天然败的很惨。

雅虎:

题 型由十余道单项选择题,一道设计题目和六道算法题目组成,其中六道算法题目是六选二,要求在两个小时完成。难度尚可,主要考察编程能力和算法设计能力。由 于时间充裕,尽管是六选二,为了炫技,我直接答了里面的五道题目。然而面试时发现面试官判卷子时并无把多答的题目考虑在内,囧tz。@卢松松博客

相对于微软,雅虎的题目覆盖面就窄了许多,没有一道题目跳出程序设计、算法和操做系统这个圈的,只要勤加准备,很容易经过。

雅 虎的笔试题也是英文,所以英语做答较为合适,此外,因为算法题目简单,给出optimal solution是必须的,好比说在logN的时间内算fibonacci number是必备的知识,能写binary search就不要写sequential search等等。

从笔试题能够明显看出,国外的大型IT公司(好比雅虎,微软和谷歌等)并不 在乎你如今的skill set,而更看重你的potential,所以题目大多很基础,并具有至关的深度,以确保你对CS有深入的理解并可以走的很远;而国内的IT公司(好比百 度、搜狗和人人等)更看重你如今的skill set,所以会出现很多语言特性,OS操做之类的具体题目,以确保你可以以尽快的速度上手干活,至于能发展到啥程度他们就不care了。

所以,准备笔试题的时候要肯定本身的目标公司:主攻国内公司的话,C++的语言特性、linux基本命令操做这些细节也得准备,由于会有大量此类题目;主攻国外公司的话,良好的英文阅读能力必不可少,此外优秀的代码理解和代码编写能力也不可或缺。

此外,不要在笔试题目里犯低级错误,不要抄袭(面试时常常会问到笔试题),保持书写的工整(尤为是代码题目和问答题目)。

考虑到几乎全部的公司都有编程题目,也就是在纸上写代码,这里推荐几本相关书籍:

1,Elements of programming style 2nd,写出良好风格的代码。纸上代码通常不长,但短短几行代码每每能够看出这我的的水准,风格不好的代码每每会被pass掉。

2,Algorithm design manual 2nd,做为非ACM出身的码农,这本书比算导实用不少,课后题也很实在,对回溯,动态规划这些编程技巧讲的很是清楚。

3,C interfaces and implementation,不管是面试仍是笔试,通常都会用C写程序,这本书包含大量的工业级C代码,绝佳的参考和模仿素材。

最 后推荐下Elements of programming和Structure and interpretation of computer programs,这两本书难度很搞,须要大量的时间阅读,不适合临场阅读准备,但读事后,写出的代码绝逼会上两个层次,这里我就很少介绍了。

6,面试

之 前有人PM我关于海投简历的问题。我我的不建议海投简历。由于对能力弱的人来讲,海投简历只会让他信心更差,没有任何效果,有投简历的时间还不如精心准备 少数几个好公司;而对能力强的人来讲,海投简历以后会有大量的笔试和面试,笔试很耗体力,面试更很耗体力,不但须要打车或坐地铁在各个公司间穿梭,并且需 要在面试时保持精神的高度集中,通常面下来都会精疲力尽,致使接下来的发挥很差。因此仍是以前所说,优先内部推荐,而后再根据本身的状况和职业发展路线选 择公司,选择职位,不用选太多,集中精力攻破领域内的TOP3便可。就我本身而言,求职期间,我一共投了12封简历,参加了12家公司的面试,一共面了 35轮。说多很少,说少很多,由于本身投简历时也是本着互联网公司为主,小公司和企事业单位压根没有投,精准投放的好处在于能够集中精力准备同一类型的公 司,从而达到不错的效果。

关于简历海投的问题就说到这里,接下来说讲IT公司的面试。须要注意的是我这里聊的都是应届生面试,社会招聘面试可能会有所区别,但总体流程不会有太大差别。

尽管笔试题会有所差异,但IT公司面试的流程大同小异:标准的技术面试通常有45分钟到60分钟,大约分为三个阶段:

1,自我介绍(5~10分钟):

这 个环节的主要目的在于创建面试官和求职者之间的沟通,面试官已经扫过你的简历,但须要对你有进一步的了解,以便创建一个初步印象,并便于进行接下来的技术 提问,因此这个环节最多见的问题无外乎“进行一下自我介绍”,有时会加上3分钟或是5分钟的时限,有时会询问“说说你最得意的项目/做品”之类的变体问 题。@卢松松博客

因为这个环节相对固定,所以准备起来相对容易,但即使如此,面试初期时我在自我介绍环节也犯过很多错误。这里以个人经历简单的总结下这个环节的要点:

1,言简意赅,突出亮点

面 试初期时,我犯的一个很大的问题就是自我介绍废话太多,诸如“出生自xx省xx市”,“自我评价xxx”之类的屁话连篇。要知道技术面试不是相亲,这里的 自我介绍不是相亲里面的查户口本,而是要了解你这我的靠不靠谱,牛逼不牛逼。如何在3分钟内让别人以为你牛逼呢?很简单,说且仅说你最牛逼的事迹,让对方 留下深入印象。就技术面试而言,牛逼的事迹包含三方面:作过的项目,读过的书,认识的人。

若是实在想不出来有啥牛逼事迹,那就比较难办。说实话,换作你是面试官,招一个履历毫无亮点的人进来有何用?

2,紧贴简历

面 试官了解你的另一个途径就是简历,然而短短一两页的简历很难说明白你简历项目中的亮点和难点。就算你不说起,面试官也会在简历中挑他感兴趣的点进行提 问,所以自我介绍的内容应该是简历的补充。这样既能留给面试官不错的印象,也能有效节省时间,留出更多的时间进行技术提问环节和问答环节。

此外,千万不要搞出自相矛盾,好比说简历讲的作了A你在自我介绍中又说是B,这就不是拙计的问题了。

3,了解公司需求

不 要试图用一套自我介绍来搞定全部公司,除非你的简历只有一句话("Exhausted graphic programming"或是"I wrote python"等)。不一样的公司有不一样的需求,在Google面前大谈.net技术显然不是什么好的选择(我在google一面中就作过这种挫事)。面试 以前要进行详细的调研,了解公司和职位的需求,而后根据他们的需求定制本身的自我介绍和简历,效果会更好。

2,技术提问(35~45分钟):

经过自我介绍环节,面试官会对你有一个大概的评估,接下来会经过一系列深刻的问题考察你的项目经历和技术能力。因此自我介绍环节不要吹牛逼,技术面试是很实在的东西,你有几斤几两问几下就出来,根本忽悠不过去。

按照MS的分类,技术面试问题分为三类:

1,Behavior questions:此类问题针对面试者的过往经历,一方面考察面试者的表达能力和实际经验,一方面也能够排除掉一堆在简历上吹牛逼的真ds:

“说说你最牛逼的项目?”

2,Hypothetical questions:此类问题会假设出一些场景,让面试者进行做答,主要考察面试者的应变能力和实际经验:

“给你三天,你会如何把xx项目作得很牛逼?”

3,Probing questions:若是前两类问题答的不错,面试官每每会追加一些问题,以探测面试者可以走多远,此类问题的出现也是一个标志,面试官对你以前的表现感受还不错:

“你会如何改进你作过的最牛逼的项目?”

就具体技术问题而言,考察题目视你的应聘职位和你的过往经历而定,开发岗会侧重代码编写和系统设计,测试岗会更注重测试用例的编写等细节,产品岗要对线框图,交互设计有了解。不过算法设计和代码编写这两块是确定有的,毕竟这是程序员的看家功夫,这个搞不定就没有而后了。

算 法设计这块我就很少说了,不搞ACM的码农没啥发言权。代码编写的话这里多说两句:和平时的开发不一样,面试时的代码每每是在纸上搞的,而非 IDE。不少代码写的还不错的选手每每会在纸上代码这个环节被虐的翔尿齐飞,限于篇幅缘由我就很少介绍纸上代码的技巧了,仍是那句话,多练习。我本身把 Software Tools、Elements of programming和C interface and implementation中的代码在纸上写过几遍,又把常见的面试题目练习了三遍,所以纸上代码环节历来没出过问题。

3,问答环节(5~10分钟):

若是前两个环节进展顺利,就会进入最后的问答环节。这个环节面试官通常会让面试者提几个感兴趣的问题,以增进相互的了解。

相对于前两个环节,这个环节会轻松不少。不过依然要注意,关于面试表现的问题最好别问,由于问也问不出来什么,至于待遇,那是HR的事情,技术面试官也无能为力。

最后根据本身的面试经历说说几个细节的问题

态度:记住你是去求职,证实本身的能力达到职位需求是你的首要任务。没有必要和面试官抬杠,把面试官搞不爽对你一点好处都没有。我在面试搜狗时就出过这问题(直接表示对面试官的问题的不屑),直接一面被砍掉。

着装:尽管IT公司大多不须要西装革履,但也别太拖沓,穿整齐些,至少给人很精神的感受。我面试腾讯时直接搞了一件套头衫+迷彩裤+机车帽,结果是面试官从头至尾就没正眼看过我,直接一面被砍掉。

交流:面试是一个交流的过程,不明白的必定要主动询问,面试的大忌就是面试官给了一个问题,你一声不吭的搞了一个小时,最后发现搞的不是面试官问的问题,这时就算你很牛逼,面试结果每每也是悲剧。

7,国企

国内的IT公司一共去了6家,拿到6个offer,面试19场。

百度(2轮面试+1轮终面)

百度的应届生面试分为3轮,2轮技术面和1轮终面,3轮面试连在一块儿进行,若是搞到第1轮或第2轮就叫你回去,基本上不是悲剧就是备胎。若是进了终面,只要不出岔子,通常问题不大,由于百度每一年招的人很是多,印象里有1500人之多。

可 能是招的人特别多从而致使面试官人数不够,百度的面试在全部大公司里面几乎是最随意的,面试官每每都没有通过系统的面试培训,出的题目也只是从网上东拼西 凑,好比像C++的虚函数的实现机制此类SB题目层出不穷。并且有些面试官缺少对面试者最基本的尊重,我有几个同窗在百度面试时差点被面哭。

就 我我的而言,我前后参加了百度的实习生面试和正式员工面试。正式员工面试给我感受至关不错,流程很规范,面试官很nice,问的问题也说的过去;然而实习 生面试那两我的就是翔,不但问的问题很二,并且不给我任何交流的空间,同时在面试过程当中表现出一副很是不屑的神情,使人极度不爽。

此外,百度的员工(包括面试官)给我一种工做过分的感受,说惊悚些就是印堂发黑。结合艳红哥提到的狼性精神,我这号酱油男说啥也不敢去。

搜狗(2轮面试)

搜狗的应届生面试分为4轮,2轮技术+1轮HR+一轮Manager,4轮面试是分开的,因此会比较麻烦,毕竟来回跑来跑去的很费时费力。

个人搜狗面试经历比较诙谐,尽管面了2轮,但2轮都是一面,第一个一面是朋友帮忙推荐过去的面试,第二个一面是参加搜狗笔试得到的面试机会,从这里多少能看出搜狗招人是有点混乱的。

第 一个一面很是囧,当时面试官问我C++,我表示不多用,接下来问了若干智力题,因为被问的有些拙计,因而反问“这种智力题有什么考察度,会作的人一会儿作 出来,不会作的一天也搞不定”。估计这句话把面试官搞毛了,接下来的气氛变的很紧张,后来面试官反问我“那你以为应该怎么招人”,我回答“大家应该学学微 软”。而后就没有而后了,囧tz。

第二个一面感受还成,由于我笔试的题目答得比较出彩。接下来是一个strcpy的纸上代码和一个简单的OS生产者消费者问题,答得还算顺利,惋惜依然没有而后,我怀疑多是没有Hire Count了。

搜狗面试给我一个很大的教训,就是别装逼,求职就是求职,别和面试官抬杠。在接下来的面试中,我收敛了不少。

创新工场(2轮面试+4轮终面)

创新工场自己是一个孵化公司,它的招聘流程是这样的:工场进行笔试和面试初选,而后由工场下面的子公司进行复选,因为子公司众多,所以工场有一个双选会,每一个经过初选的求职者能够选择3家工场的子公司,在这个双选会上开复哥非常鼓吹创业,不过效果彷佛不太理想 :-D

工 场的初选面试有两轮,而后是3个子公司的复选面试。和其它公司不同,工场的面试时间很是短,只有25分钟:一个自我介绍,两个无需写代码的题目。有点拼 人品,由于这么短的时间很难考察全面。复选面试大可能是电面,比较简单,算法题目说下思路就能够。顺便推荐下友盟,感受这些子公司里面这家的发展潜力最大。

腾讯(1轮面试)

腾讯的应届生面试的组成我不太清楚,由于1轮就GG了。

腾讯的面试也让人很火大,面试官直接拿一个laptop在那里给你放ppt,一个slide一个题目,答完下一个slide,结果是我说的口干舌燥 面试官还没说两句话。题目五花八门,从简历到智力题再到为人处事,印象里答了不下七八道题目,累的一逼还没经过,尼玛。@卢松松博客

不过腾讯的面试中见到不少PLMM,目测有不少非技术岗。

人人(2轮面试+2轮终面)

人人的应届生面试通常是2轮面试+1轮终面,因为个人笔试和面试发挥不错,所以又获得了一个加面的机会,拿到了人人special offer,待遇很是给力。

人 人的一面面试官很是nice,我当时迟到了30分钟,因为没吃饭所以直接蹭了几个面包,一边吃一边回答问题一边写代码。因为一面主要考察纸上代码,这个是 个人强项,所以很轻松的经过了。二面相对杂一些,数据结构,算法,设计模式,多线程等都有涉及,不过问的都不深,也比较容易。

终面第一面由自我介绍+读过的书+写一段代码组成,正好刚刚读过Sicence of programming,因而就海侃了一顿程序正确性证实的东西,并用这个证实了下本身的代码的正确性,目测效果还不错。

终面第二面是一个大manager面试,这一轮主要是本身的职业发展路线等其它非技术问题,聊的也比较顺利,而后他直接告诉我我拿到了special offer。

人民搜索(2轮面试+1轮终面)

人民搜索的应届生面试由1轮算法面+1轮设计面+1轮终面组成,每一轮面试都是45分钟,时间控制很严。

和其它公司的面试不一样,人搜的算法面试没有自我介绍环节,直接就是搞算法题目,至少要作两道(难度通常,确定会有一道动态规划),并在纸上写出完整的代码。因为缺少沟通,这轮面试略感生硬,不过仍是比较顺利的经过了。

设计面试多了一些沟通环节,接下来大部分时间会讨论一个系统的设计,你须要给出这个系统的架构,接下来面试官会不断的追问如何改进该系统以应对大用户量大数据量等极端状况。我这方面的知识很少,只会很土鳖的hash+cache,磕磕绊绊的把这轮过去了。

终面面试官是一个前google工程师,正巧当时我在google面了好几轮,比较了解google面试的套路,所以很顺利的就经过了。

总之,人民搜索的待遇比较给力,并且能搞定户口,若是想在北京长待并且视户口很重,那么人搜值得一试。

8,外企

国外的IT公司一共去了4家,拿到3个offer,面试16场。

微软(2轮面试+1轮终面)

微软从去年开始大规模扩招,印象里之前应届生招几十人,如今一个STC(互联网工程院)就能招二百余人,所以面试难度也有所降低,面试轮数由之前的5轮左右降低到如今的3轮左右。

这 里多提一句,不少人把微软和MSRA(微软亚洲研究院)划等号,甚至有人认为进了微软就等于进了MSRA,其实微软有不少部门,包括STC、 STB、MOD等部门,MSRA只是其中一个研究性质很浓的部门。不过MSRA要求极高,和其它部门不一样,通常MSRA的FTE只招博士,不多招硕士,招 聘须要进行七轮甚至以上的严格面试,难度丝绝不亚于谷歌。而MSRA的实习生则容易不少,名校学生通常有内部推荐就能够搞定。

我以前在微软 进行过实习,所以直接参加了实习生转正面试,三轮面试分别由SDET,SDE和一名高级部门经理进行面试,面试的流程能够参考我以前提到的常规面试流程。 与国内IT公司不一样,微软不会问语言细节或是OS细节之类的人品问题(就是那种上网搜一下就明白的题目,C++的虚函数实现机制是此类很是典型的人品 题),而会集中在算法设计和程序设计上,其中应届生面试又以纸上代码最为严格,即便到了终面依然会有纸上代码编写环节,尽管不会考察特别复杂的算法,但对 细节要求的很是严格。好在我以前有微软几位SDE的指导,纸上代码功夫仍是不错的,而且实习期间得到了不错的review,所以比较顺利的经过了微软实习 转正面试。

微策略(2轮面试)

微策略是一家进入中国没多久的外企,规模不大,工做内容主要是大数据分析+数据可视化,面试通常由四轮到六轮面试组成。我比较悲催的直接挂在第二轮面试。

微策略是我面试的外企中惟一全程使用英语面试的公司,面试官给人的感受是很smart,但不nice,具体缘由我后面说。

第 一轮面试主要问了些面向对象相关的内容,接下来是一些智力题目,我有一道题目(高楼扔鸡蛋)没有说清楚,尽管答案是正确的,但个人推导思路比较繁琐,所以 浪费了大量的时间和面试官进行沟通。过后回想下面试官仍是很nice的,主要仍是本身平时想问题浅尝辄止,才会败在这道题上。

第二轮面试就 让我感到不爽了,我在自我介绍时直接被面试官打断,以致于本身的亮点经历说都说不出来,并且在后续的编程环节中,面试官拒绝和我进行交流,我写完了题目他 又说这个和他要求的不太同样,当时我内心就开始暗骂wtf了。估计是前一轮被评为weak hire以致于这一轮的面试就是走走形式吧。

雅虎(3轮面试+1轮终面)

雅虎的面试分为3轮技术面和1轮终面,在同一天完成。尽管雅虎公司一直给我一种风雨飘摇的感受(常常有传言雅虎可能会被收购),但雅虎公司的员工给我感受都很nice且很smart,并且比微软的员工要有活力许多。

三 轮技术面试有两轮是典型的技术面,自我介绍+技术提问,因为我在简历上提到“阅读了120本以上的计算机经典书籍”,所以被问到了“看过最经典的计算机 书”这样的问题,我拿Brian Kernighan和Rob Pike的The practice of programming吹了一阵,算法题目相对微软要难一些,除了动态规划,也涉及到了后缀数组等不太常见的数据结构,还好以前有所准备,因此回答的还不 错。

终面的面试官是一名移动部门的老大,问了一些数据结构设计和职业规划的问题,并用英文进行了一小段交流,因为这些问题准备的很充分,所以跟他聊的比较high,终面也很顺利的经过了。

Google(7轮面试)

Google 的面试轮数不定,若是表现良好,4轮面试就能够拿到offer,但若是有某轮面试表现通常,可能会进行加面来进行确认面试者是否合格,拿我本身来讲,进行 了7轮面试(听说有进行到10轮以上的,不过没法确承认信性)。Google是典型的工程师文化工程师面试,没有终面这个说法,每一个面试官都有一票否决 权,加上每一个面试官考察的点都不同,所以Google面试是我经历过的难度最高的面试。

其实Google的面试我原本没抱多大但愿,由于Google一直给我可望不可及的感受,所以面试时也很放松,这种“自暴自弃”的心态反而让我发挥的不错,一步一步走到最后,并拿到offer。

Google 的面试每一轮大约45分钟,时间卡的比较严格。面试题目确定会包含算法和程序设计(通常体现为纸上代码),同时包含其它各类各样的问题,我经历了策略题 (设计一种策略从而在某个游戏中达到优胜)、数据结构设计、系统设计、白盒/黑盒测试、项目介绍等五花八门的题目,题目的类型视面试官的类型而定:学术型 的面试官(好比说名校PHD)问的题目偏重算法,工程型的面试官(大可能是社招的Googler)问的题目偏重项目经历。面试题目并不像网上传说的那么困 难,可是面试官会抛出不少Probing question,让你给出一个optimal solution,这着实让我拙计了几回,不过即使一时间想不到最优解也没关系,一边保持和面试官的交流一边试探各类可能的思路,这里再次推荐下 Polya的How to solve it。

9,总结

笔试难度:微策略>人搜>人人>雅虎>搜狗>创新工场>腾讯

面试难度:Google>雅虎>人搜>微策略>微软>人人>百度>腾讯=搜狗=创新工场

待遇:Google>人人>人搜>雅虎>微软>百度>创新工场旗下子公司

绝不犹豫的选择了Google,尽管我本身是.Net流,每天折腾VS和C#,linux和unix啥的都没碰过,但就前景来看,不得不认可Google比微软强太多了。

老实说我本身进Google感受像作梦,毕竟不是搞ACM的,大学成绩通常,什么奖学金都没拿过。

但 回想一下,这也不全是靠运气:从07年(那时我大三,一行代码没写过)挂科开始,决心开始搞计算机这行,编写本身的第一行靠谱代码,独立完成第一个编程做 业,阅读书籍,不懂的就来D版询问各路大神(这里谢过FloridDong,UGLee等大神),而后一边实习一边读书学习,花了半年考研考到帝都,在考 研结束的那段时间(四个月假期)精读了数据结构,计算机组成等基础经典书籍,补习本身的基础。到帝都以后,在一场即兴技术口译以后,得到去微软实习的机 会,而后在实习中学习编译器知识,创做了本身的编程语言和编译器,加入朋友的创业团队并合做完成了AppStore TOP1的应用,离开团队独立搞定Windows Phone 7上最火的拨号应用、阅读应用和AV应用并在移动互联网中赚到本身的第一桶金,通宵一周完成毕业小论文发表并推荐到核心期刊,为了求职写了三本纸上代码, 阅读the Science of programming学会如何证实本身代码的正确性,100%的简历经过率+100%的笔试经过率,最后进入Google。