某公司软件特战队面试复盘

面过了菊厂的数通部门,但是因为全球疫情的缘故,菊厂正常 招审批暂时关闭了,一时半会拿不到Offer。所以菊厂的那兄弟建议我走软件特战队部门,目前只有这个口子是开的。

第一次我拒掉了,主要是平时刷题不多,遇到个BFS,DFS,DP之类的很容易就凉了。拒掉之后我找回我尘封已经的leetcode账 ,开始刷题,想各种类型的刷几道之后再找他,结果一周之后,他又跟我说建议我试试,如果这个凉了,那个继续等也没有问题。想了想,早晚得死,万一成功了呢!遂答应下来。

软件特战队这个部门属于技术面,只有两面。面过之后直接到对应的部门去。

第一个面试官,给我一个题,4k内存池管理,刚开始看到题,看了看给的接口,一脸懵逼,因为内存池管理一般都是这种样式

// G-PP —> |MEM_POOL_S|MEM_POOL_S|MEM_POOL_S|MEM_POOL_S|MEM_POOL_S|…|

            //     |size1      |size2   | size3      |size4    |size5

            //   BLOCK->    BLOCK->     BLOCK->   BLOCK->    BLOCK->

            //   BLOCK->    BLOCK->     BLOCK->   BLOCK->    BLOCK->

            //   BLOCK->    BLOCK->     BLOCK->   BLOCK->    BLOCK->

            //   BLOCK->    BLOCK->     BLOCK->   BLOCK->    BLOCK->

            //   BLOCK->    BLOCK->     BLOCK->   BLOCK->    BLOCK->

            //   NULL       NULL        NULL      NULL       NULL

但是他给了几个接口:

int BM_FreeBlock(void *mem)

void *BM_AllocBlock(MEMPOOL_HANDLE_T memPool, int blockNum)

MEMPOOL_HANDLE_T BM_CreatePool(int blockNum)

main函数如下:

blkHandle = BM_CreatePool(MEM_POOL_SIZE);

ptr = BM_AllocBlock(blkHandle, MEM_POOL_ALLOC_SIZE)

(void)memset(ptr, 0, (MEM_POOL_ALLOC_SIZE * MEM_BLK_SIZE));

ret = BM_FreeBlock(ptr);

通过main函数看,可以申请任意长度的内存,那么内存一定是连续的,malloc的时候还讲handle传入了,free的时候却没有传,所以内存的长度,大小,都要记录在分配出的内存里面,于是写了半小时,准备交卷的时候,他跟我商量了一把,给了我一些指点

[][][][][][][][][][][][][][][][][][][][] 内存

[][][][][][][][][][][][][][][][][][][][] 管理块 一一对应,然后地址池设置为全局的(关键,这儿如果看了allocBlock之后容易误解不能搞成全局的)

代码就不放了。。

 

这个面试官很和气,很有耐心。细细的给我过代码,有什么缺点都直接讲出来。

说:不考你们算法题,那东西不是专门做算法的,不常用很容易忘,而这道内存管理考察点比较全面,比较能见编程能力。

第一轮面试过了,hr约第二轮面试。

感觉第二轮面试也差不多,所以就没有这么紧张,应下了第二天晚上的面试。

 

第二个面试官,刚开始感觉还好,让做了个自我介绍:然后给了一道题:求一个字符串的最长回文串,45分钟。见到这道题第一想法是中心分散法(我自己这么叫)遍历每一个字符,然后以此为基准向左向右判断是否相等(忽略了一种情况abba这种不以字母为中心的回文),45分钟内aba这种搞定了,abba这种最初没想到,笔试挂了。但是让人生气的是,这哥们竟然说我的想法不对的,我真是服了。

笔试完成之后,开始面试,一共问了几个问题:

1、C语言有哪些常用的算法答BFS,DFS,DP,贪心等,他期望听到的是,冒泡,快排,选择排序等。

2、介绍一下你们项目的运行原理得我一脸懵逼,啰嗦了很久原来他是想听项目架构。

3、项目管理过程中最重要的是什么个因为我负责带项目并且负责一大部分代码的写作,所以就讲了讲培训新人,代码review,测试注意事项等。结果他说,项目中最重要的不是对人的管理吗我去,您这也太高端了,可能是我层第有点低了

4、一个项目如何确保交付质量从软件开发角度说了一下。他不可置否,我忘记了他的回应是什么。

5、怎样定义一个软件是好软件(或者是什么样的代码才是好代码)根据平时的工作经验回答:可维护性(不能一出问题就加调试),可扩展性,前后版本兼容性(ISSU)。他没说什么

 

十几分钟后,问我有什么想问的,我一看,凉了,不过我也无所谓了,感觉这哥们层次太高,摊上这种面试官也没办法。

一会跟hr联系果然,直接说我笔试没过。。

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月12日
下一篇 2020年3月12日

相关推荐