贝壳offer还愿贴
特前来还愿结束本次秋招,有点激动! 淳儿姐姐,谢谢你!
=,= 刚才阿里的笔试在接到电话之后直接叉了,有点翻身农民把歌唱的感觉, shuang!
附上本轮的三次面经(c++)
1轮技术面:
(1)自我介绍;
(2)我们先来个算法题热热身吧: bbaa, 删除字符串中所有出现的ba, 比如删除中间的ba又会出现一个,所以结果为“ ”,想了大概20秒,
写了个0(n2)的,每次找到之后从头遍历, 问面试官需不需要优化,其实优化的话,无非是移动位置不从头开始,面试官看了代码说,你就说说就可以了, 不需要实际写了;
(3)接着问了项目(类似于微信的IM通讯工具)相关的问题, php相关的,以及后台一些小问题记不太清了;
(4)由上个项目讲到了b+树的问题,无非就是b,b+树的区别,innodb的存储引擎为什么选用b+tree;(个人觉得这个问题只要准备了都可以回答的很好),关于索引优化的问题,
什么时候需要添加索引;
(5)接着简历上由于写了review过levelDB源码,介绍一下levelDB吧; 然后把levelDB的架构以及一些使用到的一些数据结构一顿BB,这里给自己挖坑了;
面试官问,skiplist,levelDB为什么选用skiplist做索引(嘿嘿这个问题想知道的小伙伴可以@),然后由此我聊到了levelDB 使用的lms tree以及为什么levelDB适用于写多读少的问题
,讲了随机读取与顺序读取的区别,这里又给自己挖坑了。。。面试官问,为什么mysql不像levelDB这样做把连续数据存在连续页,并且不使用像levelDB这样的skiplist做索引,或者说基于此
做一些拓展呢?我说我想想,(其实我想回答的设计里面的不同,可能mysql为了支持复杂的serach insert操作所以如此)面试官微笑着说不用了,下一个吧。。。果然预期所想会问到你答不上来
为止。
(6) 打开了我的git hub的地址,指着我写的模块,问了一些问题,我写了一个kamaili module的 json_rpc,说说为什么写这个, 写的时候有哪些问题, 怎么解决的,我就把包括为什么写,怎么写
怎么调的BB了一遍(附带了一句,其实写这个module是被逼的,自带的jsonrpc 有问题,找了一周才定位到问题,并且发现这个问题是连锁的,因为module本身调用了别的模块,在此基础上改很痛苦,
所以造轮子了,如果直接可以用,追求项目进度谁想自己造轮子呢,就不会改别人的 module了),面试官会心一笑说我懂的形式所逼吗理解。
(7) 你还有什么想问我的? 我进入下一轮了么,
面试官: 嘿嘿嘿,不知道。
我: 慌的1b。 (一轮被刷也太难看了。)
附:
菜鸡就不把git hub 地址贴出来了, sip服务器估计 99%现在也不用了, kamailio 100%人听都没听过,c/c++多写写,多调调我觉得代码水平是有进步的;
如果真有想要的,那加个微信吧,最好自己有自己小作品的。
2轮技术面:
一开始面试官在睡觉,过了2min 醒了,相互礼貌的笑了笑, 面的累了吧我心里想,面试官 说等久了吧,我说没,才到,然后开始;
( 1 ) 自我介绍
( 2 ) 写个冒泡排序吧,其实问到这个问题的时候我慌的一B,我心想怎么能写这么简单的代码。。。
然后就写了个泛型的,算是在力所能力的范围内展示自己吧;
大概如下:
int Compare(const void* a, const void* b) {return *(int*)a - *(int*)b};
typedef int(*Cmp)(const void* a, const void* b);
template<class T>
void Sort(T* input, int size, Cmp cmp = Compare){
if(input == nullptr || size<=0) return ;
....................
........................
}
然后面试官说,不错代码写的很漂亮,。。(我心想这么简单的在写不漂亮。。。能行吗,怕不是写完就凉了);
3, 面试官: 我看你简历上,自己能写shell, 我说懂一点,然后问了我一些指令, 查找当前 8080端口被哪个进程占用找出来;
我记得当时写的是 netstat -lnp | grep 8080, 面试官问为什么netstat这个指令需要-lnp,我说用习惯了,你具体让我说每一个意义我没记过,因为我在写代码看服务器的连接状态时候老是用的netstat -lnp;
面试官:好吧。这样我出个情景题你写一下吧,现在一个文件a里面分别有a1 ,b1 ,c1三个子文件夹,这三个文件夹下分别有若干文件为 atext1 atext2.. btext1 ......ctext1...把这些文件移动到a的平行文件夹b下,并且更改
名字为batext1, ......bbtext1......bctext1,..我想了大概一分钟整理了下思路,说用数组存放ls 的 的结果然后 mv 。。。。。。不知道当时脑子怎么抽的没想到 | 管道的,想抽自己,然后面试官指出了 ,说能看出来一对一些基本指令掌握
还是有的,我说平时linux下工作习惯了,让后正常写的shell部署就是 平凑指令,然后加sed更改一些配置文件;
4. 面试官: 看你简历上写了unix网络编程熟练掌握,写的 不少了吧, 我说还行, 平时写的项目写的 有一点, 那随便问一个bind的三个参数,分别什么意思。。。这里有个小插曲不方便透露,面试官和我尴尬一笑,然后跳过了。。。
然后问了写的一个c/s的转发系统,让我介绍下,抓住机会当然不能放,这是我最擅长的,我就把写包括调过程以及网络编程中tcp使用中会遇到的一些问题,比如粘包,如何从协议层解决,其次把我转发系统,在应用层多径的意义,以及会
面临到的一些问题介绍了一遍,个人觉得这是我最在行的,因为本身是熟悉sip,对协议这一块还是有自己的理解的,包括聊到了tcp的拥塞控制,以及上升到应用层多径时候回遇到的一些问题,以及tcp本身的机制在当前的网络上所存在的一些局 限性,这可能是回答的最好的一块;
5. 介绍一下你最最得意的一个项目吧:我把最近实验室做的一个会议系统的demo说了, 包括一些kamailio module的编写与设计以及这个系统的意义,主要是围绕着实验室大研究方向一些理论与算法的检验平台不是让算法只跑在虚拟的平台上,而是做了这个系统实验室的诸多想法,包括实时视频的一些图像处理算法可以直接拿这个平台来验证等等,个人觉得由于做的多了这也是回答的较好的一块。
6. 面试官:对了最后还问了php封webservice的一些东西,包括php本身连接mysql用到的.so叫什么名字,你们项目的数据表怎么构建的,这一块回答的一般般,就不说了。
7. 面试官:你最近有在读什么书呢?
我说: 1. apue (为了对一些细节的问题有更好的掌握,挑着喜欢的部分细读了)
2. tlpi
3. 深入理解计算机操作系统(就是最出名的那本,看了中文版的,主要挑了链接还有虚拟内存等一些章节看了,对程序的运行构建理解又不一样了,感觉学到了很多,包括实际项目makefile的编写问题);
4, mysql innodb引擎内幕 (这本书,是带着读的,有时候写代码写累了就翻着看看,觉得也很有收获)。
5. 还有一些分布式系统相关的资料
8. 面试官似乎有点惊讶, 可能我说的有点多, 我说秋招的实习老师不让走, 带着写代码的时候就学习了, 有的书籍只是挑着章节在看, 我不喜欢无理由的从头看一本书, 我喜欢带着问题找相应的章节看, 就像深入理解计算机操作系统
的前几章,计算机的流水线那一套可能没事会翻翻,不太会看;
9. 面试官:你有什么问题想问我?
我想听听您对我的评价,以及对我以后学习的一些建议,我觉得挺受用的,包括我现在做的一些系统太薄了,东西用的适合企业版的一样,但用的方式不太对,在实际生产运营中会有很多问题,(我不停点头附和),包括聊了作为技术员的一些技术格局问题,还有一些忘了。
二面觉得面的还行,除了那个冒泡被问的感觉凉了,其它还好,结果上楼才坐下就到三面了;
3 hr面:
三面的hr姐姐,真的是很美,(不仅仅是因为到了hr面,)客观评价我觉得是我见到目前为止就长相来说可以到我数据库的top3。(之所以这么排名因为不知道hr姐姐到底有多高而已)
1. 自我介绍
2. 小姐姐:你内向,看的出来,那团队合作咋办呢?
我: 其实我一和别人聊技术,比如算法,比如架构,比如遇到的一些问题就贼带劲,只是不喜欢一些无关的交流。
3. 看了你简历,参加过高数竞赛?
嗯
为什么?
想看看自己当时水平(毕竟本科不好),还有为了以后的考研吧,我说从大一开始就想考了。
4. 参加过单片机竞赛,为什么参加呢?
我: 当时才学过c语言单片机,觉得很有意思吧,还有其实比较喜欢写代码.(其实不算违心的回答)
5. 为什么来贝壳?
技术氛围好呗,学姐推荐,老人新人之间的交流学习氛围很好。(这个倒是真的挺多人说的)
6. 工作地点
只要工作氛围好, 能学到技术, 能对自己进步,地点我是不挑的,甚至于工资吧,因为自身实力才是我自己的筹码。(两人会心一笑)。
7. 你最优成就感的事情
其实每次把代码写出来,并得到结果,包括单片机竞赛,包括实验室写的一些项目,就是感觉特别爽。(这应该是大多数喜欢coding的人都深有体会的吧)
8 你有什么想问我的
如果进去分到哪?
贝壳的工作的一些价值观问题。
面试官: 不问问薪资么?
我: 有点尴尬,笑了笑, 凑合就行, 我主要还是看在这里自己能成长到什么地步。(或违心,或不违心吧)。
附:其实准备了那么多c++的基本知识,或多线程,或stl,或操作系统一些相关的知识,其实都没有被问到!
最后补充一句:
最近的两个hr面,只能和你们说88了, 贝壳我是去定了。(不过既然时间约了,还是走下流程吧,毕竟今天放了一次鸽子,总感觉良心作痛,
在没有offer时候的心态和现在得到之后真是不可言状,所以对不起了,亲,去贝壳,去贝壳, 待遇,嘿嘿嘿,真是没得说。)
最后的最后:
十年饮冰, 难凉热血,秋招的路上或许被一次又一次的血虐过,或被羞辱(wy),或被同情(xxx),但是我们都还是走过来了,始终向着最终的理想offer,夜以继日的拼搏着, 或许下一个转身,等待你的就是那个
你魂牵梦萦的offer, 所有小伙伴加油!
最后的最后的最后:
有offer的都别秀了,该发面经的发面经,就知道秀也不发面经,还不快滚。
。。。嗯, 我先滚为敬!
以后专心写项目代码,写毕业设计了!