单位是国内某著名视屏网站企业,本人是视频编解码专业相关,比较感兴趣,还认真准备了下,投的是c++研发,面试途中才发现接收内推的部门是做推荐系统的,要求的技能其实和web后台开发差不多。
面试挺久的下午两点半过去,五点半左右才结束。
官网上要求如下:
1、2016年应届毕业生,本科及以上学历,计算机以及相关专业;
2、精通c/c++,对数据结构和算法有较为深刻理解;
3、具有以下任一领域相关知识背景:计算机网络(CDN技术、P2P技术),云平台,高性能计算、分布式系统,编解码等优先;
4、熟悉Linux系统,并且至少熟悉Python,Perl,shell等脚本语言其中之一者优先;
5、优秀的学习、创新能力和团队协作能力。
虽然面试要求有一些cdn技术什么的,实际上校招面试会根据你的简历背景问一些相关问题,如果你没有相关经历,简历中没有体现,就不会问这些,而是问一些常规的面试问题,算法,操作系统,网络,语言等等。所以如果没做过相关的技术,就不用突击准备了,短期内也掌握不了,还不如复习一下常规的基础知识。
一面
比较基础,问了常规的排序算法
问答题
你知道哪些排序算法?谈谈这些算法的异同,优缺点
链表是否有环路,求环路交点
编程题,现场a4纸写代码
8皇后问题
冒泡排序
二面
问得比较细,比较全面,面试官居然拿纸仔细记录面试情况,涵盖数据结构,算法,操作系统,网络,web开发等等
进程和线程
mutex和semaphore
直观粗略而言:
mutex是互斥锁,当一个线程使用mutex,相当于加锁,加锁期间其他线程被排斥,不能继续执行,只能自旋等待,当加锁线程中执行完相关操作后解锁,其他线程才能争取锁,继续执行
semaphore是信号量,主要用于同步,可以设置允许最多能同时访问的线程数counter,线程进入semaphore之前检查counter,如果counter小于等于0,不能继续执行,如果counter大于0则counter自减1,继续执行,结束后counter自增1
python语法
协程
tcp三次握手,四次挥手
web服务器特点,tornado的特点,个人经历相关
编程:快排
数组相关算法:
n个数据的数组,求和最大的连续子序列,返回这个最大和
含n个数据的两个数组,分别排好序,求两个数组所有数的中位数,复杂度低于O(n)
n个数据的数组,数组元素大小范围是0-n,各个元素不重复乱序,求数组中缺少的0-n的那个数
三面
主要是讨论科研项目,SIMD很偏的技术,解释都要好久,感觉面试官质疑自己的科研工作,从个人角度而言问得都是些很silly的问题,只能说术业有专攻,以后自己做面试官,如果对应聘者做的东西不懂,至少要尊重别人的工作,应聘者心里也有一杆秤,面试官是不是sb,关系到单位的脸。具体过程不说了
四面
感觉是个领导,开会拖了一点时间