电话面
时间:30min
早上接到百度一面电话之后,刚出实验室们,就收到了CVTE的电话面。最近一直在忙数学建模的事情,笔试和面试都是抽空进行的,卑微的渣硕。现在只能回忆一下。
C++方面
- C++11的特性知道哪些?说一下
- C++中的内存布局?静态变量的作用,为什么要有静态变量?当时答的时候静态变量这块没有回答好,BSS段和数据段有些混淆
- C++中的struct和class之间的区别有啥?
- 知道哪些智能指针?简单说下原理和应用场景,尽量能够多说些
- C++中多态是怎么实现的?以及实现的原理
- 虚表指针的内存布局?
网络方面
- TCP为什么三次握手?这块我答得不好就说是为了应付复杂的网络情况。
- 对HTTP了解多少?常用的方法有些啥?
- 能讲出HTPPS实现的细节吗?这块确实忘记了
- 说说什么是对称加密?什么是非对称加密?对称加密和非对称加密的区别是啥?
- TCP和UDP的区别?
数据库
问了数据库,不会哦,面试官就没有再往下问了
项目
我的项目是miniftp,用C语言写的,用到了linux下的一些API。问项目基本就是和操作系统一起问的。
- 简单介绍下项目?
- 多进程和多线程的区别?你为什么使用多进程模型来做项目
- 服务器要是主动断开的话,你的程序是怎么设计的
- 采用多进程模型?如果系统资源耗尽怎么办?
总结:自己答得不好的地方,都加粗了。数据库这块短板得补起来,项目这块还是得继续深挖。
一面
电话面试三天之后,约了视频面。面试官提前和我沟通了时间,感觉还是蛮不错的。
时间:50分钟
一面真就全程都是项目,大概聊了45分钟的项目吧,然后最后的五六分钟写了个atoi,感谢面试官手下留情。可能是之前聊天聊得比较嗨吧,给我挑了个简单的题。还有如果能够会一些设计模式方面的东西就更好了,还有就是会问一些项目的规划的一些问题。
- 简单的自我介绍
- 介绍一下自己做的项目,你为什么要做这个项目
- 项目中的鉴权登录是怎么实现的?
- 为什么采用多进程模型
- 文件传输限速的功能具体是怎么实现的?
- 用户鉴权登录的时候,加密是怎么实现的,用了什么加密的方式?
- 多进程和多线程的区别?
- 用的什么编译工具?你自己还了解什么可以用来编译的工具
- 介绍一下自己在开发的时候?流程是怎么样的,项目主要都有哪些模块组成?各部分的功能都有哪些?开发的时候具体是怎么测试的?
- 介绍一下自己项目的亮点有哪些?
- 这个续载和续传的功能是怎么实现的?
- 为什么要做权限提升?因为ftp有主被动模式的区别,具体是怎么实现权限提升的?
项目方面还是问的挺细的,只要你简历上写的东西都会问到?有一点需要提醒的是cvte的面试是在mindlinker上进行的,建议提前注册调试好设备。我就是注册的时候,扫码扫不出来,还是有些慌的。
项目问完之后面试官比较满意吧,笑着说找个题让我做一下,然后就给了个atoi。估计后面的面试就要来真的啦。
最后的面试官还提出了一些建议,让我去多了解一下软件工程的东西,比如设计模式什么的?还建议我可以不要和C++绑定的那么死,可以试着了解下其他语言,不要拘泥于语言方面。问我还会些啥?
matlab,单片机,FPGA都会一些,建议把自己的优势都展现出来吧。还有就是作为非科班出身,一个项目真的不够啊,奈何其他项目都是拿不出手的项目。建议还是准备两个项目为宜,一定要搞的透透的。
面试完了之后就来了二面的约面试邮件,继续努力吧。希望最后会有好的结果。