宇视科技C/C++软件开发岗位校招面试过程
标签(空格分隔):
一、笔试
1、先做笔试,具体题目我也不是很清楚,不知道什么运气让我抽中了面试直通卡,直接免笔试。
二、一面(技术面)
1、早上9:30开始到10:10结束,面试过程还算顺利。由于是第一次视频面试,没有什么经验。面试官叫我手写题目的时候有些慌了,我他喵忘记准备笔和纸了。好在面试官人很nice,等我一会哈哈。 2、传统规矩,上来先来个大概的自我介绍,完事之后介绍一下你其中一个项目经历以及其中涉及的技术难点,注意,这个问题其实你是可以从被动变主动的,你可以引导面试官到你擅长的领域,像我介绍了自己做过的一个聊天软件的项目,其中用到了网络编程、tcp/udp协议,面试官接着就问我了tcp、udp协议有何区别,以及简述以下三次握手的过程,这东西只要你事先有准备,还能答不上来不成,这个问题也就过了。 3、聊完项目,接着写几个东西来看看吧。 第一个问题:请你手写一下C语言中strcmp()的函数实现。当时我有点懵,还没认真想过这个问题,不过还是写出来了。下面是我给出的答案:
int my_strcmp(const char* src1, const char* src2) {
assert(src1 && src2);
while (*src1) {
if (*src1 > *src2) return 1;
if (*src1 < *src2) return -1;
if (*src1++ == *src2++) continue;
}
if (!(*src1||*src2)) {
return 0;
}
if (*src1 == 0 && *src2 != 0) {
return -1;
}
}
第二个问题:写一下双向链表插入节点的具体实现,这个问题还算简单,也没有规定那种插入方式嘛,所以随便写了一个,写的比较快:
bool DbListInsert_back(DbLinkList* &L, int data) {
if (!L || !node) return false;
DbLinkList* last = L;
while (last->next) last = last->next;
DbLinkList* node = new DbLinkList;
node->data = data;
node->next = NULL;
node->prev = last;
last->next = node;
return true;
}
在写的过程中面试官也会穿插问你一些问题,比如C语言中的内存分布,谈谈static关键字的作用等等。在这里告诉大家,你本科期间的学习成绩在你的面试过程中还是会其一定的作用的,这是你给面试官的第一影响,我的绩点还算不错,而且也没有挂科记录,所以面试官也没有什么可以追问的点,这不就变得主动起来了吗。
4、就这样,这一面就大概这个样子。 反问:由于面试过程比较顺利,面试官给的反馈也比较好,我就没有问其他的问题,就问什么时候能够知道面试结果,面试官也给出答复可以确定能够进入下一轮,我以为这就结束了,太天真了哈哈哈。
三、二面hr面
一面结束的时间是10:10左右,结果过一会负责人就联系我11:00是否方便进行下一轮的面试,我直接懵逼,不过经过第一轮的面试内心放松了许多,没有那么紧张了。 面试开始: 1、hr是个小姐姐,人很友好,看你项目经历上面写了挺多,请你聊一下其中一个你觉得最有价值和意义的项目。 这个问题不能单纯说一些技术类的话语,要重点突出你确实从这个项目中获得什么,学习到了什么,或者踩过那些坑,造成什么样的后果。
2、还是看你的成绩单,问你一些问题,比如你的成绩比较好,她可能就会问到有没有过考研的打算,有过挂科记录的,要事先准备好自己的理由,以免问到时回答不出来,给hr留下不好的印象。总一,就是要让hr觉得你很有自己的想法就对了。
3、再后面就问到一些个人优缺点,评价一下自己大学四年的生活等等啊,最后面说一下期望的薪资是多少。
面试的过程也基本结束。 反问:二面也比较顺利,中间没有出现尴尬的情况,应该还是有把握进入终面,就只问到了大概什么时候能知道面试结果:给的回复是本周内。
以上就是一二面的总体情况,我本人是电气工程及其自动化的,投递的岗位是C/C++软件工程师,面试官并不会因为你的专业问题而对你区别对待,比如问一些比较简单的问题、或是比较难的问题,说到底,真金不怕火炼,该过的还是能过,放平心态就好。
|