2016去哪儿网一面经历

2016年10月10号上午做的去哪儿网的笔试,当天下午接到面试通知。整体的面试发现,互联网公司比较注重算法的时间和空间效率,而不仅仅是结果。12号上午9:40去亚朵酒店一楼签到,然后领到了笔试的试卷,看了一下,居然有批改的痕迹还有试卷等级,居然是C-,当时就想走了,这么低的分数估计也是当备胎的呀,然后询问其他来面试人的等级,发现也都是C-,然后默默的看看试卷上面的批改,只有一题有批改的痕迹,是一道二级排序的题目,大概意思是
【去哪儿网有50万酒店信息,包括酒店的订单数,评分数,价格,先按照订单数倒序排列,当订单数相同时按照评分数顺序排列,当评分数相同时按照价格倒序排列,求排名前100的酒店id.速度越快越好
struct {
酒店Id,
订单数,
评分数,
价格
};】
这道题我的思路是用sql嵌套一级一级来完成,但是试卷上面的评语是:太复杂,能否用数据结构实现?我马上就意识到等会面试的时候面试官肯定会问我这道题用数据结构怎么做,于是开始各种百度,找到的结果是和结构体的二级排序相关的一些知识(在一级排序相同时按照二级排序之类的),临时看了看,然后脑洞开了,想到互联网公司重视大数据,又百度了一下大数据的排序方法,里面介绍先对数据分组,然后分组用堆排序,脑补了一下。过了差不多20分钟,叫到我的名字了。去4083房间面试,说实话挺奇怪的,第一次在宾馆的标间面试,在房间门口看到面试官坐在房间里面,于是敲门进去了,面前摆着笔和纸,看来又要写代码了。。。。。首先是自我介绍,介绍的时候面试官正在浏览我的笔试试卷,我介绍完后她开始提问了,第一个问题是“你试卷上第二道编程题目用的是sql,但其实这是一道编程题,考完试有没有思考一下可以用什么数据结构实现吗?”果真不出我所料,还好刚才网上看了一下这个方面,然后我就说用结构体的二级排序,面试官眉头皱了一下,说这是一道排序题目,你没有学过数据结构吗?里面有很多排序算法,想想看用哪一种,然后我想了半天,也没有想到合适的,原因是这道题目的数据量是50万,我觉得有点大,不应该用内排序,但是面试官提示我用内排序了,又要求速度越快越好,于是我就不抱希望的说快速排序,然后面试官又皱了一下眉头说“为什么用快序排序?”我说“因为速度快”,“快速排序的时间复杂度是多少?”“O(nlogn)”,“你会写快速排序吗?”我说“会”,她说在纸上写一下代码,我准备开始写的时候,她说应该用堆排序的,我马上反应过来刚才看的大数据排序的题目,分组用堆,于是马上说我觉得这道题的数据量大,直接用堆排序内存吃不消,可以分组用堆,然后面试官问我堆排序的时间复杂度是多少?我犹豫了,因为我记得堆排序是建立在完全二叉树的基础上的,时间复杂度应该是和树的高度有关,于是就说是O(logn),结果面试官说应该和快速排序一样,额,我就只能傻笑了。。。面试官又接着说会写堆排序吗?我晕,我记得书上堆排序的代码很多的,学的时候都只是照着书画图,没怎么仔细看代码,现在让我写堆排序的代码,我肯定写不出来啊,只能老老实实的说对不起,不会写,然后面试官打开电脑,边记录边说“会写快序排序不会写堆排序”,我当时心里想“居然要现场写堆排序,哎,怪自己没有好好看看书”,以上是第一部分问题,第二个问题是试卷上的另外一道前端的题目,题目是这样的【a*b*c123*4,用程序将其处理后,使得结果变为***abc1234,尽量减少时间和空间复杂度】,这道题如果不考虑时间个空间复杂度是很好做的,但是还要考虑时间空间,我的思路就束手束脚了,想了半天也没想到非常好的方法,只能硬着头皮写了,写完后面试官说“你这个空间复杂度好大呀,还用了数组,再想想”,于是我就又想了想,哎,其实平时写代码都只考虑实现,根本没考虑过复杂度的问题,临时想我肯定想不出来,过了20秒还没有思路,面试官放弃了考察代码的打算了,以上就是第二个问题,第三个问题还是试卷上的和测试相关的题目,【去哪儿网买了航空公司的飞机,如果你是测试负责人,如何设计测试用例】说卷子上这道题你的思路很好,但是还不完整,现在让你再写,你会补充什么用例吗,我看了一下我卷子上写的是按照用例类型展开的,功能、性能、压力什么的,然后我就又补充了兼容性、安全等,面试官说兼容性你打算怎么测,我一时也想不出来,于是她说这样吧,给一个场景【你回到宿舍发现灯不亮了,你要如何去组织测试】,然后我就说了一些可能导致灯不亮的原因,面试官一直在说然后呢、然后呢,说的我压力山大呀,说到最后我发现自己的思路很乱,于是就说对不起,我觉得我自己的设计很乱,面试官表示赞同,她说其实这是在考察测试人员的组织能力,有一种测试方法叫等价类划分法,应该先把测试用例划分成几部分,然后在每一部分里面组织测试用例,我觉得她说的很正确。最后一个问题是问了实习里面的一个接口测试的项目,这个项目我当时说是为了保证数据的正确性而做的,于是就被面试官抓住了把柄,因为她觉得我得测试方法有问题,而我又不能很好地说服她,于是在这种尴尬的情况下,我只能自己说对不起,可能我的测试方法不对,没有考虑的很全面。面试就在这样的尴尬情况下结束了,哎,这就是我得去哪儿网的面试。
整体来说,我觉得现在找工作完全不是一本《程序员面试宝典》能够解决的问题了,因为面试官的问题会深入到一个问题的里面去,这个问题的答案为什么是这样,并且让你提出改进方法,而软件测试也不是说随便测测就可以的,linux、网络、测试方法(beta测试、黑盒测试的几种方法等等)都要有了解。抽个时间应该把这段时间遇到的问题都总结一下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*