标题

[百度]百度技术类面试经验(长沙)

责任编辑:admin
日期:2012-10-21

写在最前
1. 这是为了给真切有需要的人看的,并非炫耀,故希望一不引起反感二不成为话柄。
2. 对之前一些向我询问的同学深表歉意。因为像有受害阴影,潜意识选择性失忆,脑子放空了面试过程,所以都无法给大家提供丰富的资讯。直到昨晚在某些同学的启发下,我才突然清晰忆起当时的面试题。
3. 因为由各面试官出题,估计没有统一试题的吧,所以仅能作为参考而已。
4. 给处女面留个纪念。

一面>>基础知识
竟要先自我介绍。我就对照着简历挑了些说了几句,其他的自己看吧…

1. 给出一段10余行的C语言程序,要求解释每行代码做了什么。
>>代码主要是对字符串进行操作,大概有查找指定子串,合并串,然后加上串结束符;面官提示了strstr()函数的功能;请教了substr()和strstr()的差别(面官说程度语言的差别);因为字迹关系,闹了个小乌龙,错把”\0″看成”10″。

2. 题1的代码是否会出现异常,怎么解决异常,修改原代码。
>>查找子串时strstr()可能会返回null;添加代码要能发现null,正常/异常应怎么各做什么(if..else..)。

3. 逆序一段文本,即词序反转,词要正常,举例是”Baidu is No.1.”变成”No.1 is Baidu”。先口头说思路,然后手写代码,再解释每句代码。
>>用了栈结构;用了两个指针,一个查找完整的词,一个对当前词压栈操作;有两个条件,用空格来标识词结束,用”\0″来标识字符串结束。

4. 关于搜索引擎的,现在有很多张表(相当很多个词典),每张表有很多词(有序排列),同一个词可能在多个表中出现,当用户输入某个词后,要能快速在这些表里面找到这个词(在哪个表的哪个位置)。
>>以为是要很复杂的方法,又只盯住快速,想到了先把各表映射成图像,再用图像识别之类的技术(面官先表示肯定,再表示很夸张,表示需要考虑时间空间之类的成本);考虑建立索引,先说用二分查找(面官说可以但是要考虑数据海量,追问算法的平均&最差时间复杂度),再说用堆排序然后再查找(面官表示可以继续往这方面思考,但是我不记得知识点所以此题结束)。

5. 给一个搜索页面例如百度主页,怎么测试页面,给一些测试用例。
>>搜索框输入边界值,null,非法字符(如’和\0或乱码),超过长度的字符看是否溢出;性能(面官说只测功能就可以了);搜索按钮是否实现功能。

好像还有一两题的,实在无能记不住了。然后面官灌输了北京总部有更好的提升空间…

二面>>实际应用
闲聊了下,知道我跟IT有关的消遣娱乐是网购,再挖掘比较感兴趣秒杀/团购,好,就从这开刀了…

1. 设计一个秒杀页面,实现应有的功能和页面的构造。
>>大致描述了一些界面因素;把秒杀的逻辑流程业务说一遍(说到下完订单跳转到付钱就得,因为后面的是支付工具的事儿了);有特定条件,登录后才能购买,货存量的问题,页面的及时更新。

2. 题1的页面要测试什么。
>>功能,登录按钮,正确显示库存和倒计时,购物车,正常显示文字和图片,未到点秒杀按钮禁用&到点秒杀按钮能用,能选择商品信息,0库存时页面的跳转,秒杀按钮能否正确跳转;性能是否能支持大量访问和同时操作,能否负载平衡。

3. 秒杀时遇到的瓶颈是实时性,如何去解决秒杀开始的统一时间点。
>>有网络延时的问题(不懂怎么改,面官同意跳过);页面是自动刷新的,通过反馈来调节时间准确性;弄个计时器之类的(面官追问怎么弄在哪弄)数据库/页面设置一个时间点,到时间点就给页面发送信息。

4. 为什么像淘宝这么技术强劲的队伍还依旧会出现页面更新缓慢的问题,库存量存在偏差。
>>从技术看问题,网络会延时和拥塞,不可能完全实现并发操作数据,数据库操作要时间;(面官提示心理行为学角度)提高点击率,让买家进入页面,浏览或者购买其他的商品/套餐。

然后探讨怎么解决实时更新的问题(面官说权衡利弊找平衡点),然后面官解答了开发测试的工作内容和发展方向…

三面>>发散思维
斟了杯水,让我讲讲2次面试的心情,又问为什么选那工作地点这面试地点之类的,然后来找茬…

1. 简历上在某项目中我担任职责是项目经理,问项目经理的具体职责是什么。
>>制定计划,划分工作,分配人力,起到监管的作用;(面官追问与项目负责人有什么不同)项目经理要向项目负责人及时汇报进度和问题,要协商各部门的冲突,要监督各部门的进度,有时需要提出解决方案,即向上负责向下管理,要做面向下级的较为具体的统筹工作,项目负责人是比较宏观的调控;(面官追问其中有哪里最为突出了我作为项目经理的职能)举例是技术出现瓶颈工期延误与春假即来项目成员想回家的问题,解决途径要多管齐下,与负责人协商工期,安抚鼓励成员,攻克技术难关,重新安排进度,合理分配人力和时间。

2. 让我描述自己印象最深刻的一个项目。
>>真找了个印象深刻的说,包括项目的内容、团队、成果、工期、个人工作;(面官追问为什么印象深刻)遇到了技术困难,细说如何从零开始,学习起步到怎么解难,收获颇丰;(面官追问系统是否完善)当然还有些问题没解决掉,例如项目的X功能不稳定,Y没有实现批量功能;(面官追问原因)X功能是因为调用别人的编写组件,因为工期到了,没有时间去学习和直接修改组件的源代码;Y功能是因为X功能的不稳定,所以不能实现批量功能,但因系统是内部使用,所以Y带来的时间耗损在可忍受的范围内;(面官追问X功能不稳定,为何系统继续运营)用户有使用的迫切需求,已经向用户说明问题,并得到用户的同意;对操作者进行过培训,能人为克服带来的不利影响;(面官追问能否完善X功能)X功能用的组件是开放源代码的,只要熟悉了组件的工作原理和代码,就能修改成满足系统的组件;(面官追问预期系统的性能如何,能多少个并发操作)随便地保守估计能50个并发;(面官追问如何得出50)安装数据库时配置了并发访问数,然后系统现在运行的服务器是多核的,性能配置蛮高,应该能50个;其实是猜的而已,实际多少也不清楚啊(面官表示那就这样吧)。

3. 如果我开了一家公司,会选择哪个IT公司作为竞争对手,如百度、淘宝、腾讯等等。
>>因为实力可能不强,拼不过大公司,所以先定位公司的消费群体是普通的民众,而不是服务大企业;其次新公司起步,当然是寻求合作,不自量力去跟大公司去拼,那没意义;所以选择淘宝,一是淘宝是除了面向企业,也面向了百姓,二是淘宝是大公司,即使无法学习技术,也能学习到管理之类的,三是通过淘宝作为平台,打响知名度和开阔新的业务或方向;(面官假定公司刚起步而且员工只有我一个人,追问要怎么去劝服淘宝同意合作)找到一个创新点,他无我有或他有我更好的,让这个作为合作的内容;(面官追问淘宝人那么多技术那么新,能想不出我的创新点吗)公司小,技术创新是不行啦,可以从商业战略上考虑,不知怎的就想起那时淘宝和小商家闹得沸沸扬扬,就从这个点出发,小议了淘宝搞这些措施,损害了小商家的利益,只考虑短期和片面的利益,忽略了长远发展和社会影响等等;(面官追问有什么创新点可以解决)就说这件事可以协商,加钱可以调节,对于小商家和商城店家之间的不平等待遇,突然想到买卖交易的双方互评制度,就店家也增加一些评价制度,让厂商&供货商&代理销售都参与进来评价,让小商家和店家和消费者面前竞争更为客观和平等。

然后探讨了百度总部的地址与员工上下班的辩证关系,以及北京的交通和食宿问题…

小结
1. 一二面的两位是年龄与我相差不大的技术人,着重点在于技术层面上,看知识是否掌握能否运用;三面的是位30好几的主管,着重点在于策略层面上,看思维是否定向能否扩展。
2. 知无不言,言无不尽;经验浅薄见识短,见好就收不忽悠;不懂就坦白,直接下一题。
3. 虽然面试叫官,但是地位平等,氛围和谐。
4. 南下的三位面官和北上的我,于异地相见甚为融洽,所以话题也稍涉及长沙、旅游、美食及所见的南北方差异。
4. 然后,就没有然后了…谢谢观赏。

阅读:

评论