Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2015腾讯暑期实习武汉站面试经历 #16

Open
guodongxiaren opened this issue Apr 21, 2018 · 3 comments
Open

2015腾讯暑期实习武汉站面试经历 #16

guodongxiaren opened this issue Apr 21, 2018 · 3 comments
Labels
编程往事 学习,工作,成长,思考的心路历程

Comments

@guodongxiaren
Copy link
Owner

guodongxiaren commented Apr 21, 2018

原写作时间 2015-04-24

不得不吐槽一下腾讯的面试短信。在面试前一天(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》那本书没看多少。。)

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里面的常用操作熟练吗?

我:还可以吧。你说的是命令吧。

面试官:那查看当前系统进程有哪些。

我:(内心OS:太基础了)ps aux

面试官:接着查看进程名中包含abc的。

我:加个grep吧,我写一下。(拿了面前的纸开始写):ps aux|grep -E "*abc*"。你是想查这样字串吗?

面试官:可以。那这样查找的话,也会把查询的这条grep这条命令本身给显示出来,你能让查询命令的输出不显示这条命令本身吗?

我去……前几天才看到过类似的。这么巧就问到了。我接着写:ps aux|grep -E "*[a]bc*" 加一个方括号。

面试官:原理是什么?

我:……原理我倒是没研究过。之前我是查看指定pid的进程的时候,加个方括号就能屏蔽掉grep本身。原理应该是个正则吧,我也说不好(方括号确实是正则,但这个正则如何实现了屏蔽命令本身的功能,我真就不得而知了。其实另外一个合理的解答是适应 -v 选项过滤掉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。

面试官:描述一下快排。

又是快排。这是比一面的时候说的要好一点。吃一堑长一智嘛。面试官对我的回答也表示赞同。

面试官:你拿纸写一下,给你两个整型变量,在不引入第三个变量的时候去交换它们的值。

这个简单,我说:异或啊。

面试官:写下来。

我啪啪啪写了出来:

a = a^b;  
b = a^b;  
a = a^b;  

面试官这时候说了一句话:你做过这方面训练是么?

我不知道他说的这方面是哪方面,指的是刷面试题?还是说位操作啊。我不知如何回应,就说:我之前有看过这个。

面试官:还有一种方法是用加法实现的,你会吗?

我:加法。有点……印象。

面试官:这个没看过了吧。

我:等会,我推导一下也能写出来。

然后就简单推导了一下,写了出来:

a = a + b;  
b = a - b;  
a = a - b;  

面试官:这两个哪一个好?

我:第一个啊。异或效率更高啊。

面试官:不考虑效率问题,第二种实现还有一个问题,你知道吗?

我:会溢出吧。

面试官:第一步加法的时候,是吧。所以实际我们使用的时候还是采用第一种方案。

我:恩。

        算法提问完毕

面试官:你们什么时候放假?

我:……大概七月中下旬。

面试官:实习时间很短啊!

我:一个多月吧。

面试官:不到一个月。

内心OS:感觉不妙啊,他们肯定希望实现时间越久越好

面试官:你们大四有时间吗?

我:有啊。

面试官:学校让你们出来实习吗?

我:不限制啊。可以实习。请问可以从暑假到大四一直连着实习吗?

面试官:我们公司非常鼓励这种行为啊!

内心OS:……果然是廉价劳动力

我简历上写了意向事业群是TEG。他就问我是不是冲着TEG来的。我说也不是啊。其他的事业群也可以,只要不是让我做移动端就行啦。他说:那肯定不会,肯定是做后台。

        第二次闲扯结束(后来知道他不是TEG的,是CDG的,而我最后被录到了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群里各种水,和大家群聊也算是煎熬的一周里最好的慰藉了。

后记

2018.4.21
如果把大学生活,比作一幕戏剧的话,那这三天的面试经历,真的算是大结局之前的高潮了。感谢当年那个虽懵懂但不惧世俗,顽强拼搏的自己。

@guodongxiaren guodongxiaren added the 编程往事 学习,工作,成长,思考的心路历程 label Apr 21, 2018
@wangjinxin613
Copy link

面试这么难的吗

@guodongxiaren
Copy link
Owner Author

@wangjinxin613 哈哈。还好,术业有专攻而已,腾讯的技术栈要求和其他的公司不太一样。

@wangjinxin613
Copy link

大佬,可以加个微信交流一下吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
编程往事 学习,工作,成长,思考的心路历程
Projects
None yet
Development

No branches or pull requests

2 participants