双非本科的秋招之路

写下我的双非本科的秋招之路。

在秋招过程中拿到以下几个offer

美团sp后台开发、网易互娱 游戏研发工程师、360服务器开发、深信服 c++开发、多益网络 游戏研发工程师


校招主要问的是:基本语言,操作系统,计算机网络,数据库,数据结构与算法。在这里我推荐两个GitHub项目:Cyc2018Skill-Tree,cyc2018偏向于java,Skill-Tree偏向于c++。但里面总结的基础知识都可以看。设计模式有些面试官会问到,但比较少。而我主要投的是c++后台开发,所以我还需要准备网络编程的知识。对于ACMer来说,数据结构与算法稍微复习下刷下剑指offer就可以了。不同的面试官问的侧重点不同,但主要还是从你的简历上来问,所以简历上写的一定要熟悉,不然问到不会的话会让面试官觉得你简历上的其他也很水,印象就差了。我由于数据库不是很熟练,就直接把这个在简历上删除了,问了就直接说不会,反正问深了也不会。对了,在面试的时候要适当的引导面试官问你熟悉的知识,比如问http协议时,我顺带提一提http是在tcp的基础上实现的,http是在应用层而tcp是在传输层。接下来面试官可能会问你一些tcp相关内容。在简历上每种都可以细说几个你熟悉的,这样面试官就会根据你写的来问。比如在计算机网络上,我简历上写了对tcp,udp,iP,http等协议有一定的了解。那面试官问计算机网络时大概率会问这些。

在准备期间也读了一些书籍

细读的有《TCP/IP网络编程》,《Linux高性能服务器编程》,《后台开发》,《图解HTTP》,《图解TCP/IP》,《剑指offer》。

泛读的有《STL源码剖析》,《深度探索c++对象模型》,《effective c++》,《深入理解计算机系统》,《程序员代码面试指南》,《TCP/IP详解卷1》,《大话设计模式》,《计算机网络》。

在面试过程中,对于一个知识点面试官可能会一直追问你,直到你不会为止,所以这就要看你对一个知识点的了解深度了。如果某个知识你知道怎么去使用它但不熟悉它的原理,可以说你对这个知识一窍不通。比如c++种常见的stl库中的vector。它是是一个可变数组。但它实际是用一个固定的数组储存的,并且用size和capacity来计数,size表示储存元素的大小,capacity表示数组的大小,当size>=capacity时会重新申请内存并释放旧的内存,拷贝是通过浅拷贝实现的,以1.5-2倍的大小扩容,而为什么以这个倍数也可以通过数学推导算出来...详细的可以具体百度。原理很重要,原理很重要,原理很重要。推荐书籍《stl源码剖析》

C++主要问的是基本的语法操作,有时会考几个字符串的函数,比如内存拷贝函数,写这个需要注意内存覆盖问题。虚函数是问的最多的,它的基本原理需要搞懂,推荐书籍《深度探索c++对象模型》。内存泄漏怎么来的,怎么解决;STL中的各种库,map与unordered_map的区别;vector和list的区别;内存池怎么实现;深拷贝浅拷贝等等;

操作系统:进程与线程、IO多路复用、内存管理、Linux基本命令。阻塞与非阻塞,异步与同步;ET和LT的区别;进程和线程的通信方式;查看系统各种属性的命令,出现频率最高的前十个IP的命令等等;

计算机网络:HTTP、HTTPS、TCP、UDP、IP、arp、rarp等常见协议,应用层、传输层、网络层这三层是必须要掌握的。TCP/UDP是必问的,为什么会有TIME_WAIT状态,为什么不是两次握手,为什么需要四次释放,什么是半连接状态;UDP怎么保证可靠;session和cookies的区别。在浏览器中输入URL后的流程等等。

海量数据处理,对于海量数据的处理会经常问到,这些在Skill-Tree项目里都有介绍。

数据结构和算法,这个对于ACMer来说,复习起来就轻松些,但需要注意一些细节问题,问的时候往往会问一些细节问题。LRU缓存设计建议写下(LeetCode146),问到三次了。其它的话多刷刷剑指offer,然后把数据结构复习下。


下面写下一些面试后写的面经,记得不是很详细,所以会缺很多。

美团点评:

美团点评一面:

编程题:

[4,5,6,7,0,1,2,3]...之类的数组查找一个target值

多线程和多进程

TCP/UDP

哪些场景使用TCP

内存管理,虚拟内存,为什么虚拟内存开2倍

Linux常用命令

为什么会查看cpu的信息,主要查看哪些

拿了哪些offer

建议换java吗

算法论文

二面:

忘了

三面:

ET和LT

阻塞,非阻塞,异步,同步,使用场景

编程题问题忘了,但记得是用线段树写的。


网易互娱:

一面:

数组al[0,mid-1]和al[mid,num-1]都分别是有序的,将其merge成有序数组al[0,num-1],要求空间O(1),时间O(N)。

N个人都有一个权重,随机选取m个人。怎么取?

二面:

上来就问学过图形学吗?没有

C++变成可执行文件的过程

New,malloc,delete,free的

堆和栈(然后往外扩展问了二十多分钟,怎么设计一个效率高的内存分配)

10万个ip段,每个ip段对应一个城市,给定一个ip,快速找到对应的城市

一副扑克牌,随机打乱它,可以用rand()函数


360:

一面:

构造函数能否是虚函数,为什么

拷贝构造函数和赋值函数。拷贝构造函数有什么缺点

空类的sizeof大小。

类A空,类B继承A,B中有一个虚函数,sizeof大小

类A空,类B中有一个虚函数和一个类A对象,sizeof大小

函数重载。如果返回值不同或者参数位置不同是否是重载

虚函数是否可以是内联函数

函数指针和泛函数

局部变量,全局变量,静态局部变量和静态全局变量

进程的三种状态,就绪有那些

Cpu调度方式

Vector的扩容,如果数据量很多扩容会怎么样,怎么设计更好的

map和unordered_map的区别

TIME_WAIT讲一下,为什么要这个

TCP三次握手建立完后客户端突然断网后的情况

流量控制讲一下

如果接收方数据处理不过来会发生说明情况

ping有没有端口


二面:

父进程fork一个子进程,子进程申请4k的内存,它们的内存分布

写时复制讲一下

多进程和多线程的区别

海量数据每行一个IP,求出现次数最多的5个ip

编程题:

中序遍历

单链表中的中间节点


深信服:

C++一面:

编程题:

每次走一楼或者两楼,到n楼有几种方法。

用define写一个结构体类型的偏移地址

常见的基础问题

C++二面:

问了笔试中的编程题

写了一个dfs问题。

问了项目


算法一面:

KMP,AC自动机。

匹配允许错一个怎么匹配

算法二面:

忘了

算法三面:

一维坐标n个点中选m个点,使的相邻两个点的最小距离最大化

n*m的方格,当前位置种了数,上下左右就不能种树

10万以内的素数,选取某个子集,子集之和也是素数的有多少种

长方形,判断某个点和长方形的位置


多益网络:

自我介绍

有没有项目经验

竞赛中印象最深的是什么题目

编译性和解释性语言的区别

桶排序和跳跃表排序

哈希冲突

不用递归实现斐波拉系数

对象的生命周期

淘宝购物栏的推荐怎么实现

游戏的排行榜怎么实现(如果每一个用户都能看到自己的排名,当修改时又怎么实现。如果显示的排名很少有怎么实现)

操作系统中编译和链接是什么

操作系统中系统调用和用户调用

数据库了解吗(不了解)

空闲时间的安排

如何看待互联网加班

如果已经回家了的话出现的bug怎么办

还投了哪些公司

当前的求职情况

十分钟编程题:有一个产生n个数的随机函数;请写一个函数ChooseKey,在给定的权重表中,根据"权重"随机抽取一个"字符"并返回


#网易互娱##美团##360公司##校招##游戏研发工程师##C++工程师##面经#
全部评论
校友很强啊
1 回复 分享
发布于 2019-12-04 18:26
美团今年收双非莫?
点赞 回复 分享
发布于 2019-12-04 16:04
可以哦,想起了去年的我
点赞 回复 分享
发布于 2019-12-04 20:25
点赞 回复 分享
发布于 2019-12-05 11:58
港神牛批🐮
点赞 回复 分享
发布于 2019-12-05 12:35
沾沾大神
点赞 回复 分享
发布于 2019-12-05 12:59
楼主很强哦,佩服佩服
点赞 回复 分享
发布于 2019-12-05 14:02
港神
点赞 回复 分享
发布于 2020-02-27 11:03

相关推荐

28 239 评论
分享
牛客网
牛客企业服务