【转】一个程序员的面试经验之谈

腾讯、百度、阿里面试经验—(1)腾讯面经 【转自】http://www.cnblogs.com/zy1987/p/3604958.htmlhtml

       本人IT屌丝一枚,毕业4年,5年经验(大四在腾讯实习一年,实习生工资,工做内容同正式员工同样)。很是幸运,前后收到过腾讯、百度和阿里的offer,在这里跟你们分享下经验,同诸君共勉。
   本人职业生涯的起点开始于腾讯,能入职腾讯其实很是偶然。09年腾讯校招的时候,在本人的学校(学校是2本就不说名字了)开宣讲会,学院不少同窗都去 了,由于当时对腾讯兴趣不大因此没去,当时但愿去中软金蝶这样的传统软件公司。一个宿舍的兄弟要去参加腾讯校招的笔试,我做为亲友团陪他一块儿去。腾讯的 hr很nice给了我一张笔试题和意愿表让我填。原本我想从学校北门直接坐车回家,既然来了反正也没什么事就写了,算是为之后找工做热身。笔试内容主要是 编程基础和排序查找算法之类的题,还有用程序实现递归这样的,具体的忘记了。
  笔试题感受很简单,附加题也答上了(本人专业课学霸、其余科学渣)。答完也没检查就坐车回家了,吃饭的时候收到腾讯叫我次日去一面的短信,恰好我爸爸妈妈在南山的同窗去我家作客,就乘阿姨的顺风车回学校准备次日的面试。
   腾讯一面的面试官很是的nice也是我后来的组长,很是有人格魅力的一我的,我去的时候还特地给我倒了一杯水。主要问我了解的技术,我就介绍了下在大学 期间作的C++、.Net和J2EE项目,规则引擎、财务系统、学业预警系统、爬虫引擎这些。由于彻底没准备因此回忆起来有点吃力,还好面试官没有刁难, 发挥还能够。问了Java的内存机制,会不会致使内存泄漏,这个答的不太好;问了下hibernate的机制和做用都回答上了,让写了下爬虫程序的核心代 码和正则表达式。
  一面整整面了30分钟感受有戏,就回去好好准备2面的内容,把当年工程代码翻出来复习以避免再出现 忘记的尴尬。很快次日就通知去进行技术二面。技术二面就是传说中的压力面,被好一顿虐待。项目中的问题一个没问,问的全是操做系统、数据结构的问题。还 好专业都是A+,大多数题都回答上了。问了下我树转二叉树,这个小意思。还问了Java内存机制和是否会有内存泄漏什么状况下会泄漏,good这个在一面 回去以后就看了,回答的完美。最后一题是问的查找QQ号。小case,写了个二分查找;他说你认为我会满意吗,我想了想又写了一个哈希查找,他说仍是不满 意。这个时候我已经有点小不爽了,就说不知道。在有点尴尬的气氛中结束了面试。当时以为没戏了,有点失落。回家看了下算法导论,原来有一个极为高效的算法 是二叉查找,唉,人家已经提示了,可是还没想到,有点小遗憾。
  过了一周收到腾讯的hr面试邀请的时候,说实话很是 的意外。据说咱们学校本科生全军覆没,就我一个过了2面,研究生只有3个过了2面。hr面没问什么特别的,此处不表。一周后收到腾讯的正式offer,还 是有点小激动的。薪水方面超过了个人预期,但最主要的是一面的面试官看起来很厉害的样子,感受腾讯也是一家很厉害的公司。
   在腾讯干了四年,正式三年,实习一年。后来开始负责招聘,咱们部门在选择求职者的时候主要看聪明程度、视野、大局观、气场等软实力。当时我负责面了一个 孩子,各方面挺不错的,组长以为也还行,可是被总监毙掉了,缘由是太软不够霸气。还有一个哥们技术和基础感受都还行,可是被组长毙掉了,缘由是视野和聪明 度不够。
  因此准备面试腾讯的同窗,建议多留意近期的互联网的最新动态,多练练表达。若是能在面试中批判一下近期腾 讯的决策失误和产品缺陷,不管对错都会认为这个孩子不错,那么必定会加分的;可是也不能过了,彻底说的不对还侃侃而谈会让人以为你这我的很浮夸也是会被毙 掉的。尺度的拿捏很重要。还有一点,语速快并且语气坚定目光坚毅自信的比语速慢表达不流畅的同窗成功概率高。我面过一个哥们,后来他顶替了我领域负责人的 位置,这是后话。他在面试的时候就很是的自信,若是问一些“弱智”问题会被他反讽,当时你们就以为这我的很厉害,面试也很顺利,1天连续面了5面,当天就 发了offer。腾讯社招是电话面、技术一面、组长面、平台总监面、部门经理面、hr面。总共6面,面谈是5面。前端

  面试的时候首先要自信,若是能作到不卑不亢其实就已经成功了一半。我感受大多数程序员都不太自信,给人感受有点文弱,若是你本身都对本身不自 信,怎么能奢求公司对你自信呢。可是也不能太自信,自信心爆棚就是自大,面过一个2年开发经验的问他技术都不知道,就谈项目。问他项目中作了什么就谈项目 是什么。在我这就被毙掉了还问大家能不能开到30w,我只能让他回家等消息了。
  要上班了,百度、阿里和其余公司的面经,晚上再发。android

腾讯、百度、阿里面试经验—(2)百度面经  http://www.cnblogs.com/zy1987/p/3605312.html

接上篇,刚加入腾讯的日子仍是很happy的,第一个项目就是独立开发一个抽奖营销项目,以后跟一个技术很厉害又有想法的前端牛人一块儿负责比较重要 的项目,固然是他带我(当时的目标就是超越他,惋惜到如今还没实现。大牛当年教育我说,新人刚参加工做这几年回家以后不要玩,要多学习这样才能成长的快, 当时我还不觉得然;如今想一想真是金玉良言啊)。 在10年末的时候获得了一个机会去负责全新的领域iOS开发和 Android开发,由于我我的对前端技术(JavaScript等)不怎么感冒,仍是比较喜欢作编译型语言的开发工做。当时组里的几个大牛对终端兴趣不 大,老板就把这个光荣而又艰巨的任务交给了我。c++

  通过11年一年的艰苦奋战,本人和另外一个一块儿入职的兄弟从无到有分别开发了iOS和Android两个应用(iOS是咱们一块儿开发 的,android是我本身开发的)。虽然如今看来当时的成果不算什么,但当时是在没有什么资料和经验的状况下摸索出来的,仍是至关的不易。惋惜当时的领 导以为咱们作的并很差,一年下来才弄出这么个小东西,这是他的原话。年末的时候基本上一天被领导当着全组的面骂一次,这个领导是新领导,不是当年面试个人 那个领导了。当时也是年轻不敢顶撞领导,可是不爽和负面情绪确定是有的。因此开启了离职找工做的程序。程序员

  12年初的时候被猎头推荐去北京的一家公司,后来才知道就是大名鼎鼎的百度。由于自信心爆棚,牛逼哼哼就去了。结果就是兵败莫斯科。被大大的打击了一顿。面试

  百度面试跟腾讯彻底不一样,百度面试很是重视技术、重视应聘者的基本功、算法、数据结构、C++、操做系统、面向对象、软件体系结构、系统设计和 模块划分上的能力,能够说锱铢必较。这些东西在大学的时候本人能够说驾轻就熟,可是面试的时候基本上一问三不知,连我本身都以为很差意思。印象比较深入的 几个题。ObjC基础,这个就不说了,干了1年iOS开发的都会;响应者链是什么和原理,没答上;堆栈;进程调度;查找算法、排序算法;面向对象设计的原 则;移动应用安全;c++指针运算,如何把一个数存到0x00这个位置。iOS性能调优。画出你的项目的模块图。不少都没答上来,面试官很nice说可能 是太长时间没用了忘记了,机制没回答上来就问我你不知道机制不要紧你能够提出本身的见解,猜他是怎么实现的,答对了同样有分。算是帮我挽回了点面子。正则表达式

  此次面试失败对个人打击很是大,由于面试的内容并不难。想了一宿,其实加入腾讯只职业生涯的一个起点而已,并不表明你比别人优秀多少,不少比你 更优秀的人没进来可能只是运气没你好而已。职业生涯跟长跑差很少,一开始你比别人领先一点,只要稍微放松,立刻就会有比你更努力的人追上并超过你,不一样的 是,长跑更容易发现本身已经落后了,而职场上等你发现的时候可能已经晚了。程序员跟赛车手差很少,不是说你天天开车你的驾驶技术就能成为职业赛车手,而是 必须通过专业的训练,有针对性的训练;同理不是你写了几万行代码你就是个技术专家,必须通过刻苦的学习才行。算法

  本人的缺点是容易忘乎所以,优势是越挫越勇。通过此次打击,天天最少用4个小时的时间学习iOS各类机制、数据结构、重拾C++。疯狂写代码, 每个月5000行编码量,用了1个月时间重构了2w行代码。到了七、8月份的时候感受功夫已经到位了,就决定再找公司练练手,检验下这个阶段的学习成果。编程

  此次猎头又给我推荐到了百度,去的是深圳百度分公司。感受到百度好像很缺人,由于周一提交的简历周三就让我去面试了,百度筛选简历出了名的慢。 一面仍是上回那些,难度加了些问了写内存管理、线程调优的内存。小case,早就在我掌控之中。问了些Core Data、数据存储的内存,问了下闭包block和block在内存中位置,同函数指针的区别。一面进行了一个多小时。完过后让我等一下,看起来这把有 戏。json

  二面仍是技术面,难度感受比一面没高多少,由于考察的都是面向对象、设计模式上的内容,呵呵,这个对我来讲太简单了,本人最大的爱好就是研究各类设计模式和软件体系结构。问了下个人项目中的体系结构,问了下MVC的优劣,若是设计松耦合的模块,组件化模块化的之类的。

  三面主要是精神层次的, 问下将来的职业规划,iOS和Android的差别性。你为何不继续作前端转作iOS,如何看待iOS的生态系统。问为何想跳槽,我回答说想专一 iOS,如今腾讯让我又搞iOS又搞Android,又搞联调有点杂。最后问有没有什么要问他的。其实本人当时根本没有过档的打算因此说没有。接着hr 面,这个时候已经很晚了,云了三个多小时,也不给一口水,有点小不爽。Hr面带着情绪面的,看在妹子挺可爱的份上控制了本身的坏脾气,hr可能也感受到了 个人抵触情绪,草草收场让回去等消息了。

  四轮面试都要自我介绍,说的我都有点恶心了,感受像失足介绍本身来自哪,等客人挑选。人格魅力感受都不如腾讯的组长。

  过了三天接到电话,问我这边的意愿,工资又远远高于的预期(本人就是这么鼠目寸光,老婆骂了我好屡次)。当时身上有个很重要的公司级的项目,又以为对不起腾讯的知遇之恩(由于这个老婆埋怨了我不少次),就拒绝了。

  可是对本身开发能力的训练机制算是稳定了下来,仍是有收获的,基本上天天都自学到10点11点。后来易迅(易迅被腾讯收购其实就是腾讯的一个部门)的总监让我过去作iOS易迅客户端,承诺说办手续最多3个月。虽然机会很诱人,可是为了报恩也好,责任感也好依然拒绝了。

      其实公司和我的之间本质上讲就是商业关系没什么恩义,公司培养一我的也不是为了这我的的发展仍是为了本身。business just business,跟感情混为一谈吃亏的仍是本身。放弃了这两个机会以后,半年后本人经历了职业生涯中到目前为止最大的危机。若是人有预知能力就不会有那 么多苦恼了。

  整体上感受百度的面试要比腾讯容易些,由于腾讯注重的是软实力,也就是说天赋,知识、技能、经验均可之后天培养,可是天赋是天生的无法后天锻 炼,只能经过努力拉近差距无法逾越。不过2011年后腾讯大扩张(不到一年狂招1w多人),招聘的门槛也没有那么高了。而百度更注重计算机技术和科学,这 些东西经过努力均可以得到。

        郑重声明:本人只是参加过以上几家公司一两个部门的面试,一个公司不一样部门的面试风格是不同的,每位面试官的风格也是不一样的,因此本人的观点是很是片面的。彻底是我的的感悟和心路历程,不承担任何法律责任。

腾讯、百度、阿里面试经验—(3)阿里面经 http://www.cnblogs.com/zy1987/p/3607255.html

接上篇,2012年能够说至关的辛苦常常有加班到11点、凌晨的状况,基本上是9点以后才能下班。为了这个重要的项目你们都很努力,终端领域也终于向好的方向发展,直到年末。

  年末发生了一件不愉快的事情,内容就不说了跟主题无关。本人又开始了找工做之旅。

  一、第一次进军阿里

  当时据说阿里在无线发力,taobao和tianmao都在招人,两个部门都对我发出了邀请,可是集团规定只能面其中一家,本人就选的 tianmao。一面是组长面,电话面的,问了下项目,问了网络通信协议,为何用json不用xml,pb协议的好处和坏处。由于本人负责的是很是敏感 的业务,对安全有很高的要求,因此还问了些关于安全策略设计和构造。这个是本人的强项,由于当时在终端安全方面吃了大亏,通过好几个不眠之夜以后设计的三 层换票加密算法,除非有内鬼,不然即便反编译了咱们的代码也没法解析咱们的加密协议。感受不错,就让我保持手机畅通准备技术面。

  技术面应该是一个组员面的,问的全是基础的问题。iOS runtime、多线程几种实现方式、若是进行网络通信、对于block的见解,基本上都回答上了。最后问了下我对iOS6的新特性的认识,这个回答的不 太好。由于本人当时忙一个大项目,基本天天搞到11点多,没怎么充电。面试完了查了下iOS6的新特性,也没什么特别的,有点遗憾。

  过了2天,那边来电话让我去一个酒店进行终面,他们的老大来深圳出差顺手面我一下。面试整整持续了一个小时。问了我对微信的见解,问咱们有没有 跟微信合做。若是缩减安装包体积,这个问题我当时以为本身回答的不错。一年后回想起来,其实回答的不好,缩减安装包的体积要从资源文件上下手,尽量用 Core Graphics自绘代替资源图片。若是是用户可能用不到的功能,那么应该只把代码合成进去而资源文件应该在用户第一次使用的时候从服务器下载并缓存在本 地。裁剪第三方开源库的代码等等。面试进行了一个小时,面试官客气的把我送出房间。

  过了一段时间没消息,让猎头帮忙问下状况,回复是工做年限过短,没戏了。仍是被小小的打击了一下。若是面试管表现的特别客气那么你就要当心了,极可能被毙了。

  二、广州之旅

  面试阿里失败以后去了广州一家互联网公司,就不说公司名字了,由于对这家公司的怨念到如今本人还不能释怀。不过这家公司好处是比较悠闲,因此本 人又开始了疯狂学习计划。老婆在深圳,我一我的在广州反而能够腾出时间充电,公司管饭又省去了觅食的麻烦。天天学到12点,常常看书到凌晨2点。除了 iOS开发外,还复习了C++ Primer红宝书,这本书很是经典,强烈推荐。这家公司延了本人一个月的试用期,hr还让我去签字确认,我说如今是午休时间我不去,他说很快的,反正我 就不去她也没办法,延期我试用期的次日我向领导提出了辞职。领导居然敢说他很意外,挽留了我一下,可是我对这里毫无好感,再三请求之下脱了1个月终于离 职成功。

  三、回到深圳

  回到深圳后就进了我如今这家公司,老板是个技术很厉害的人,对本人也很是欣赏,负责了几个重要模块的设计和开发工做。一个是即时通信类的模块、一个是视频加工编解码的模块,就是凭着这两个模块的设计开发经验本人跟阿里又一次产生了交集。

  四、第二次进军阿里

  此次去阿里面试能够说很是很是的偶然和戏剧性,由于本人根本没投简历,以致于阿里hr给我电话的时候我一度认为是诈骗电话。由于深圳这家公司不错我还想在这里干个两年左右再考虑考虑。

  这个时候的本人已经发生了很大的转变,从刚进腾讯的浮躁、自大、害怕面试,已经转变为淡泊、谦虚,而且喜欢上了面试,感受每次面试就像杨过跟大雕过招同样,武功都能精进很多。本着去看看技术面内容的心态去了福田东海大厦。

  一面没有技术面直接就是组长面,首先是自我介绍,以后问了下项目内容。我就说了下即时通信和视频加工两个模块。他让我画出模块的架构图,这个建 议你们准备一下,阿里和百度都有要求应聘者画模块图考察应聘者的开发层次和思路。本人没什么准备,不过当时设计评审时的UML还记着,就把模块图和类图画 了下。面试官又问,有没有遇到困难;我说有,性能瓶颈、卡顿的问题、瞬时信息量过大致使的UI卡死;他就问如何解决的:我说由实时刷新改成定时刷新。他问 还有没有更好的实现方式,我回答有用任务队列。咱们又争论了下任务队列的设计应该用先进先出仍是后进先出。这个时候本人已经彻底忘记是来面试的了,只想争 赢。语速也愈来愈快、声音也愈来愈大。他质疑我这个机制在效率调优上没有意义,由于系统会进行cell缓存;我说在中间的时候系统缓存能够生效,在最底部 的时候就失效了,就会卡顿。最后仍是我争赢了,时间就这么不知不觉中过了一个小时。问通信消息腾讯是如何作的,我说不知道我猜想是这么作的巴拉巴拉。问了 下我滤镜的使用和原理,如何美白,我说修改OpenGL的值就能够了,问如何进行视频合成,这个很简单就是把视频和音频轨道抽出来再用 composition合成就能够了。问了下加水印、也是从文件中把视频轨道layer抽出再把图片layer加在这个layer上就能够了。把开始时间 和持续时间、帧率设置好就ok了。又问了下为何来面试,本人说没想过换档,是大家叫我来面试的。一面官最后问了下,考不考虑杭州,本人很是坚定的说不考 虑。他又说其余城市考虑吗,本人说吉林就考虑。

  一面结束让我去休息以后是二面,二面的面试官很nice。让我作自我介绍以前居然先作了自我介绍。他负责的部门是个很核心的部门。面试的内容跟 一面差很少。让我在白板上画我设计的系统架构图以后就是讲解。问了下个人职业规划,我说现阶段仍是想写代码。他问多久,我说2年吧。他有问你对管理岗位怎 么看,我说一个好的管理首先要能帮助组员解决问题,我如今水平还达不到这个境界,想多写点代码,代码量上去后设计能更合理一些,像这个设计当时有几个优化 点没考虑到,有点遗憾。面试官问我有什么问题以后我就询问了下他们部门的状况和企业文化。面试官好像比较满意,就让我去hr面,还特别强调就是跟hr聊聊 不算面试。

  hr面过程不表,就是问了下杭州房价问题。问我能不能来杭州发展,我说我考虑下,还不知道大家会不会录用。闲扯了半个小时,就打道回府了。3天后收到阿里的offer通知介绍。给的薪水又一次超过了本人的心理预期。

  阿里的面试跟腾讯百度都不一样,感受更注重项目实践一些。总结来讲BAT的技术面都差很少。只要把内功和外功都修炼好了再配合点实战经验基本上均可以应付三大的面试了。

  最后说一下,面试准确讲不该该叫面试应该叫面谈,就是interview。劳资双方坐下来谈谈聊聊,互相了解。咱们程序员做为技术工做者不是去求职的,只是去看看你的机会,你能够保留你的职位,我保留个人作事方法。

相关文章
相关标签/搜索