在线远程视频面试
一面:
自我介绍。
知道哪几种排序算法,各算法的时间复杂度。
解决hash冲突的几种方式。
有哪些方法清除cache中旧的数据。不太清楚,我扯到了操作系统中缺页中断的页面置换原理上,什么FIFO、最近最少使用、加权重等等。
进程和线程的区别。
多进程和多线程的使用场景。多进程答了一个分布式系统,多线程没答上来,后来问了才知道期望I/O密集型和CPU密集型这种答案。
死锁,如何解决死锁。解决死锁忘了,我扯到线程同步上来。
了解哪些设计模式,装饰器模式是什么。
如何保证单例模式只有唯一实例,有哪些方法。
数据库设计三大范式。仅答了知道一、二、三范式,详细的没答。
SQL优化,有哪些优化方法。仅答了查询优化加索引。
OSI七层模型和TCP/IP四层模型,每层列举2个协议。
TCP的三次握手和四次挥手。
C++中类成员的访问权限和继承权限问题。
C++中static关键字的作用。
智力题,足球队问题。时间原因加没啥思路,把能想到的都说了。
在线写代码,题1快速排序,题2位运算相关的题。
提问。主要问了面试时筛选应聘者的标准。
面完后让在线等,若15分钟内没接到二面通知,代表面试挂了。
二面:
自我介绍。
工作经历的简单介绍。没细问,我以前在传统软件行业干过一段时间,可能互联网行业和传统软件行业的业务差别很大,面试官不怎么在意。
在线写代码,反转链表。最好一边写,一边和面试官交流你怎么想的。
抛出一个与实际业务相关的问题,探讨解决方案。感觉应该是360业务中的一个简化版需求,要你回答如何实现。这种问题给不出标准答案,把能想到的都说出来,后来我俩变成了交流探讨,我顺着他的思路反问了几个问题,他才发现不对,说这是我在面试,应该我来回答这些问题,根据回答层层深入,后来涉及到效率优化、数据库分表、大数据排序、红黑树、map底层实现、ConcurrentMap等。这种问题看自己怎么把握,如果面试官愿意和你探讨,尽量往自己熟悉的东西上引,如果面试官占据主动,层层逼问,祈祷自己的技术积累足够深厚吧。
提问。问了应聘岗位的工作职责,360后台开发用到的技术栈,应聘的那个分布式系统的一些性能指标,请求并发量、平均响应时间等。
在线面试结束,等通知。
总结:
总耗时100min左右,一面基础,二面能力吧,当然,两轮面试中写代码都是考察重点。基础没啥说的,多看多积累,主要几块就是数据库、操作系统、网络和编程语言。至于二面,其实我觉得面试运气很重要,很玄学,面试官人好,不刁难你,过的可能性就大点,当然也说不准,像前几天面腾讯,聊得还可以,下来就挂了,哎,不断充实自己,不变应万变吧。
最后想和大家聊一下,一面的时候我问了面试官筛选应聘者的标准,他的回答是基础+沟通+聪明+写代码:
1)基础,应该包括编程语言掌握度+操作系统+数据库+网络,从上面的问题就能看出来,问题广度很大,没办法,多积累。碰到答不上的,尽量往靠边的扯,实在不知道的,就诚恳的回答现在思绪有点乱想不起来。
2)沟通,主要就是和面试官的交流,有不清楚或是不懂的地方,一定要反复追问面试官,尽量少沉默,也不要直接说不知道,更多的追问交流至少给面试官一种你在主动询问、积极思考的印象。
3)聪明,一般考查智力题,我的理解就是思维敏捷度,这种问题很难在短时间给出答案,给出一个大概的思路或是你怎么想的,不要说不知道,想到什么都说出来,尽量回答。
4)写代码,这个是重点,能不能过占了很大比重,考查的东西很多,编码风格、变量命名、功能完成度、错误处理等等,这个压力真心大,在线写代码,你每敲一个字母,面试官都看得清清楚楚,心态平和+多练多看。
据我估计,这4部分占比:基础35% + 沟通15% + 聪明10% + 写代码40%,想拿offer,多写代码多看书吧。
作者:道道道DAO
本文来源于牛客网
——————————
牛客网(www.nowcoder.com)
- 互联网名企笔试真题
- 校招求职笔经&面经
- 程序员求职实习信息
- 程序员学习交流社区
网友评论