网易2017实习生招聘面试经历
网易面试经历总结:
面试是在杭州网易大厦进行的,面试的职位是C++开发工程师(网易杭州)-杭州研究院-公共技术
有些问题可能不是太准确,但是大概是那个意思。
一面:
1. 自我介绍
技术面的自我介绍不用说得太复杂,简单介绍一下就好。
2. 项目经历
介绍自己做的东西,这个在网易面试里面占了主要成分。
每个人的项目肯定都是不一样的,但是自己做的东西,每一个细节都必须了解清楚。
3. 基础知识
3.1 信号
- 键盘上按了ctrl+c或者是ctrl+z有什么作用?
- 9(SIGKILL)和15(SIGTERM)有什么区别?
- 接收到信号9,进程做哪些处理?
- 你可不可以实现自己的信号处理函数?那你可不可以实现一个类似信号9的处理函数,然后让进程收到信号9之后,使用你的处理函数?
3.2 文件描述符
- 你知道文件描述符吗?简单介绍一下
- stdin,stdout和stderr(进程共用文件描述符吗)
- 打开或关闭文件描述符
- 进程如何打开新的文件描述符
- 输入输出重定向
3.3 TCP
- tcp和udp的联系和区别
- tcp的3次🤝,序号是怎么样的
- tcp连接超时之后会怎么样
- 连接超时时间设置为2ttl合适吗
- tcp一方接收到reset报文会如何
3.5 析构函数
- 析构函数中能否抛出异常?
3.6 数据库
- 隔离级别
3.7 线程
- 如何实现一个线程池?(大概是这个意思)
4. 面试者提问
最好能够提前想一些问题
二面:
二面比较短,据面试官说,他并不是搞c++这个方向的,也被拉过来面试
1. 自我介绍
2. 面试官提问
2.1 项目管理
- svn和git的区别
- 中心服务器挂了,代码会不会丢失
2.2 网络
- TCP和UDP的区别
- TCP如何保证数据的正确性?(超时重传)
- 如果服务器挂掉了,客户端怎么知道?它那边还会一直发包吗?
2.3 Linux
- Linux下用过哪些监控系统性能的工具
- 你们项目是肉眼运维吗?
2.4 多线程
- 举例说明你用到多线程的一个场景,并说明是如何做线程同步的
3. 面试者提问
企业和学校做项目的最大区别在哪?能否给应届生一些建议
--> 多考虑系统的一些东西,比如说数据落地,异常处理。
--> 基础知识要牢固,比如说tcp/ip的具体知识,硬件知识等等,这样出现问题的时候,你才能够更快的定位到问题出在哪儿
三面
1. 自我介绍
2. 介绍项目
- 首先让我介绍了我们系统(我的项目东西比较偏系统一点)的系统架构
- 然后让我介绍了我所负责的内容
- 最后主要讨论了分布式数据库中副本的处理的一些方式问题,以及发生异常情况下,如server宕机,server重新上线,数据库的一些处理流程。
2.1 系统实践
下面是一些具体的内容:
- 副本是怎么来的,是基线服务器直接拷贝然后分发的吗?(我介绍了系统的负载均衡的策略)
- 基线服务器发生宕机之后,副本丢了,系统是怎么处理的?
- 如果系统正在执行服务器宕机后的处理流程时,这台服务器又重新上线了,这时候会怎么样?
- 增量服务器是单点的吗?那它如何保证可用性?
- 你能说一下,你们做的数据库里面,是怎么删除过期的数据的吗?
- 你了解脏读和幻读吗,你们是怎么解决这些问题的?
2.2 总结
三面跟一面虽然都谈到了项目,但是明显感觉到三面到面试官关注的点明显更加偏实际应用,也就是说这些问题确实是真正做系统的时候应该去考虑的。一面要求你对自己所做的东西必须非常了解,而三面会要求你不仅仅只了解自己所做的内容,必须从整个系统的角度出发来思考自己的东西。所以,就必须对系统的一些其他方面的知识有更多的了解,这样你的思考才能更深。
3. 面试者提问
总结:
面试一下午就完事了,总体来说,效率还是蛮高的。
事先准备的C++,数据结构和算法的内容一点没用上。
然后,感觉自己把自己带到坑里了。因为,自己做的项目,自己肯定是非常了解的,但是如何在短时间内让别人也能够理解确实是一件挺困难的事情的。第一个面试官最后估计也没明白我的意思吧。。sad
所以即使是自己做的项目,事先也要花一些时间去整理一下思路,想一想怎么说
网络那块还需要再看看
最后,还是要多思考。做项目的过程中,只有把一些更细节的东西想的更深入一点,面试的时候被问到才不会一脸meng比。