关于找工作
回家几天了,依然延续着在学校猪一般的日子。做点改变,写写找工作的经历,主要是遇到的一些笔试面试题,想起多少算多少,有些要保密的内容就不透漏了。
先说上个学期的暑期实习生应聘。开始参加了平安科技和惠普的实习生招聘,本来也没想去,印象也就不深了,记得惠普的题挺难,数据库、网络、操作系统、C++都是有深度的,英语题注重外企文化,其他记不清了。下面重点说一下腾讯,由于XA师兄内推了我,我的职位就成了后台开发,并且省了笔试。一面是电话面,问的大致有:
TCP的长连接和短连接;UDP包最大长度;C++中Class和Struct的区别;当天日期20090519这个数的阶乘是多少(当时想到数论上了,居然回答不会);还有两个智力题,一个是黑帽舞会的问题,另一个是两人轮流取100个球的问题。
二面的面试官人很好,知道我是做游戏的,就没怎么难为我,1个小时的面试时间,三分之一在问项目经历,三分之一在问RP问题,剩下三分之一问的技术问题有:
为什么TCP需要三次握手,解释为什么;滑动窗口的概念;socket程序中调用close函数时发生了什么;有没有写过一个TCP服务器,怎么实现的;问我会不会数据库,我说只会书上讲的,于是问什么是三范式;数据库中索引用得什么数据结构,我答的平衡树,就问平衡树是什么(后来查了一下应该是红黑树);如果基类用了virtual析构,派生类还用不用加virtual,等等。
这位面试官又问了我想做什么,我说做游戏,他又给我联系互娱那边的面试,本来已经结束了的,确实是个好人啊~
互娱的面试官问的问题大概有:
说一下3D渲染管线;什么是灵活渲染管线;游戏内存管理用平衡树好还是哈希表好(这个问题我至今不知道……);平衡树和哈希表的时间复杂度;其他想不起来了,好像针对简历中的项目经历问了很多。
腾讯的三面是HR面,一些RP题就不说了。郁闷的是最后被拒了,都不知道为什么……不过幸好没去,去的话八成是留下,就真的没机会做游戏了~
之后大四就开始了,进入真正找工作的阶段,其中的辛苦就不多说了,我的列表上有三四十家公司,做什么的都有,甚至微波炉!简历投了将近一个月……我们不是一流大学,baidu/gg/ms/qq/163这五家只有腾讯去我们学校,当然,前三家没有游戏我也去不成,呵呵。nv和ubi基本不要本科,所以我的列表上重点关注了腾讯、网易、完美时空、搜狐畅游、金山这五家,下面主要说它们。
最早的是网易,我的职位是游戏开发,笔试题有5道:
1、2题是智力题;3题是判断线段相交,大量线段时如何优化,我回答的思路是物理引擎中分层检测的方法,后来看到卷子这道题没得分;4题关于调色板;5题是英文ACM算法题,我想了很久不会,回学校后问一个做ACM的师弟,不到十分钟就做出来了。
网易的一面是技术面,技术问题大概有:
针对我简历上那个JHDemo的一些问题,比如几种线程同步方法的区别,用阻塞模式的socket怎么实现联机等等;C++的问题,写一个字符串拷贝函数的原型,还有,如果一个类的构造函数构造失败,比如内存不足,怎么办,注意构造函数无法返回值;又问我最近玩什么游戏,我说植物大战僵尸,问这个游戏开发起来难点在哪,我能不能实现,我说难点在平衡性,技术上我能实现,又问那一屏在跳动的花怎么做,我答跳动是精灵动画,画一屏的花用画家算法就行了,不知有没有答到点上;还问了一些问题想不起来了。
二面是群面,三面是综合面,其中有个技术题:
我们调用函数时都是立即执行的,现在想在调用后等待一段时间再执行,设计一个接口。我想到.net的异步委托,可惜不怎么懂,写给面试官的是typedef void (*FUNC)(void* param); bool Invoke(FUNC func); 面试官问为什么返回布尔,我说表示添加任务成功或失败。又问了具体如何实现(多线程),如何通知调用结果(回调),最后问如果我想删除一个已经加进去的任务怎么办,我才反应过来原来开始写返回布尔是不好的,改成返回一个unsigned long,为添加进的待调用函数分配一个ID,删除时要指定ID。面试官问怎么开始不这么设计,我说,没经验……
金山和网易的时间冲突了,之后就是腾讯。腾讯的笔试考的完全是计算机专业课程,前面选择题覆盖了C++、数据结构、算法、操作系统、网络、数据库、编译原理等等,后面程序填空有个背包问题,我一心想着动归,却一直读不懂,后来发现居然是用搜索做的……
腾讯一面又遇到了暑期实习时的面试官,就没怎么问,又说了下3D渲染管线(固定管线和灵活管线),phong光照模型,还有一点3D图形的问题记不清了。二面是后台部分,问了一些C++的问题,主要是要对C++的内存模型有所了解,还有数组传参后退化成指针等等C++细节的东西。又问我擅长什么,2D还是3D,当时我想平时我不做图像部分,其他的什么都做,非找个擅长的也不容易,想到我们团队中引擎的结构基本是我设计的,就跟面试官说了个擅长面向对象和设计模式,结果面试官让我画个观察者模式的UML,我不会UML,那个悔啊……
搜狐的职位是3D开发,笔试题google一下就能找到,我做的那份题四元数占了很大比例。搜狐今年的面试很不正规,只有一面,我面了大概20分钟。问了少数几个技术问题有:
玩游戏时有没有卡的情况,为什么会卡;如果是因为客户端卡,要怎么解决;有没有写过socket程序,有没有写过多线程程序,有没有编译过directx自带的例子,我分别回答有后就没继续问下去……其他问题想不起来了,不过确实搜狐没怎么问技术……
最最遗憾的,完美时空没有过网申,其实我最想去完美的,因为不在我们学校所在城市招聘就没去霸王笔。通过51job投的三份简历都没有过网申!
就是这些吧,当然,技术问题只占了面试中的一部分,还有针对项目的问题,RP问题,团队合作交流等等各种问题,就不在这写了。