一刻钟二刻思

=这么多年了,我还一直在努力=

 

奢侈的全聚德

全聚德,北京出名的美食品牌店之一。素问其名,从未品其味。

上周六,约了几位校友聚聚,地点在海淀区五道口。上午打电话预定了干锅居的一个桌位,晚上过去,那个桌位居然在大厅正门口,甚为不爽。于是找了几家店,都人满无座。最后包哥提议去全聚德,打电话问问,全聚德只剩下一个保底消费的包厢,缺少选择的一群人被迫上奢侈的全聚德。

初入全聚德,人满为患,坐在凳子上等座位的人一堆一堆。问了价格,包厢保底消费人均至少200,还需要加上百分之十的服务费。大家都说贵的时候,包哥拍板说他请大家,带头进去了,当时大家还是很心疼的。

进去包厢,倒没感觉比以前去的高级点的酒店奢华多少,古典气派,装潢显得很有历史韵味。有专门配一个服务员,一位苗条的左撇子小妞。因为需要点的菜比较多,宝哥和毛毛点了好久。他们点完后,看了一下菜单,果然价格贵得比较离谱。大部分金额都是外面的二到四倍,还有更贵的。一只烤鸭二百元,一杯西瓜汁28元等等。

凉菜很快上来了,除了一些没有见过的又可以吃的树叶,没有感觉多少特色,整体味道还是挺清淡的。接着陆续上了荤菜,各种鱼啊肉啊鲍鱼啊等等。可惜我这个土包子都不懂得品尝,每道菜一到嘴就下肚子去了。红烧肉做得黑黒的,味道不错。奶油条挺好吃的,不过感觉跟我上次在金百万吃的差不多。那个几百块的很眼熟却叫不出名字的海鱼,没吃出什么好味道,这个不知道是不是跟吴老大经常吃习惯了的原因。那只烤鸭,就被柳大师称为不好吃和吃不习惯。各种分量都好少,但是因为菜数多,还是撑死我了。

大家边吃边聊,聊生活,聊学习,聊工作,聊人生,聊生人。各种话题,每种好像都我最多话。饭局中段,廖委员长还发来问候短信,电话给他什么事情,竟然是给个NP难让大家想想解决方案,大家辛勤献策,可惜都未能帮助上他。

大概解决九点,大家就散伙。包哥刷卡,一局饭好多钱,心痛滴血的钱。同时,也严重刷新了我参加过的饭局的人均单价数量。

饭局上和回来的路上还是向包哥讨教了很多工作相关的事情,他也很慷慨和真切地给我解答及给我提建议。那些解答和建议都对我解决最一二月纠结的问题有很大的帮助,令我感到非常的感激。人一生中到底能遇到几个真正愿意无条件帮助自己的人,这个数字估计每个人都不好说。有的人一辈子也许都没有遇到过,有的人也许就遇到一个,但这个帮助给他的一生带来很大的促进。而我很幸运地遇到了几个愿意提携我的人,给予我各种平台和机会去锻炼,对我的学习、生活和工作都进行很大的指导和鼓励,使我不断地朝正确的方向前进。真的很感激他们。

当天晚上回来的路上,天下起来雨,这是我到北京后碰到的第一场雨。跟大家一起三个人一把伞,冒雨到五道口地铁站,然后又从回龙观地铁站冒雨回到住处。毛毛说,他好久没有碰到这么大的雨了,上次这么大雨是在去年盛夏,晚上下班后冒着雨回家。

晚上十二点,向毛毛要了晚上聚会的照片,他Q上给我说,外面下雪了。我立马跑到窗前,拉开窗帘,透过贴满水珠的迷蒙的玻璃窗,外面的白毛雪片片飘落,堆叠在地上。在昏黄的路灯下,世界依然洁白一片。这是我今年来北京后下的第一场雪。

照片:友谊永恒,互帮互助。

照片:下雪了,来京后的第一场雪。

开火了

时间过得真的好快,到北京有一个月多了,这里生活显得有点单调又不从容。这点从生计的吃上看,就很明显了。之前如果有上班都是在公司食堂吃,没有上班则一般到小区外面的小店吃。一直在南方呆的人,在北方总是有点吃不习惯,味道太重,太咸,太辣等等,令我每次吃饭都很纠结。

今天上午打扫了一下房子的卫生,就计划晚上自己开火煮晚饭,调节一下生活。问了合租的哥们,才知道厨房的厨具只有微波炉还有在使用,其它东西都很久没有使用了,甚是可惜。

下午睡到5点,起来上网搜索一下微波炉煮肉等的方法及注意事项等,就出去小区附近的永辉超市购买食物了。在超市逛了半个小时,买了点瘦肉、盐、水果、牛奶、馒头等就回来了。因为没有下厨经验,简单地把肉切好放到碗里,加了点之前买的枸杞和盐,就放到微波炉里面煮了8分钟。出来发现味道也还不错,就是还不太熟,而且偏咸了,于是,又加了些水再煮了8分钟-___-。

简单的一碗肉汤配着馒头,吃了自己来北京后第一次亲自下厨的晚饭。因为自己配着自己口味做的饭,倒也不觉得比外面的会难吃。如此不定期的下厨,总会给自己的生活增添一些乐趣。

工作后,被分到地图组,主要做地图里面的实时交通路况相关的内容。最近陆陆续续开始接触和做项目,事情多起来了,压力增大了,需要的时间更多了,挑战更大了。在公司,各方面都很自由,自由的好处是自己好安排及把握时间,但自由的挑战是要有更强的自制力和自我约束能力,同时还要有更强的主动意识。如果能够合理安排好时间,主动去想和做一些事情,同时多于人交流,在公司里面还是可以学到非常多非一般公司里能学到的内容的,其中当然包括为人处事、做人做事、专业技术等等。

人看人好,好多人都说我收入高等等,很多说这些话的人都夹杂着各种羡慕嫉妒的心态。我只是想说,在当前一个现实的社会内,除去一些拥有良好的先天资源的人,剩下的人基本上都是收入与付出成正比的,很少人能够坐享其成的。要正反两面看事情,光看到别人的收获而不关注他人的付出时,不仅会自叹生不逢时,还会抱怨各种客观环境,这样的后果是难于复制他人的成功道路,离进步越来越远。

回到生活,第一次做饭,也算开火了。这只是一个开始,北漂的生活还在继续,IT的生涯还在继续,人的生命还在继续。约束好自我,把握好机会,掌控好自己的命运航船。

北京的狗狗便便

自幼农村长大,也总觉得农村中如果养鸡鸭太多,到处都会是鸡鸭的粪便。来北京之后才发现,原来北京的小区的道路上才是真的脏,太多宠物狗宠物猫留下的粪便了。早晨上班紧急的时候,一不小心就有可能踩地雷。这个跟我在五环外有关系,市区就应该好很多。

比起福州的市容,北京五环外的市貌确实不敢恭维。地上、墙上、栏杆上、树上等等到处都是牛皮癣,都是什么“地铁站100的房子500元”,“办证刻章“,”代开发票“等等,倒是很少看见那些”性病淋病治疗“,”乙肝半个月转阴“的广告。这牛皮癣的治理估计也是北京郊区政府头疼的问题了。

北京冷吗?有点点冷,但由于气候干燥,所以没有传说中或者想象中那么冷。一般不刮风,能接受;风刮起来了,就不是南方能比的了,所谓刺骨的寒风,北风吹,北风那个吹那个雪花飘,可惜来北京,都还没有下过雪。

干,来北京第一次生病了,支气管炎,还好不是妻管严。咳嗽要命;畏冷,在公司室内20度的气温都觉得冷;茶饭不思,只吃得下一点点;头晕想睡觉,工作效率异常低;疗效差,医生开的药吃了2天了,怎么不见有明显好转?这样下去不完蛋?

是不是太懒了,刚来这么几天,基本上就是小组里面每天最迟上班的人。公司的上班制度还是很宽松的,每个人都可以自由地支配时间。可惜我都拿来偷懒了。

来北京后,都没有出去逛逛,那些景点啊~还是等买相机再去吧。

在福州的时候,逛永辉超市;来到北京,发现小区最近的大超市还是永辉超市。

房租太贵了,动不动就1500+,还要中介费啊什么乱七八糟东西。房子就更贵了,没几万买不了样平方,故宫附近的10W以上,谁想下手?我当中介。

据说可以办理离校手续了,学校什么时候给我毕业证书呐?想想回福州拿毕业证很可怕,好几打的才狼在等着我请他们吃饭。

新一届奥斯卡颁奖了,显然这个奖项又一次与我和鲁迅擦肩而过,不过对于这种虚名的东西,我向来是不重视的。出去喝杯牛奶吧。

找工作之华为面经

华为面试,是我第一场正式参加的校园招聘会,时间是9月28日。

由于华为今年新建杭州研究所,其他部门也较大程度扩充,所以需要招收大批量的人。华为来福大招聘也是比较早确定的,这应该是来福大招聘的最大的IT类和通信类的企业,也是华为公司第一次来福大开展校园招聘。

也正因为是来福大的最大的IT类公司,9月25日的宣讲会人山人海,图书馆的大报告厅连站的空间都没有,还有不少同学驻留在报告厅外头。

我报的岗位是数据库开发工程师,9月27日接到信息,告知29日去素质拓展中心参加现场面试。

第一轮:一对一面

按照预定时间,提前了半个小时来到面试点素拓。此时早面试的同学已经都完成二轮的面试了,通过咨询他们了解到第一轮是一对一的面试,第二轮是群面,其中在第一轮中有的同学有被问专业技术,有的同学聊的却是不相关的其他内容。

在素拓大厅等候大概半个小时,HR叫我过去面试,面试官是一个帅气小伙。面试从我自我介绍开始,自我介绍结束后,面试官问了几个简历的问题。接着他问我简历上写的项目中哪个是做得比较好的,我说了一个网站的项目。针对这个项目,面试官问我当初是如何设计的,我讲解了一遍项目的WEB三层架构思想。

接着,面试官问C++中的派生是什么意思。这个不难,我描述了一下派生的定义,并举了国家、省份、市这种具有包含关系的例字来详细说明派生的用途。

后面,面试官问我什么数据结构最熟悉,我说了几个。他问树型结构如何和什么是平衡二叉树。我回答了一个平衡二叉树的定义,接着在纸上画了一棵平衡二叉树。正对我画的平衡二叉树,面试官选择删除一个节点,问我如何进行平衡二叉树的平衡调整。当时我没有马上想出来,在纸上大概推了一分钟,才推出正确的调整方法。

最后,面试官让我在纸上写一个求约瑟夫环中最后一个留下来的人的程序,其中环中只有100人。我大概花了不到二分钟用c++写了一个程序,然后给面试官讲解了一遍我的思路和代码。

第一轮面试时间大概是10分钟,结束后不久,HR通知我先去吃饭13:30回来参加二轮的面试。

第二轮:无领导小组的群面

华为的二面是无领导小组的群面,12个人分成二组,给出了影响大学生择业的8个因素,需要小组进行8分钟的讨论,要求达到统一意见,对这8种因素按照其重要程度排序;然后陈述小组讨论结果及理由,每个成员称述一部分;接下来进入自由辩论阶段,两组互相PK,每个人只有2次机会,每次说话时间不超过30秒;下面是每个组选出一个组长,由组长对队员刚才表现进行排序并说明理由;最后,对排序不满意的同学可以发表自己的意见并说明自己应该的排名。

1)小组讨论。在这个环节里,两组的学生都没有表现得很冒尖的那种。我们组刚开始拖延比较多时间,最后几个因素排得有点马虎。我们组有一位同学讲得比较多,还有一位同学刚开始提的建议都被其他组员否决了。经过8分钟,大家达成了统一意见。

2)小组称述自己的结果。这个都比较顺利,每个人都发表一些看法。

3)双方都开始对对方的排序结果进行质疑。他们主要质疑的是,为什么我们把性格因素排在家庭因素前面。在整个辩论过程中,基本也没有特别冒尖的人,倒是我们组有一个从头到尾没有发言,最后被面试官催着说。而我觉得我有点过早用完二次机会。

4)排序。排序前先选组长,我们组小组讨论时说话比较多的那位同学抢先说选我当组长,这时其他人没有意见。我也只好硬着上,有1分钟的时间进行排序。我是将我们组发表意见最少贡献度最小的那位同学放在最后一位,意见被否决最多的那位同学放在倒数第二位,把一个说话比较有说服力的同学排在第一,我自己排第二,话比较多的同学和另外一个同学分列三四位。排序结束后,我对我的排序结果进行阐述并说明了原因。

针对排序结果,我们组员都没有什么意见,表示能接受。对面组却出现了跟组长意见不统一的情况,有个学弟觉得他可以获得更好的排名。

群面结束后,我有点担心自己是组长被刷,从网上面经看,小组长被刷的概率比较大。而此时也陆续听到一些同学在群面中被刷。大概等了半个小时,接到了性格测试的通知,算是松了口气。

第三轮:性格测试

第三轮是上机的性格测试,都是一些无聊的各种选择题,具体就不说了。这个环节只要答题不是前后不统一且不太矛盾,一般不刷人的。

第四轮:一对一HR谈话

HR谈话,基本交流一些简历上的内容,看应聘者的性格和为人处事情况。面试官可能是高级HR,神态非常从容淡定。我们先聊了一些我简历上的内容,再讨论了学习生活等等,接着交流了对华为公司的看法以及校园招聘的情况。

到最后,面试官问我是否有问题问他。这个我之前在网上面经看过,说最好精心准备一二个合理的问题问问会让面试官对你印象更好,给你加分。于是我就问华为走到世界五百强这种地步,除了公司倡导的艰苦奋斗起了很重要的作用外,还有什么关键因素。面试官从容地回答了几个方面,比如公司的决策与尝试等等。整个面试过程都在一个非常平和的气氛中度过。

第五轮:机试

机试是在第二天早上9:10,当我们提前二十分钟到达机试场地时,有的同学已经出来了。他说太简单了,只需要2分钟就可以完成了。

当我看到机试题目时,发现真的很简单的题目,简单到大一同学学完前3章C语言就可以解决的题目。题目是给一个0~100的整数分数A,如果分数A大于90返回’A',如果A大于等于80返回’B',如果A大于等于70返回’C',如果A大于等于60则返回’D',小于60则返回’E'。真的是很简单的题目。

我仔细看了一下考场规则及注意事项,大概用了三分钟左右就完成机试回到实验室。

这可是前无古人后无来者的超级简单的机试题了,当时觉得华为是在忽悠我们。后来从一些985大学同学了解到,他们学校华为的机试题目也是这题,汗。

后话

29日完成所有的招聘流程后,开始了漫长的国庆。

10月9日HR发来邮件告知需要填写一个《华为公司2012校园招聘推荐表》并邮件回复过去。

之后便是漫长的等待,在这等待期间,我完成了百度和腾讯的校园招聘,并选择了与百度签约。

10月27日,也是我从厦门回到福州的第三天,华为公司HR发来信息告知,请于28日到学校就业中心参加签约的座谈会。当时立即回复不会参加了,把签约名额让出来给了班上一个同学。

10月28日晚,与众师兄弟在聚餐,华为HR打来电话问我为什么不参加签约,我将具体原因如实地告知,对方还是非常客气地说好。

以上是我参加华为招聘的全部记录。

感想

从应聘者的角度看,我觉得华为这次校园招聘的要求非常低,甚至低于不少福州本土的小公司。结合最后的录取情况,可以看出华为并不要求应聘者具有很高的专业水平,但希望招聘到比较乖比较听话的员工。同学们在面试过程中被刷大部分是在第一轮和第二轮。第一轮被刷的主要原因是投的岗位与自己的专业背景不相符,比如计算机类投管理类的职位,如果没有表现出管理方面非常强的实力,被刷也在情理之中。但现场刷人最多的还是第二轮无领导小组群面,被刷的同学大部分都是为人比较低调、在言谈方面比较缺乏的那类,这些人在无领导小组中比较吃亏。所以只要不是沟通交流能力太吃亏的同学,基本都通过了全部环节。

从最后签约情况来看,大部分人都是去杭州,而深圳和苏州的人较少。这点也一定程度可以更加确认之前盛传的华为杭州研究所需要招聘众多新军。但是如果真的需要招聘数目量较大的新军,华为杭研所的人力资源结构又是如何的?对于一个充满大量新军的新建立的研究所来说,不论对公司还是新军都是一种较大的挑战和风险。好的方面,新人较多和新建立的结构,比较多晋升的机会,毕竟“乱世出英雄”。然而对于一群刚从学校走出去的应届生,如果缺乏老员工的足够引导,将比较慢去适应公司和社会,这对于员工和公司都有可能是损失。当周围也充斥着一群跟自己一样毫无经验的应届生时,能否第一时间发现问题并找到有效的解决方法将成为关键,这种情况下,专业技能的重要性将降低,敏锐的观察力和敏捷灵活的思维能力将成为立足的关键。

找工作之腾讯面经

面试腾讯,是在签约百度之后。原本想去腾讯而没有计划去百度的,但是因为百度在腾讯之前,而且业内流传“搞技术在百度好,搞产品在腾讯好”,所以先签约百度了。

腾讯在厦门笔试日期为10月22日,当时我仍在厦门,所以就过去酱油了。我投的岗位是软件研发-.NET方向,结果没有收到笔试通知。于是21日决定与一些要好的同学去笔霸。

笔试

笔试时间是10月22日上午10点,时间还是比较晚的,笔试时间一个半小时。由于没有接到笔试通知,于是跟一伙哥们找到软件研发对应的教室参加。

笔试的题目分为三部分:选择题、填空题以及书写程序题,考得都非常基础,一点都不超出本科的教学内容。

主要考的内容是基础数据结构与C++,数据结构方面主要有链表、栈、队列、二叉树、最小堆、排序、优先队列等,C++主要考察类以及一些基本语法。 其中数据结构主要涉及构造、内容和复杂度,C++有构造函数、析构函数等。

其中还有一二道数据库的题目和操作系统的题,都非常基础,比如:mysql数据库是什么类型的(选择:面向对象,关系型)。还有一题是操作系统的页式和段页市内存管理的概念。

填空题是链表节点操作的程序填空,主要涉及节点的添加、删除和更新,如果有认真学过数据结构课程的链表并编写过程序,应该都问题不大。

程序书写题也是一道简单的字符串处理题目,如果有写过一些程序,难度不大。

总的来说,这次笔试题目非常考察人的基础,如果有抓实的基本功,肯定可以考个好成绩。比起百度笔试的多是开放性题目,难度低多了,都是客观题,没有主观题。同时,我觉得腾讯的题目放在笔试上更加合理,更能选拔出优秀人才。

上午考完试后,跟哥们到厦大食堂吃完饭,逛了一遍的芙蓉隧道。本来大家说好去打台球的,后来没有找到台球馆,于是一群人来到了厦大附近的海边,坐在草坪上聊天、打牌。下午4点多,各位都陆续收到了面试的通知,通知明天面试。

一面

10月23日上午9点30分,跟百度一样在希尔福酒店进行面试。

面试我的是一个哥们,三十出头。面试是从我来个自我介绍开始,我按照之前准备的内容吧嗒吧嗒说了一遍。自我介绍完毕后,他先针对我的简历问了几个问题,比如“ACM队长主要做啥啊”等等,主要看看我的简历内容是否诚实吧。由于我简历内容都是确有其事,所以回答起来很轻松。

接着,问了我二个C++的问题,第一个是深拷贝与浅拷贝的概念及区别。由于面试没有准备,当时有点紧张。但是还是回答对了,并举例说明了什么是深拷贝、深拷贝与浅拷贝之间的差别等等。回答得不错,面试官比较满意。

第二个问题是C++构造函数参数初始化有多少种,各有什么区别,什么情况下使用。这个我只知道在构造函数内部初始化及参数列表初始化,但是区别和用途就不知道了。关于这题,面试结束后问QLuo,他说只知道一个差别,就是父类的参数要用参数列表进行初始化。好像有点对,但后面也没有认真深入研究了。

接着面试官让我书写atoi函数,用C语言写,要求编程风格,要注释,要考虑异常情况等。我在白纸上写,大概用了2分钟就写好了,但是有点乱。写完之后,给面试官讲解了一遍,他问了几个特殊情况的,我的程序都可以处理。

后面是本次面试的最后一道题目,排序题。有10^10个长度为10位的QQ号,存储在一台200M内存1.2G硬盘的计算机,现在需要你对QQ号进行排序。我思考了一下,并在纸上进行了运算,发现10^10个Q号所占的存储空间刚好为1G,也就是说只有200M的硬盘空余空间和200M的内存可以使用。大概花了1分多钟时间,我想了一个归并排序的算法,每次归并50M的数据,即可完成所有QQ号的排序。给面试官讲解了一遍后,他提出了几个问题,我都作了详细的回答。

到此,第一轮面试结束,比起百度的面试过程短不少,原本计划30分钟到40分钟的面试,只用了不到25分钟。面试结束后,面试官告诉我先不要回福州,下午或者明天给我二面通知。

面试结束后,去找阿日、Qluo、丁哥等。阿日还没有面,Qluo也面完了,丁哥是第二天面试。在那边碰上几个同学院的本科的学妹,一群人在那边瞎谈了一回,等阿日面试结束后回了厦大吃午饭。

当日晚上,在厦大图书馆修改了毕业论文的参考文献。十点多,接到二面通知,时间是第二天下午3:20。

二面

按着既定的时间,到达酒店。当来到面试房间门口的时候,听见里面有人在面试。于是偷偷在门口听着。里面情况大概是有一个哥们面试表现不好,要被刷了,但心有不服,在和面试官争论,希望面试官给他下一次面试的机会。而面试官说这是最后一轮技术面,如果放他过意味着技术不合适的人可能进入等等。接着哥们又说他也面试不少公司,比如华为、网宿、锐捷等,但是没有想腾讯那样的面试题。面试官说面试题每个公司不同很正常,我问你什么是A*,你又不懂,我问网络也不懂等等。两个人坚持了大概5分钟才结束了面试。

我进去后,面试官先来了个自我介绍,说是游戏部门的技术总监,接着是我按步就班来个自我介绍。接着面试官问了我几个问题,比如为什么本科毕业后不选择去好一点的学校,比如浙江大学等等。我都按照我自己真是想法回答了。

后面是技术问题,他先问了我socket有哪几种,我说不会。他很无语。

然后他问了我什么是A*算法,并举例说。我就大概描述了A*算法的内容,并举例了游戏中常见的A*算法。回答他觉得不错,让他还算满意。

接着,面试官问了一个实际运用问题,针对全国这么多城市的公路网络,试设计一个算法求任意两个城市之间中最短路径。我做了不到一分钟的思考,考虑到国内城市众多,如果采用传统的多元最短路folyd肯定不合适,于是想到了将问题拆分,使用分治的方法。具体做法是:首先,对公路网络进行缩点,将一个省缩成一个点,这样可以方便求出每个省之间的最短路;然后,考虑每个省内的具体情况,求得省内城市之间的最短路;此外,如果省份过大,还可以考虑省份继续进行划分。这样的算法还是让面试官很满意。

后面,面试官问我如何防止游戏中的外挂。由于我很少玩游戏,也不太了解游戏外挂,当时就瞎侃了几个解决方法。第一个是认为外挂一般要读取游戏程序的内存数据,如果能够避免外挂程序来读取,那么就可以防外挂了。第二个方法是对于需要跟服务器通信的外挂,可以在服务器端进行识别,比如可以采用数字签名的方法,让游戏程序与服务器进行通信时增加一个无法伪造的数字签名,这样服务器只接受合法签名的通信。第三个方法是提前发现外挂,即游戏程序可以对可疑程序进行判断,如果发现程序可能是外挂,那么先干掉它,有点先下手为强的意思。三个方法的回答,都还是让面试官满意。

最后,他问了我一个问题,是C++中try和catch可以扑捉异常,但C++中有很多异常,它是如何实现的。这个我就说大概是检测内存吧,然后说不会。由于之前我有一次直接说不会了,这次他更无语了,说我这么干脆。

二面大概也才面了不到25分钟,与原来定的三十分钟有点差距。由于本来是打酱油来参加腾讯招聘的,同样担心后面会出问题,所以希望不要通过二面,就表现得比较不积极,导致了面试官有点点不满意。面试结束后,他让我回去等消息。

面试完后,Qluo等要回去福州了。晚上6点多,收到了腾讯三面(HR面)的通知,Qluo也收到了,通知是10月25号10点40分过去面试。原来计划25日上午回福州,因为福州有个事情催我回去做。当天晚上想不参加最后一面,但后来觉得这样对自己和面试官都不尊重,于是选择了参加。

三面

25日上午,来到面试酒店。前面是Zluo面试,他面试完后我面试。

HR面的面试官是一个漂亮的HRMM,年纪跟我相当,身材和肤色都很好,有点圆的娃娃脸上嵌有一双大大的水灵灵的眼睛。这一轮面试没有自我介绍了,她先问了我自我觉得笔试考得如何。然后听说我参加我百度的招聘,问我情况如何,我就回答说有拿到offer,但没有讲签约的事情。后面两人讨论了很久关于百度的招聘和腾讯的招聘,相互都发表了很多看法。接着她问我还关注了哪些公司,我就说华为、创新工程、网易、谷歌等,并讲了一些我对这些公司招聘的看法。

后面这个问题当时令毫无准备的我有点手足无措,她问我对腾讯的认识,以及问我腾讯的文化是如何的。由于我之前没有准备,不了解腾讯公司的文化和其倡导的精神。所以,只能瞎侃,把华为、百度和腾讯拿出来进行了比较,然后把话题转向了其他地方。这样的回答,显然让HR不太满意。

面试过程中,还谈论了一些为人处世、人际关系、商业相关等等问题,我都一一做了回答。

大概40分钟的三面结束了,HR说最早当天晚上,最迟三天给我通知。

后话

至此,腾讯的笔面试结束,由于本来就是去打酱油的,面试过程中的态度不够端正。

当天中午回了福州,忙完了一些事情。由于我没有考虑去违约百度而且签约腾讯,而且担心与Zluo的offer名额冲突,所以26日给HR留言,首先感谢她在面试过程中给我提的一些中肯的意见,其次说明我不要腾讯offer而跟百度签约了,最后向她推荐了一个厦大的同学。

至此,参加腾讯校园招聘的过程全部结束。

找工作之百度面经

今天写写我上周面试百度的经历,给后来人参考参考。

前奏与准备

9月份的时候知道百度要来福建招聘,是在厦门大学。但当时没有抱什么想法,自己只一心想回广东,而百度在北京。可百度工作的包哥和鸭毛却催促让我简历发过去,他们帮我内推,最后还是发了。但好像没有感觉到内推有什么好处。

由于找工作时间刚好与写论文时间冲突,所以基本没有做好找工作的复习工作。国庆前后,把本科学的数据库和操作系统的书都看了一遍,大概复习个概要。国庆期间,还认真阅读了一本网络基础的书,详细记录下了细节及重点。再接着就是算法与数据结构,主要复习了老王的书,粗略翻了一遍,发现很多常见的东西的细节都没有弄清楚,或者根本就写不出来。最后是看了一下分布式操作系统,把研究生上数据库课程时讲的那本书的重点都详细地复习了一遍。除了网络和分布式数据库,其他复习得都非常大概,有的只用了一个晚上或者一天时间。

10月13日,包哥从北京回到福州,给我们师兄弟和ACM队员开了次座谈会,介绍了一些他在百度工作四年的体会。重点提到了三点:团队合作能力、基础和自学能力。这次座谈会一定程度上增加了我对百度的认识。他还特地强调,笔试面试会更多考察数据结构与算法的内容,因为应届生没有其他什么可以问的。

于是,我觉得有必要好好复习数据库与算法,重新把老王的书拿出来,认真研究了一遍那些KMP,平衡树,红黑树等知识。还复习了算法导论中的B树、并查集等等。

15日下午的动车,来到了厦门。那天晚上在厦大图书馆,整理了一下自己当年做ACM积累的资料,把trie树、RMQ等一些高级数据结构和算法都复习了一遍,遇到好多以前熟悉现在却忘记了的,比如AC自动机、后缀数组。尤其是后缀数组,增量算法推了了久,直到图书馆关门都没有推出具体细节来。怀着非常不安的心情,结束了当晚的复习,离开图书馆,回到同学宿舍洗澡睡觉。

笔试

16日早上8点起床,蹭了同学一顿早饭就去参加笔试了。笔试场上遇到好多熟人,都是同学或者学弟。题目发下来,二个小时5道题,题量倒是不大。

第一道是基础题,问的是vector的push_back和clear的内存管理与分配方法。push_back我知道,就是成倍增加或者成倍减少,但是clear我却不知道,然后就瞎写了一些,显然是错的。考试结束后去查看一个STL源码也没有怎么弄懂clear的内存管理方法。

第二道是程序改错题,10分,我却只发现3个错,变成每个错3.33分,可能还存在一个错误。我发现三个错误是:指针常量不能改变指向的地址、宽字符的字符数组不能用!=’\0′来判断结束、字符数组char a[]的值a[i]可能小于0。目前也没想到第四个错误-_-.

第三道是设计题,函数rand(s,t)能生成[s,t]之间的一个随机实数,需要设计一个算法,生成半径为R的圆内的n个随机分布的点。我是首先离散地考虑n个点,每次按照圆的限制生成一个点。接着,分析了在rand(s,t)随机效果不佳的情况下,认为需要考虑n个的相关连性,才能保证n个点随机分布于圆内。

第四道也是设计题,Web系统每天需要接收到不知道数目的访问,现在需要设计一个算法记录所有访问记录中的m条记录,要求每条记录被保存下来的概率尽量相同。这题我当时觉得可以用数学归纳法去思考,应该存在一个算法,当访问数是n时,每条记录被保存下来的概率都是m/n。可惜当时头脑比较发热,没有做出来。出来后,稍微听华隆学弟讲说可以设计出算法,他吧嗒吧嗒讲,我也没有认真听清楚。

第五道是设计题,服务器每天接收到很多访问,但限制每个用户24小时内只能访问一次,如果某个用户24小时内访问超过一次,则后面访问均认为是无效的。先需要设计系统,记录用户的访问及判断用户的访问是否有效。此题重点提示了由于用户数量较大,不能用hash表在一台机器中记录。我是假设每台机器的网络流量上限及每个访问的流量,如此得出每台机器所能接受用户访问数的上限,从而确定需要的机器台数。然后,在每台机器上,采用三棵B+树的方式来存储访问及记录时间,最后大概描述了如何判断访问的合法性。

笔试两个小时,很快结束了,自己都还没有做完。完全没有发挥好,考完后心情很纠结,非常压抑,很担心能不能进入面试。

16日下午,心情很不舒畅,在厦大教室睡个午觉。本来准备面试的内容,但看不下,就跑去笔霸锐捷网络,结果到考场时考试已经开始50分钟,锐捷HR不让我进去了。于是参观了厦大一些计算机实验室。

晚上,回到上午笔试的南强2楼准备自习,当正准备自习的时候,接到了百度打来的电话,通知明天上午11点带上简历到希尔福酒店面试。当时非常的高兴,有面试机会了。接着柳大师也告诉我收到通知了。

于是,再咬文嚼字般阅读了一遍简历,修改了一些不妥的语句或词汇。还复习了一些昨天晚上没有弄懂的东西,看了一下BM算法的内容。

面试

一面

17日早早地过去了,由于不认识路,还枉费那只坐了400米的公交车费。10:15到酒店大堂的时候,程鸿已经到了,他说是早上5点多从福州赶过来面试的,这可怕,可敬。

一面面试官是一个非常帅气的哥们,房间窗户也开得很大,阳光充足。我首先递交我自己的简历,他稍微看了一下。我问要不要来个自我介绍,他说可以。于是我吧嗒吧嗒把准备好的自己介绍内容说了一遍,有点紧张,说得有点停顿和结巴,主要是从学习竞赛、社会实践以及生活上做介绍。

介绍结束后,面试官听到我有提到地理信息系统,于是他画了一个厦门治安岗系统,说求什么最近距离。结果我没有听懂,最后他没有办法,直接说如何求n个点中的最近两个顶点对。这个题我算法课程的老王的那本书上有,而且我搞ACM的时候做过,于是先简单几句话讲了朴素的n^2的算法,接着介绍了nlog(n)算法复杂度的分治递归的算法。这个问题不大,只是面试官要我分析为什么算法复杂度是nlog(n),我模仿老王书上的归并排序复杂度分析的过程分析了一遍,有一些细节没有处理好,但还是得到面试官的认可。

接着,面试官出了一个多源汇网络流的题目。由于此题也在算法课程的老王的那本书上有,同样也在搞ACM的时候学习过,我就说添加超源超汇节点,直接求最大流,并说了一些求最大流的算法。此时,面试官要我详细描述一下求增广路径的最大流算法,我就啪嗒啪嗒说了一番,然后说可以用最短路作为增广路径。面试官就问我怎么求最短路,我说bfs,于是他让我写一个bfs程序,一分钟我就写完了,无误。面试官要我分析复杂度,我就说bfs复杂度与图的存储结构有关系,如果是邻接矩阵则O(n^2),如果是连接表则O(E)。这里我分析错了,面试官听到O(E)就说如果100000个点,10条边?我就说是稀疏图,很快遍历了,O(E)是对连通图的。事后翻书发现连接链表的复杂度是O(n+E).

最后面试官问了一些操作系统的问题,而且这些题目都没有标准答案,更加考察人的思维能力。比如,计算机为什么是正三角(即CPU比内存快,内存比硬盘快,硬盘比光盘快),而不是倒三角?如果CPU拥有1T存储空间的时候,计算机会变成什么样子?如果让你设计这样的CPU,你会考虑哪些因素?等等,都是非常蛋疼的问题。我也凭直觉及经验判断去回答。

这样一个多小时的面试结束了,面试结束时,面试官跟我说回去等二面通知,下午会有人通知我二面。

于是顿觉轻松,觉得机会来了。收拾东西回到厦大已经中午12:30了。

二面

12:50来到厦大芙蓉园,都没有饭出了,煮了个面。13:15正吃着,百度二面面试官就来电话了,让我下午2点到酒店面试。于是浑沦吞枣般吃完了面,匆匆忙忙赶去希尔福酒店。

二面还是从自我介绍开始,我啪嗒啪嗒把自己准备好的内容说了。接着面试官看了一下我的简历,发现上面项目教学网站有一个网址,他很好奇登录上去查看了一下。

接着,面试官让我设计一个博客系统,其中要求是用户有一千万,具有好友关系,以及评论关系。我在纸上写出来数据库表的设计,然后针对大用户量并发访问的问题提出了读写分离、缓存、分布式数据库、负载均衡等等优化方法。写完后,给面试官讲解。他先问了我如何实现读写分离和负载均衡等等,接着指出我的设计存在朋友关系存储不安全的问题。在这个不安全问题上,我俩纠结了很久,我也提出了一些相应的解决方法,都被他否定了,最后他总结是“系统设计的问题不能用恢复机制来解决”。

然后,面试官让我写itoa的中文版本,即比如“一百二十万三千五百二十三”转化成”1203523。写这个程序的时候,我有的太急,结果刚开始的思路错了,涂了再写。写的过程中,下一个面试的哥们进来问了,面试官就催我,说再给我五分钟时间。不到五分钟,我写完了,大概讲解了一下我的思路和代码。很乱的代码,但是还是基本实现了需求。

最后,面试官出了一道考察思维能力的题目。题目是:有25匹马,每轮跑5匹,除了能够得出该轮中马匹的先后顺序外不能记录马匹跑的时间,问最多需要几轮跑出前三名。这题目我当时只用了一分钟就想出答案了,7轮。然后给面试官讲解了一下我的思路,得到了面试官的肯定

到此,二面结束,此时时间是15:15,面试官让我16点去另外一个房间面试。于是道了谢,兴奋地走出房间,来到酒店大堂等候。由于知道自己将面临最后一面,觉得离百度的门槛又进一步了,非常激动。

三面

在大堂,跟厦大就业指导中心的漂亮的女学生秘书瞎侃了好久。待到15:50,上去三面。来到房间门口,发现有人在面试。稍微偷看一下,原来是同学柳大师,这家伙速度居然比我还快。再偷看了一下面试官,发现是一位中年男子,有点boss的感觉,非常淡定。在门口等候大约10分钟后,柳大师面试结束出来后我就进去。面试的过程还是按照惯例,来个自我介绍,我还是把之前准备的内容吧嗒吧嗒说一遍。

自我介绍结束后,面试官开始问一下HR的问题。先让我说一些个人缺点,我回答了一个。接着他又让再说一个,我又说了一个自己的缺点,说完后他还让我继续说自己的缺点。这个过程大概持续了五六次,他不断地让我说出自己的缺点,当时感觉压力巨大,还有点点紧张,气氛有点令人窒息。要说出自己的缺点,不能说不存在的缺点,否则万一被他看穿,将可能面临一连串的攻击性问题,到时自己肯定站不住脚跟;但是又不能说太致命或者影响工作的缺点,因为这会让自己减分。所以,在高压力的情况下,要一二分钟内说出自己的五六个无关痒痛的却有确实存在的缺点,是非常艰难的事情。当时我觉得如果这样下去,肯定会撑不住。于是,在说出自己一个缺点的时候,举了一个自己亲身经历的例子,来说明缺点的存在及带来影响。但是,我在举例子后半部分将话题转向跟领导如何相处方面了。

面试官当时也转话题,改成问我“做一件事情,如果你的想法跟你的领导不一样时,你会怎么做?”。这个问题由于之前我在网上看过该如何回答,于是分几点进行回答“首先是服从领导安排,其次是给领导适当的提示”。接着面试官又问“为什么不坚持我自己的想法去做?”,我就回答说“自己从下往上看,注重细节,但可能是管中窥豹;领导从上往下看,看着全局发展趋势,而忽略细节”等等。这二个回答都让面试官比较满意,他点点头的同时不停在笔记本电脑上记录着。后面,面试官又问到“如果你的提醒或者建议领导不听怎么办?”,对于这个问题,我有点束手无策,只能回答说“我想明智的领导应该会认真考虑下属的建议,如果我的建议他没有听从,应该是从大局上看我的建议有点偏差”等等。

到此,面试官没有再问HR的问题,转问专业技术问题。首先,他让我设计百度地图中的公交换乘路线搜索算法,如何用最快最高效的方法,计算的两个站点之间的公交车线路。我想了一下,搞了一个启发式搜索算法,并提出启发式因子可以根据不同用户来设置,比如“上班一族可以考虑时间作为启发式因子,学生可以考虑消费作为启发式因子,老年人可以考虑舒适度作为启发式因子,游客可以考虑沿途风景作为启发式 因子”等等,算法最终是保证代价最小。在我讲解完自己的算法之后,面试官说不错,尤其是从用户群作为出发点考虑问题。接着,他讲解了一个他的做法,是利用矩阵连乘和传递闭包得算法,可以并行求得多挑个站点直接的换成线路。在面试官讲完他的算法后,他让我比较两者算法的差别,说出各自的优势和劣势。

接着是这次面试的最后一个题目,是一道考察人的思维的题目。题目大意是在一条笔直的公路上有三个公交换乘车站,你会让顾客选择哪个车站进行换乘?针对这个问题,纯属于开放性思维的题目。我就从时间、经济、舒适度、拥挤程度等等方面进行回答,回答得基本还可以,得到了面试官的肯定。

后面,面试官问我除了百度外还考虑了哪些公司,我就说腾讯、华为、网易等等公司。在这里,我重点说明了腾讯,指明自己是广东人,希望去深圳,而腾讯在深圳等等。说道这,后面就是面试官从他个人出发阐述了他对百度和腾讯的认识,以及将百度和腾讯进行了比较等等。大有劝我去百度不要去腾讯的意思。

最后,针对百度的一些产品与面试官交谈了很久,我提了关于百度产品的好多问题,面试官都一一做了回答。

三面就这样结束,起身与面试官握手道别。在送别到酒店房门的时候,我问面试官是不是我的所有面试都结束了,他说是。接着他问我学校的三方发了没有,让我回去等消息,大概两三天时间。

后话

16日晚上,签约华为的忽忽请客,与本科几个同学去一起小肥羊。

17日上午,在厦大蹭完早饭回福州。

18日复习信息安全课程。

19日晚,接到offer短信和邮件。说20日15点到厦门希尔福酒店签约。

20日早上6:30起床,洗刷完赶到新校区8:00考的信息安全课程。10:00参加毕业生拍照,10:30联系辅导员到就业中心拿了三方协议。然后打车到火车站,与柳大师一同到厦门签约。15:30签约,正式卖身。

内容导航

博客订阅

最新评论

 

2012 年五月
« 三    
 123456
78910111213
14151617181920
21222324252627
28293031  

Zhong Sisi


zhong sisi

The important thing in life is to have a great aim, and the determination to attain it.
人生重要的事情是确定一个伟大的目标,并决心实现它。
-Johann Wolfgang von Goethe(德国诗人、剧作家歌德)

我的微博

 

师兄弟