下午两点四十七接到一个电话, 0571开头的, 杭州的, 不会有错了
过程:
第一个问题, C,C++, malloc, free 和 new, delete 的异同点. 不知道, 我自己没用过malloc 和 free, 完全不知道从何答起, 只好说 new 是申请一块空的内存, 返回指向空内存的指针. delete 用来回收被分配的内存, 这个题目挂了
第二个问题, static 是怎么实现的, 特点, 与全局变量的区别, 一个文件能不能访问另一个文件的 static 变量, 能的话为什么, 不能的话又为什么. 我只知道 static 是和类或方法绑定的, 其余一概不知
第三个问题, C++ 多态机制的实现. 面试官说既然你不了解C, 那就多问问 C++ 的问题吧, 随即给出这个问题. 空讲有些麻烦, 我答的磕磕巴巴. 他随即又问 virtual table 在什么时候实现. 不知道.
第四个问题, 子网掩码为 255.255.255.240, 允许放几个主机. 256-240 = 16, 16-2= 14. 答14个. 问那两个为什么不能用, 答, 一个是回环, 一个是自己
第五个问题, unix 下什么什么什么. 问题都听不懂, 直接说不了解 unix
第六个问题, TCP 的拥塞避免算法. 我想了下, 答了慢启动算法
OK, C++ 和 网络的知识就这些了, 他问我对算法和数据结构了解吗. 可见已对我的能力表示怀疑了
第一个问题, 4G 的int 数字, 32位的cpu, 找到中位数. 我回答了 k 分查找, 他说假如 4G 数字都是一样的呢. 我说我给出的是比较 general 的解法, 假如数据呈现出一定的特点的话还要具体分析. 他说假定都是正整数, 我给出了一个递归按位 hash 的解法, 不知道对不对
第二个问题, 从一个矩阵中找到一个子矩阵, 其和最大. 我先给出 o(N*N*M*M) 的算法, 又优化到 o(N*N*M), 我知道不能再优化了
第三个问题, 说来点有意思的. 50 个程序员各自写了一段程序, 程序员可以发现别人代码的 bug, 但他们之间不能交流, 且程序员之间的代码可以任意的看. 假如一个程序员知道自己代码有错误, 那么当晚就能修改正确. 一个局外人来看这50个人的代码, 说了句有 bug, 然后就离开了. 求解当 bug 为5个时, 最多需要几天能够使得所有的代码都没有bug. 我一便边举例子, 一边把想法给他讲, 不过最终是没搞出来
期间, 问的就是项目经历, 给我的感觉是他最关心的是项目经历, 算法和数据结构只是小把戏. 最后问了下游戏史, 甚至问了我 11 的分数, 可见面试官年龄和我相仿
总结:
实验室同学告诉我网易游戏招实习生. 我本着试试看的态度就弄一个 CV 贴上去了. 本周二接到 HR 的电话, 说安排电面和我商讨时间. 时间也没什么可商讨的了, 我可选择的电面时间是周三和周四, 我只好尽可能的把时间往后拖为自己争取复习时间, 最终确定在周四下午. 亏得我还经常刷网易招聘的 schedule, 上面写的是敬请期待, HR 给我说周三或周四就必须面试时我差点把午饭吐出来. 周三有组会, 我要讲 paper, 我接到电话时还没开始看
最终准备了一个上午加一个晚上, 看看网易面经, 看看C++, 看看算法, 然后就上场了
以面试官对我的态度来看, 他似乎不像个研究生, 倒像是个本科生, 因为他表现得不懂科研为何物. 甚至觉得研究网络方向等同于熟悉网络编程, 当问我第一个网络问题时, 我觉得这个面试官知道的太少了. 我师兄给我说, 他面试的时候, 面试官完全不鸟他发了什么 paper, 做过什么研究, 那种面试官绝不是本科生, 天朝的事经历了才知道. 回想我用了好多时间研究机器学习, 信号处理, 算法, 数学, 结果都成了没人看的花瓶, 我以前觉得自己研究生收获颇丰, 今天对那些想法的彻底否定, 对找工作没帮助的都没用
参加过学长学姐的经验交流会, 他们总是说需要和面试官保持交流, 多问问面试问题的各种特殊情况, 我觉得这个与我今天的经历不符, 没有特别的感受
孙w 曾给我讲, 大家的算法基础可能都差不多, 最终拼的是项目经历. 这话一点不假, 今天我是亲身感受. 我又重新想起编译器, 我要做, 只能绝处逢生
我是没有机会出去实习的, 我知道. 参加面试只不过是想经历. 不愿当我真的去参加招聘时, 面我的人是我第一个面试官. 甚至, 我有些喜欢这种和陌生人聊天的感觉, 我一直期待有人能够站在那里跟我竞争, 这对我有益, 独处容易激发我内心的阴暗面, 使我有自我毁灭的趋势. 我喜欢 test, 喜欢 competition, 这些东西的存在才能保证我暴风雨之夜能够安然入睡. 我讨厌并害怕玩了一天游戏后躺在床上的感觉, 觉得自己被世界遗弃, 觉得自己罪孽深重.