zoukankan      html  css  js  c++  java
  • 2015腾讯暑期实习武汉站面试经历(大学里的小朋友有这样的技术水平,只能说他规划的好、觉醒的早)

            不得不吐槽一下腾讯的面试短信。在面试前一天(13号)晚上十点半才收到,通知14号下面四点半面试。我赶紧去楼下打印了两份简历。后来看了一下列车时刻表,其实也不用太赶。第二天坐上十点半的动车从南昌出发去武汉了。细节不表了。

            先介绍一下我自己是南昌大学的,非985,不是很有名气的211。在面试腾讯之前也有过两次失败的面试经历,虽然失败过两次,但也掌握了不少经验,不只是技术方面的,还有面试技巧方面的。所以说有面试的机会,大家都应该去参加一下,即是过不了,经验也是蛮宝贵的。在去武汉的动车上,我心里也是没底,总结了自己的三大软肋:

    1. 学校一般。(非985高校。武汉高校众多,除了华科武大以外,其他学校也是蛮不错的)
    2. 没项目经验。(这点不仅是软肋更是硬伤)
    3. 本科。(实际上本科生还是应该有自信才好)

            我面试的岗位是后台开发。不过此后台非彼后台。很多人一听到后台,就以为是web后台:Java web、PHP什么的了。腾讯的后台指的是Linux服务器开发。涉及C/C++网络编程等技术。总体来说,两个面试官还不错,问的问题也比较基础,大概是因为我是本科生的缘故吧。其实我也有没答出来的。但是他们似乎也并不要求百分百正确,没那么严格,就让我过了。所以说他们人都比较nice。听说其他后台开发的面试官还有考察英语的。。(为我的面试官默默点赞。。)

    一面:leader

    leader低着头:说说你的项目经历
    我惊了,我没项目经历:……没,之前学android的时候做过app,学Qt时候做过计算器,现在Linux C/C++倒是没做过。(我报的岗位是后台开发linux c/c++)
    leader:哦,都是图形化的东西,后来怎么不学android了。
    我:后来发现对于偏底层的东西更感兴趣,应用层开发不太……
    leader:很多人觉得底层就比应用层的好,实际也不是。学着学着android,突然就讨厌android了,是吧。
    我:没……,也不能说讨厌吧。就是不知道为什么就喜欢C/C++了。
            接着都是对着简历问的。
    leader念着我的简历:熟悉常用Linux编程API。笑着说:那你说说你会用哪些API
    我瞬间头脑风暴:基本的open啊、create、read、write。进程管理的fork、vfork。还有……
    一下子不好列举了,顺口说了个:退出exit,还有带下划线的退出(_exit)
    leader打断我:说说带下划线和不带下划线的区别
    我:不带下划线的会刷新数据流缓存,比如你有打开的文件,如果用exit,就能保证在退出的时候把缓存区内容写入文件。而带下划线的(_exit)则不会。实际上exit更推荐使用,但带下划线的(_exit)效率更高
    leader:说说fork。它的子进程和父进程的内存空间如何
    我:内存空间不共享,子进程直接copy的父进程的内存空间。比如你一个父进程中的变量被修改了,在子进程中这个变量不会变
    leader:fork返回值大于0表示什么
    我:当前进程是父进程啊。这个值就是子进程的id
    leader:返回值等于0呢
    我:子进程
    leader此时诡异的笑着说:等于-1呢
    我:那就出错了啊。
    leader:说说进程和线程的区别
    我blablabla大概讲了一下,凭着操作系统课仅存的一点记忆,就谈了一下进程包含多个线程啊,进程是资源分配的最小单位啊,线程的调度的最小单位啊之类的。后来leader问我关于两者存储区相关的内容,哪些东西是共享的,哪些是私有的(线程有自己的私有栈和私有全局变量)等等。我这里答得并不好。
    leader:假如有多个进程同时对一个文件进行写操作,会出现什么问题
    我:……写入的数据就不理想啊,达不到你想要的效果……这个不是进程安全的
    leader:你怎么知道我想要什么效果。。
    我:比如你想依次向里面写数据。但你实际多个线程写入的时候得到的数据是错落的(自己实在无法很好的描述……)
    leader:那你怎么解决这个问题
    我:锁。。额不对。我知道线程有互斥锁(mutex)。。进程貌似没有啊。。
    leader:这个不知道了吧。。
    我:恩。。。
            我心想面试官真是打破砂锅问到底一个问题无限延伸,从开始的介绍API,到最后如何解决安全的进程读写。。其实是一条线牵扯出来的问题,我到这里终于戛然而止,他诡异一笑,似乎也是因为把我问住而感到满足。。。
    leader:接着说说你用过的其他API吧
    我:还有信号相关的,比如signal注册信号啊,raise、kill发射信号啊等等。其他的还比如说网络编程的几个函数
    leader:说说网络编程服务端的几个函数调用的顺序
    我:bind……
    leader笑了一声:上来就bind???
    我:哦哦哦,socket,先调用socket函数获得套接字。然后是bind、listen、accept。这时候客户端connect
    leader:奥,接着你说说Linux里面常用的数据传递的方式
    我疑惑了一下:数据传递?是说IPC是吧
    leader:对,并说说它们各自的特点
    我心想:这是腾讯笔试的时候考过的,当时就是凭着自己的理解填的,万万没想到面试还会问这个,所以没有准备和整理过标准的解释。。这里还是要凭自己的感觉说一下
    我:先说管道吧,命名管道或者叫知名管道(fifo),它把数据存在文件里,实现了一个数据的持久化。非命名的普通管道(pipe)可以用于数据量比较小的数据传输吧,可以即取即用,多用于组合多个命令,灵活性很大。信号的话呢,可以实现一个异步的功能吧……
    leader:说说什么是异步,如何实现的异步
    我:异步就比如说,你一个费时的IO操作,我不去等待他完成,而是去做其他事去了,接着等IO操作完成了发一个比如SIGIO的信号通知我,我就在接手,大概就这样吧
    leader:接着说其他IPC
    我:剩下的就是系统五(system v)的几个IPC了:消息队列、信号量、共享内存。信号量就是一个操作系统里的概念,PV操作。当进程资源有限的时候可以通过信号量来完成某种操作,还可以同步。
    leader:具体说说这个PV操作。比如你有一个资源数量有限,有进程申请的时候就减一,释放的时候就加一。数量的为0的时候如果要申请就要等待。啊。对了,刚才说到的多线程读写可以用信号量来实现同步操作啊。这样答对么
    leader想了想,说:恩,也可以实现,不过实际上我们一般不这么用,有更轻量级的实现方案
            后记:后来面试完我搜了一下我来发现fcntl这个函数可以实现文件锁。另外还有flock函数。。前几天还看到这个了。当时就忘了,只想着给进程加锁。。其实是给文件加锁啊。
    这时候他接了个电话,叫我出去等。。然后一会就又叫我进来了。
    leader:刚说到哪了?
    我:IPC啊,信号量说完了。另外还有消息队列,一个队列,先进先出,没什么好说的(实际上真的忘了如何说了。突然头脑混乱发现命名管道和消息队列都是先进先出的,如果他问起来有什么区别的话,我还真不好答。于是一笔带过了)。还有一个共享内存,这个是效率最高的一种IPC了。。
    leader:为什么效率最高
    我:因为其他进程直接直接可以访问别的进程的共享内存空间啊。根本不用什么数据传递什么的。
    leader点点头
    我:最后一种IPC就是socket,适用于网络编程
    leader:你这都是从《Unix网络编程》书上看来的吧。书的内容你倒是记得清楚。。
    我笑了笑:《APUE》、《UNP》都是入门经典嘛(备注:UNP和Unix网络编程是同一本书)
    (心想:这几个解释不是从书上看来的啊。《UNP》那本书没看多少。。)
    leader:网络编程中也会用到一些IO多路复用的函数,你知道吗
    我:……知道名字。selec/poll/epoll。具体怎么用就不知道了。只瞻仰过这几个函数
    leader:……
            到此第二次知识延伸结束
    leader:说说C++的特点
    我:效率高啊
    leader:效率高。是相对Java说的吧,你说说为什么比Java效率高
    我:Java首先它用了虚拟机啊(JVM),还有就是C++有指针操作啊,这个效率很多,Java直接去掉了指针。另外Java是一种安全的语言,里面各种类型检查。C++很多地方没有类型检查抛弃了安全性,获得了效率。(另外Java还有包括GC这种浪费效率的东西,我还没答,面试官就继续发问了)
    leader:和C语言比较一下
    我:C++继承了C语言的优点。效率高就是从C语言那来的。另外它还比C语言增加了面向对象,模板等等这些东西。面向对象多了一层抽象,增加了代码的可读性,也实现了代码复用,可以减少编程的工作量
    leader:说下面向对象的多态
    我:这个多态呢,我理解是有广义和狭义两种认识。广义上来说,重载和模板这种也算多态,属于编译时多态。狭义上来说,动态绑定,比如虚函数啊,子类对象给父类指针赋值啊,这种是运行时的多态。很多地方普遍说多态就单指的是运行时多态。
    leader:动态绑定是虚函数吗?
    我懵了:是吧。。动态绑定就是虚函数实现的吧,它是以虚函数表实现的。
    leader:说说这个虚函数表。。
    我:……我可以画一下吗?
    他说可以。面试的都有一张白纸。我就开始画,然后开始解释。后来它给我举了基类子类的例子让我画。我之前看到过虚表的图的,就画出来了。还给他解释基类里面有一个指针指向这个虚函数表。而这个虚函数表是顺序存储的,不是链式存储的。后来又给了我三个有继承关系的类的对象,让我判断到底调用了谁的函数。还是虚函数问题。
            到此第三次知识延伸结束
    我简历上写着:熟悉TCP/IP协议族,熟悉常用数据结构和算法
    接着对着我的简历说:说说TCP三次握手。
    我啪啪啪解释了一遍这个过程。具体描述就不表了。接着他又诡异的笑了一下:说说为什么是三次,而不是其他的次数。
    我心想这个问题之前学计算机网络课程的时候,考过。当时花了点时间,大致描述出来了。反正就是多次握手,多一次保证吗。但是现在让我答,我没时间一点点的推导了,就说:我描述不好,再画一下吧。我画了三次握手的图,连SYN和ACK都画上了,还有+1。但是也没描述好,他也说我没讲明白。我心想跪了。又问了一下和udp的区别,面向连接什么的。我说不好准确的定义,就是按自己的理解答的。他继续针对我回答的细节继续发问,跟我钻牛角尖。。我是真的无语了。。心凉了。
    接着换下一个问题:说一下快速排序的过程。
    我就给他讲了一下第一趟排序的过程。笔试题面试题很常见的问题。不过他接着问:说一下第二趟。。
    我其实还真没考虑过第二趟,因为平时也不好用代码实现快排。。都是qsort()、sort()。这第二趟,开始卡主了后来推理了一下,也说出来了。关键就是第二次如何选取新的基准,如何进行递归(或循环迭代)。
    leader:恩,那分析一下他的时间复杂度
    我:N*logN。
    leader马上笑了:你这是背下来的。给我分析一下为什么是N*logN。
    我无语中。。大致给他分析了一下,之前确实也没做好快排功课。他再次跟我钻牛角尖,说我哪里没说清楚。。我继续无语。。。
            第四次知识延伸结束(实际上并没有很好地让他继续把问题延伸下去。。囧)
    他说:恩,我十分认可你对书本上内容的记忆能力。但是你虽然记住了这些概念,却没有去挖掘为什么是这样。
    我心想:坏了。该打道回府了,这个评价不怎么高啊。算了,反正很多从南昌来的今天都回去了,我还是也回去吧。但是现在五点多了。还能回南昌吗。要不住一晚再走吧。
    leader:写一段代码吧。统计一棵二叉树中只有一个孩子的结点的个数。
    我问了一下:可以用全局变量吗? 
    他说:不限制
    这个还是很简单的。。啪啪啪就写出来了。给他看了。
    leader:今天就到这里吧,如果有后续面试的话,再通知你。
    我:奥。谢谢。请问多久会有面试结果
    leader:两三天吧。
    我:奥。那我回去了,我从江西来的……
    leader:什么,从江西来的。他看了一眼我的简历:南昌大学。你说你回去了是什么意思?回武汉还是南昌。
    我:南昌啊。
    leader:回南昌?你要是明天面试怎么办。
    我:你不是说两三天吗,如果有二面我再坐动车回来。。
    leader:两三天,两三天也有可能是明天啊
    我愣住了。心想:两三天包括明天么。我说:那我住一晚,明天再走。等等通知。
    leader:我的建议也是住一晚。
    我:。。。。
    --------------------------------------------------------------------------------------------------------------------------------------------------------------
            从leader房间出来,一查微信里的面试状态,果然已经显示到了复试环节。后来晚上收到了复试短信。第二天(15号)下午两点半复试。赶紧开始准备,把一面暴露的问题,整理的了一下。又对之前不太熟悉的内容进行了一下深入的挖掘。因为涉及到很多Linux的问题,我需要亲手在Linux系统上测试才行。但是宾馆里的电脑显然是Windows系统的,幸亏我有一台云主机,虽然好久没登录了,然后我在Windows上下载了一个Xshell,通过ssh远程连接的云主机上。哈哈,我就有Linux系统可以用了,期间各种man,还有各种编码来测试Linux环境编程的几个API,一直到了半夜一点才睡。
            第二天上午又各种整理问题,知识点:linux、TCP、算法等等。下午我到了等候的地方,其实并不紧张,我想不论二面结果如何我都不算输了。能到二面,已经很不错了。
    --------------------------------------------------------------------------------------------------------------------------------------------------------------

    二面:总监

    面试官:先介绍一下自己
    我:我来自XXX………………
    面试官:做过什么项目没有
    我心想:天呐,没有项目经验果然是硬伤啊。一面能混过来,二面恐怕真的要折戟了,都说二面是技术压力面。。没项目经验的我真是难搞。。。
    我就又把安卓做过app谈了一下。
    他当然对安卓不感冒。问:Linux上C/C++做过吗
    我:……没啊。这个这个不怎么好做出项目来。。(呜呜)
            开场白结束……
    面试官:讲一下链表和顺序表的区别
    这个问题很简单。我blablabla。。。关键点就是数据结构本身,以及查询和插入删除的效率。另外还谈谈链表能利用零散内存之类的。
    面试官:C语言的存储区了解吗,说一下堆和栈的区别
    我:堆,malloc的就是堆上的内存啊。函数内部的定义变量,非静态的变量,就是在在栈上啊。而且栈上的内存,在函数结束后会自动释放,而堆不会。并且它们的地址空间的增长方式不同,栈是从高到低,堆是从低到高。
    面试官:如果数据量比较大,那么应该存在堆里还是栈里比较好。
    我:堆啊。栈的空间有限制啊,很容易爆栈啊。
    面试官:你遇到过爆栈吗?什么时候
    我:定义一个比较大的数组,有时间就会提示爆栈
    面试官:编译器提示的吗
    我:恩。还有递归层数太多也会爆栈。
    面试官:栈有最大空间的限制……
    我打断了他:对啊。因为占地址空间的增长方式可以看出,它上面是封顶的嘛
    面试官:……你说说栈允许的最大的空间是多少
    我:……这个没研究过,应该是几兆吧,一兆或两三兆的样子
            语言能力考察完毕
    面试官:奥,不知道是吧。你Linux用的怎么样
    我:还好吧。Ubuntu和CentOS都用过,挺喜欢的。
    面试官:你喜欢用这个系统还是……
    我:开始我是喜欢用这个系统,后来慢慢地开始喜欢上Linux上面的C/C++开发。
    面试官:那你说说socket这个过程。
    这个问题一面我回答过了,不过这次我回答的更好。因为一面结束后我又整理总结了一下。在回答的时候不止单纯地谈函数本身,还穿插一下TCP的三次握手。比如到客户端connect的时候,服务端accpet就会返回一个套接字。这是三次握手就完成了。
    面试官:如果一直没有connect连接,accept这个函数会怎么样
    我:会阻塞啊
    面试官:阻塞肯定是一种不好的现象,那么你有什么办法解决吗
            其实对于这个问题,可选的解决方案有几个,我不知道他问的重点是什么。给套接字设置非阻塞模式可以方式accept阻塞。这是应该不是他问的重点。我想得到的答案应该和高并发有关,比如用信号实现异步,或者使用pthread库的函数实现多线程。但这些我都不熟,我就说:有个IO多路复用(一面结束之后我好好恶补了这个IO复用)
    面试官追问:IO复用你用过吗
    我:……没,但是我有了解过那个函数,比如select、poll和epoll
    面试官:描述一下select这个函数的过程
    然后我就开始边说边比划。。
    我说:比如说你是内核,我是用户进程。select函数有几个参数,写的fd(文件描述符)、读的fd、出错的fd。然后我要一次一次地像你轮询检车这些fd的状态。对了select还有个参数是时间。select它的效率不如epoll高……
    面试官:epoll效率为什么比select高。
    我:epoll是用了回调函数啊,我把fd和回调函数丢给你(内核),然后我不管了,你去检查fd的状态,就绪的时候就执行回调函数,然后再把结果返给我。另外select还有个最大的fd数量限制是1024……
    面试官:那为什么要有这个限制呢
    我:这个……凭我的理解吧。select每次调用都要把fd从用户态复制到内核态,这应该是一个效率很低的操作。那么如果对fd的数量不加以限制的话,这个系统的效率肯定很差。
    (本来我还想接着谈谈epoll的水平触发和边缘触发,但感觉自己恐怕也描述不好,就没提这个。面试官倒也没问。)
            Linux环境编程考察完毕
    面试官:平时编程用什么
    我:gcc啊
    面试官:调试呢
    我:gdb啊。然后写完之后我通过同git保存到github上。
    面试官:如果你想调试一个文件,gcc编译的时候要加什么选项?
    我:-g啊
    面试官:说几个gdb里面的命令
    我:start啊。n和s啊。
    面试官:n和s的区别
    我:s会跳到函数内部,n不会。其他的命令比如disp显示一个变量值、p打印一次变量的值。等等
    面试官:恩,那程序有的时候会出现段错误,你有没有分析过这个错误文件
    我好像看到过,段错误,核心转储会有一个core文件什么的。但我也没分析过啊,就回答:没分析过。。出现段错误,我就改程序去了。。
    面试官:奥。那你Linux里面的常用操作熟练吗
    我:还可以吧。你说的是命令吧
    面试官:那查看当前系统进程有哪些
    我:(。。太基础了)ps aux
    面试官:接着查看进程名中包含abc的
    我:加个grep吧,我写一下。(拿了面前的纸开始写):ps aux|grep -E "*abc*"。你是想查这样字串吗?
    面试官:可以。那这样查找的话,也会把查询的这条grep这条命令本身给显示出来,你能让查询命令的输出不显示这条命令本身吗?
    我去。。前几天才看到过类似的。这么巧就问到了。我接着写:ps aux|grep -E "*[a]bc* 加一个方括号。
    面试官:原理是什么
    我:……原理我倒是没研究过。之前我是查看指定pid的进程的时候,加个方括号就能屏蔽掉grep本身。原理应该是个正则吧,我也说不好(方括号确实是正则,但这个正则如何实现了屏蔽命令本身的功能,我真就不得而知了)
    面试官接着问:继续,统计一下有多少这样的进程
    我疑惑了一下,心想 wc -l是可以统计文件内的行数的,把前面grep的结果写入文件,再用wc -l肯定是可以实现的。但是感觉太low了。这样是两步命令。我又忘记了wc到底支不支持管道。然后我自己念叨:wc -l。。可能不是。。
    这时面试官说:wc -l难道不是统计吗
    我:奥奥奥。(面试官人还是很nice的)经历一点波折,我后来写了出来。ps aux|grep -E "*abc*"|wc -l
            Linux基本操作考察完毕
    面试官:你平时上网做什么
    这个就随便谈了。我:CSDN、github逛地比较多。在CSDN上喜欢写写博客。……………………
    扯了一会CSDN和github
            第一次闲扯结束
    面试官:计算机专业的基础都学了吧,数据库学过吧(心想这样问,恐怕是要问第几范式的问题了吧)
    我:恩。学过
    面试官:用数据库做过东西吗
    我:上课做实验我用的就是MySQL。
    面试官:奥,比如一个表很大,如何提高查询效率
    我脱口而出:拆表
    面试官:除了拆表,这里不考虑拆表。其他方法。
    我也是好久没复习数据库了,竟然说了个”存储过程“
    他说:存储过程能提高查询效率吗??
    我突然恍然大悟:索引啊,建立索引
    面试官:你说说你用过的索引
    我:主键索引、唯一索引。非空……哦不,非空是约束不是索引
    面试官:恩,约束不是索引。你们平时做的东西数据量应该不大吧,也会用到主键索引吗?为什么
    我:会用到啊,用主键这是一种规范吧。每次都会写primary key的。
    面试官:那你说说索引为什么能提高查询效率。
    我:索引是用了哈希(hash)吧
    面试官:索引是hash实现的吗??
    我楞了,好久没研究数据库了,觉的是hash啊。突然想起了mysql里面可以手动选择索引类型的有hash和B+树
    我就说:不对啊,索引它有两个方式啊。hash是一种,另外还有B树/B+树。
    面试官:说说B树和B+树的区别
    我……这个只有大概印象,简单敷衍了一下。
    面试官:不记得了是吧。那说一下hash的时候处理冲突的方法
    我:拉链法啊,开放定址法啊。开放定址里面有什么线性探查法啊、平方法啊之类的
             数据库考察完毕(涉及算法和数据结构)
    面试官:排序算法你熟吗。说一说
    我:常用的有七个吧:冒泡、插入、选择、快排、归并、堆排序,另外还有个希尔排序
    面试官:时间效率最高的是哪些算法
    我:快速排序、归并排序、堆排序。它们的时间复杂度是 N*logN
    面试官:描述一下快排。
    。。又是快排。这是比一面的时候说的要好一点。吃一堑长一智嘛。面试官对我的回答也表示赞同。
    面试官:你拿纸写一下,给你两个整型变量,在不引入第三个变量的时候去交换它们的值。
    这个简单,我说:异或啊
    面试官:写下来
    我啪啪啪写了出来:
    [cpp] view plain copy
     
    1. a = a^b;  
    2. b = a^b;  
    3. a = a^b;  
    面试官这时候说了一句话:你做过这方面训练是么。。
    我不知道他说的这方面是哪方面,指的是整个面试还是说位操作啊。我不知如何回应,就说:我之前有看过这个
    面试官:还有一种方法是用加法实现的,你会吗
    我:加法?有点……印象
    面试官:这个没看过了吧
    我:等会,我推导一下也能写出来
    然后就简单推导了一下,写了出来:
    [cpp] view plain copy
     
    1. a = a + b;  
    2. b = a - b;  
    3. a = a - b;  
    面试官:这两个哪一个好
    我:第一个啊。异或效率更高啊
    面试官:不考虑效率问题,第二种实现还有一个问题,你知道吗
    我:会溢出吧
    面试官:第一步加法的时候,是吧。所以实际我们使用的时候还是采用第一种方案。
    我:恩
            算法提问完毕
    面试官:你们什么时候放假
    我:……大概七月中下旬(我感觉是这个时候,不过面试完我查看校历是7月9号)
    面试官:实习时间很短啊
    我:一个多月吧
    面试官:不到一个月
    我:……(感觉不妙啊,他们肯定希望实现时间越久越好)
    面试官:你们大四有时间啊
    我:有啊。
    面试官:学校让你们出来实习吗
    我:不限制啊。可以实习。请问可以从暑假到大四一直连着实习吗
    面试官:我们公司非常鼓励这种行为啊
    我……(果然是廉价劳动力啊)
    我简历上写了意向事业群是TEG。他就问我是不是冲着TEG来的。我说也不是啊。其他的事业群也可以,只要不是让我做移动端就行啦。他说:那肯定不会,肯定是做后台。
            第二次闲扯结束(后来知道他不是TEG的,是CDG的,而我最后被录到了他的部门)
    接下来有点冷场,貌似没什么可说的了。接着他又说:那这样,再问个问题。比如一个班级有50个学生,求至少两个人生日相同的概率
    想了一会确实不会。。
    他说:再想想,说个思路也好。
    我:……不会。概率学的不好
    心想。大风大浪都过来了,最后竟然是概率题,难道在概率这里折戟?
            后来面试完,百度了一下才发现。其实很简单的。只要求它的逆命题(所有人生日都不相同的概率)再用1去减掉就行了。再见
    面试官:那你写一个链表逆置的代码,写关键部分就行了
    。。没想到会考链表这么low。没准备链表,倒是准备了二叉树。细节记不准确了,写的时候涂涂改改,不过后来也写出来了。
            编码能力考察完毕
    这时候时间也差不多了,我该走了。又问了一下他复试结果什么时候出,他说一两天吧。
    我说我明天可能回去了(我感觉二面过的几率不怎么大,毕竟有些题目还是没打出来,比如概率题,还有B/B+树)
    面试官:那如果面试你能赶过来吗
    我:可以吧。南昌到武汉动车大概三个小时。车站到这里不到一个小时。如果你们是下午面试的话,我上午过来,还是赶得及的。
    面试官:这个具体面试时间是系统发的,不确定。不知道他们HR……那这样,如果你到时候赶不过来,一定要和HR联系。
    我:恩……
    --------------------------------------------------------------------------------------------------------------------------------------------------------------
            心想。。我哪里知道什么HR的电话啊。但我也没敢问。后来所幸的是,一出酒店用微信查状态就看到进入HR面试环节了。晚上就收到了短信,通知16号上午十点半面试。总的来说,二面并不算技术压力面,依据基础。
    --------------------------------------------------------------------------------------------------------------------------------------------------------------

    三面:HR

            HR面其实都是扯淡。一切问题都是纸老虎。HR一般没有刷人权力。虽然有人在HR面之后也会挂掉,但这并不是HR刷的。据我的了解是在三次面试结束之后,HR要和前面两个面试官对你进行综合的评价,然后再进行排序,择优录取。当然了其实面了HR之后挂掉的我感觉真的不多。前两面很重要,一面的leader就是你以后的leader,二面的总监也基本上是你以后的总监。之所以为什么被调剂,实际上有时候面试你的面试官是随机分配的,虽然在网申的时候有让你填写意向的BG(事业群),但实际上并不一定是这个BG的人来面你。
            十点半进去面试,十一点出来。我就直奔武昌火车站了。手机买好了票,下午三点开,在车站坐了蛮久,七点多到南昌(这车还算快)。没买动车,买的普通车硬座。因为来一次武汉交通住宿都花了蛮多钱了,不过这是投资,还算值得。
     
    --------------------------------------------------------------------------------------------------------------------------------------------------------------
            后来等了8天之后(4月24号)下午终于接到了录用的电话。在这8天里也是经历了各种心里上的煎熬,从查询微信状态开始,到后来看到别人陆续接到电话,自己也是不淡定的很。期间在等offer群里各种水,和大家群聊也算是煎熬的一周里最好的慰藉了。
    --------------------------------------------------------------------------------------------------------------------------------------------------------------
     
    http://blog.csdn.net/guodongxiaren/article/details/45116075
  • 相关阅读:
    eclipse常用的快捷键
    如何保留小数点后N位?
    EditText设置/隐藏光标位置、选中文本和获取/清除焦点(转)
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常(转)
    STL优先队列 hdu1896
    工作排序问题 poj2376
    STL存储邻接表
    二叉树的遍历
    快速排序
    并查集 并查集来判断是否存在环路
  • 原文地址:https://www.cnblogs.com/findumars/p/7252619.html
Copyright © 2011-2022 走看看