热门话题白皮书HR资料
牛客面经 | 非科班出身的我如何拿到名企offer
2024.05.24

不是科班生,不是名校出身,缺乏实习经验、项目经历,他却能一步一步拿到名企offer。

想了解他的求职心得和制胜秘籍吗,下拉阅读,让大神为你揭秘。


牛客用户:非衣


秋招已经结束了,想了想还是准备把自己的面试历程写一下。也算是对大学四年的一个交代。


自己应该算是一个小白吧,就读于西安科技大学,环境工程专业。非985,非211。学校和西安电子科技大学就差两个字,但差的很远,坐落在骊山脚下。本身算是对计算机感兴趣,但还是比较弱。没有名企实习经历,也没有厉害的项目经验,连专业也与计算机不相关。


很想去BAT,网易,网易游戏...,与网易游戏的三面之缘;阿里的20多轮面试,五个已回绝;腾讯春招那两个宽容和蔼的面试官;与百度之间的遗憾;还有实验楼面试官的理解... ,很多都是在校招路上的经验。实习真的很重要,尤其时名企实习,可以很大程度上帮助你通过面试。


面试时实力与运气的结合,当然你实力越强,那么所需要的运气就可以渐渐忽略。自己的学习之路,从C/C 到java,再到python以及现在的运维研发。坚持自己的梦想,走下去,总会看到希望。


校招之路


实习

实习到最后自己拿到了百度/豌豆荚的offer,但由于个人原因,最后没去实习。

历程(主要是运维)

腾讯内推 omg(一面--> hr挂)

腾讯春招 teg (一面--> 二面挂)

百度内推 (一面--> 二面挂 )

百度春招 (offer)

饿了么 (二面挂)

网易游戏雷火盘古 (二面挂)

豌豆荚 (offer)

阿里(面了好多面,几个职位都挂了)

网易笔试过了,没有面试


面试中的问题

实习生面试基本很看重基础,对基础考察很细,在运维这一块,主要考察网络和linux基础。


网络

  1. vlan/vxlan(网易游戏)

  2. 路由与交换机的区别

  3. 路由协议(RIP/OPSF)

  4. 记录

  5. dns的解析(递归和迭代)

  6. 什么时候用udp/tcp

  7. 状态码

  8. 长连接与短连接的区别(LVS是通过长连接作负载均衡)(百度/阿里/豌豆荚)


格式

  1. 三次握手/四次挥手过程(腾讯/百度/豌豆荚)

  2. tcp连接中各个状态的含义(重点在time_wait)(百度/阿里)

  3. 第三次握手失败,或者某一个状态错误 (引出计时器,以及重传,SYN攻击)(网易游戏)

  4. 回退N帧协议(阿里/百度)

  5. 拥塞避免/慢启动/快重传/快速恢复(所有公司都有问)

  6. tcp与udp的区别

  7. 格式

  8. tcp/ip

  9. HTTP协议

  10. DNS

  11. 路由

  12. 其它的一些


linux

  1. 超级块

  2. cp/mv的区别(按我的理解答了下,但阿里面试官问的实现,没答好)

  3. 软硬连接(inode这块,ln / ln -s)

  4. 有关进程(ps/top)

  5. 网络 (netstat/ss/ping/traceroute/tcpdump)

  6. 一般会在问完网络时,开始问相关的命令

  7. 内存(free 会问到buff/cache)

  8. 文件处理(grep/sed/awk)很重要,面试必问

  9. 一些日常脚本

  10. iptables

  11. 基本命令

  12. 文件系统(ext4)

  13. 内核调优(一些常用参数的优化,一般是tcp这块的,会在time_wait和syn攻击这块问,还有就是apache那块,百度面试官问select这块,提过)

  14. 开机启动过程

  15. 一些运维相关的知识


操作系统

  1. 进程vs线程(每次面试必问)

  2. 段页(百度提了一下,答的很差)

  3. IO模型介绍以及同步异步阻塞非阻塞的区别(nginx与apache比较时,通常会问到)select/poll/epoll


python

  1. 引用计数

  2. 垃圾回收

  3. 引用计数

  4. 标记-清除

  5. 分代收集

  6. 闭包 / 装饰器(网易游戏/阿里/百度)

  7. 迭代器 / 生成器 (腾讯/网易游戏/百度)

  8. 多线程 thread/threading (要么继承线程类,重写run方法;要么就把函数当参数传入)

  9. 内存管理(强烈推荐看《垃圾回收的算法与实现》)


mysql

  1. 基本sql语句

  2. 主从复制(架构/错误恢复/MHA)

  3. mysql存储引擎

  4. 备份(热备/冷备)


运维相关

  1. LVS四种模式(阿里特别喜欢问,腾讯也问过)

  2. 负载均衡(DNS/nginx/LVS/vipserver)

  3. 高可用集群(heardbead/keepalived )

  4. heardbead与keepalived的区别,脑裂问题的解决,高可用方案的优劣

  5. 案例分析


面试


腾讯


内推

一面问了linux基础,top/ps一些命令,以及一些常用的监控软件的使用比较。当然,必问的lvs,实现以及原理。tcp三次握手/四次挥手。还问了自己的爱好,和学习历程。之后就是一个月的等待,一天下午,hr打来电话,hr面表现不好,挂了。


正式校招

一面:当时超级紧张,连话都说不出来,还好面试官很nice,主动问我简历上的问题,对我做的一些小程序很感兴趣。之后等我缓解之后,再让我自我介绍

二面:二面面试官让人觉得也很亲切,问了很多家庭方面的问题。虽然最后还是挂了,但还是很感谢面试官。


百度


百度内推和正式校招问的问题差不多都一样。

RAID 的各个级别及区别

python 中 list 和 tuple 的区别 list 是可变的,tuple 是不可变的,可变与可变说的是内存地址是否可变。


tcp 的慢启动 为了进行流量控制,TCP 在发送方维护一个变量"接收窗口",发送端的发送窗口上限值应取“接收方窗口”和“拥塞窗口”中较小的一个,前者是来自接收方的流量控制,后者是来自发送方的流量控制。为了更好的在运输层进行拥塞控制,因特网定义了 4 种算法,即慢启动,拥塞避免,快重传,快恢复。 慢启动阶段,拥塞窗口从 0 开始以指数方式快速增加,直到达到拥塞窗口的门限值,然后开始执行拥塞避免,即拥塞窗口以线性速度增加。


tcp 状态 time_wait 的作用 TIME_WAIT 是为了实现 TCP 全双工连接的可靠性关闭,用来重发可能丢失的 ACK 报文;需要持续2个MSL(最大报文生存时间):假设应用程序端口在进入TIME_WAIT后,2个 MSL时间内并没有收到FIN,说明应用程序最后发出的ACK已经收到了;否则,会在2个MSL内再次收到ACK.

回退N帧协议/滑动窗口

python的内存管理,我博客做了很详细的解释





阿里


实习时自己内推了系统工程师,本来是简历都没过,大神华哥帮我复活,面了7面,我都不知道面了些什么。



秋招

阿里内推挂

阿里校招java开发

网易内推 运维工程师 (一面->二面->总监面->hr挂)

腾讯(内推没理我,校招一面挂)

美团(一面->二面->三面->hr挂)

百度(因为美团面试耽误太多时间,错过了面试,但最后又去面试,面试官给了个机会,三面挂 )

搜狗(美团面试中,没有去面试,很遗憾)

微店提前批 运维研发

蘑菇街 (简历筛选未过)

网易游戏互动娱乐(第一次面试止步二面)

新浪社招/新浪微博

网易北京 运维研发(offer,归属)

还有其它的4399,完美世界之类


笔试

笔试网站目前就几家吧:牛客网,赛码网,ceping,amact,前面2个网站编程题可以跳出,后面几个都不能.

百度:一般用的是赛码网和amact,编程题都不能跳出

阿里巴巴:用的是自己研发的笔试网站,一般是20个选择题(数学题和智力题居多),3道附加题(很难),反正就是写一大堆。

腾讯:一直都用的是ceping网,30道选择题,然后几道论述题,一般都是架构.

网易:牛客网,内推时出了小问题,不过还好,依然过了笔试,校招选择了网易放弃了小米。

网易游戏:互动娱乐出的最正宗的运维笔试题,很给力,题量大。

微软中国:还是很难,同样编程。

华为:机试好像是3道编程题.

google,google是有自己的测评,题还是很难。面试英文,压力大。

其余的公司:线上或者线下笔试(笔试题中C/C 偏多)


面试

说几个自己觉得重要的吧




阿里

内推

阿里是一个很看重基础的公司,要求很多,面试官很nice,也是自己从大二开始就去面试的一家公司,之前实习也去面过,校招面的cdn部门,各种网络问题,以及有关cdn的问题。

一面是在自己参加完网易北京内推面试回北京的路上,自己找了个角落,面了20分钟,然后说二面会有后续通知,没有然后了。


校招

一面: 面试官很严厉,全程不怎么说话,我就一直写代码。从最简单的链表逆置到二叉树,字符串匹配算法。还有就是问了python,java的内存管理,新生代什么,画图给面试官看了,jvm的一些(提前看了面经,表现的会好一点)。到了最后,面试官才表现笑容,让我等后续通知。


二面: 二面面试官很和蔼,问了下自己写的项目,基于python的日志分析工具,问了下hadoop的相关知识,HDFS,mapreduce的一些。作业提交(基于java API,streaming,pipes),画了下hadoop的架构,最后表示自己对运维比较熟悉,对开发这块比较弱。然后面试官问了下linux相关的问题。


三面:问了项目相关的问题,以及linux,还有c/c 的一些问题,还有就是算法,面试官笑问我,不是擅长python,为什么写算法题用c,当时回答了自己感觉好把握,好表示。

hr面:查户口

过了两周给了口头offer,没有然后了。




网易

内推

网易内推人好少,去北京面试的只有几个,当时去的时候,遇到一个特别好的hr。然后给我安排面试。


一面

 python多线程(threading/thread),lvs四种工作模式,然后各种问,nat模式怎么实现,dr模式怎么禁止arp,禁用arp后,负载均衡器怎么找到后端真实服务器mac,如果中间有路由,有交换机,怎么找(真实服务器禁用的是lo的arp响应,vip也是绑定在lo上,但有真实服务器的ip); python调用shell命令,之间方法有什么不同,其实就是返回值。ssh的原理。对虚拟化的了解,kvm/xen。


iptables规则的书写;自己的运维平台项目的相关问题,统计nginx日志出现次数最多的ip,awk搞定,最后又作死说了hadoop的nginx日志分析,面试官让我介绍下hadoop,差点挂了。


二面

写二分查找,快速排序,给面试官讲常见的排序思想,画图;python的内存管理,和C/C 有什么不同,python有回收机制,C/C 手动回收(malloc/free new/delete)。问用过什么自动化运维工具,puppet/ansible/saltstack...;又问有什么区别,答的很差,就是答了c/s架构,ssh和消息队列。等侯三面。

中间hr给了个饭票,去网易吃了个饭。


三面

以为三面就是hr面,结果加了一面。继续技术面,问了docker,openstack,日志处理ELK的原理机制。之后就是问家庭情况,愿不愿意来北京,平时喜欢看什么书。


hr面

家庭情况,工作地点要求,想成为什么样的人,学习计划,薪资要求(要了8000)

之后等通知,G20过后,等来拒信。


校招

校招时自己投了运维研发岗,放弃小米笔试,搞了网易北京的运维研发笔试题。之后通知去面试,但网易游戏的机票也在那一天,就和hr沟通过后,第二天去面试。早上面完网易游戏,中午赶紧去网易面试。赶到网易时,2点,签到之后等待,等到下午快5点时,终于可以让我面试了。


网易

一面

面试官是我二面面试官,没有自我介绍,问linux命令,问网络;回答nginx的惊群问题,(多线程/多进程(Linux下线程进程也没多大区别)等待同一个socket事件,当这个事件发生时,这些线程/进程被同时唤醒,就是惊群。许多进程被内核重新调度唤醒,同时去响应这一个事件,当然只有一个进程能处理事件成功,其他的进程在处理该事件失败后重新休眠。这种性能浪费现象就是惊群。);如何解惊群问题;回答(锁,红黑树,定时器)


二面

面试官还是熟人,依然问项目,自动化运维的实现,自己平台的优势和缺点,设计思想。ansible/saltstack的比较;从各个运维工具的设计思想组件,给讲了;然后就让我问问题,我就说我还要学习什么,还有什么缺点。面试官说我在运维这一块很优秀,担心我基础(非专业);然后我就说自己学了什么东西,讲了自己学习的东西。说了一个小时多吧,面试官联系了hr,给我安排最后一轮面试。等到7点多,hr通知我去面试。


hr面

压力面,很严肃,问了很多问题,对我很质疑,最后对我说,前面两轮面试官对我评价很好,她要考虑下,下周给答复。


走出网易大厦时,差不多是8点了,回到住的地方10点多,吃了点饭,睡觉。第二天,回西安。


周一上课时,9点左右,手机震动,心中有预感,赶紧出教室,网易hr打的电话。




网易游戏

一面

电话面,两个面试官,很nice。上来就问tcp,把tcp问了个遍,还问了linux内核3.0以后,对tcp协议支持(到现在还不会),vlan/vxlan,之后就是内核参数,进程vs线程,文件系统,项目,我的github,博客。

自己以为挂了,之后十一前打电话,通知去北京面试,本来想拒绝,但包机票,就答应了。


二面

现场面,项目,自动化运维工具的比较(答的很差,然后面试官说了要从设计思路,组件方面回答,下午网易面试用上了)。

在我接受了网易offer后,把三方邮过去后,网易游戏再次约我面试。




美团

选择了美团,错过了百度和搜狗;但美团依旧拒绝了我。

一面: 11点40多面试,就问了两个算法。

二面: 网络,mysql的事务,智力题

三面: 项目,linux基础考察

hr:阿里月饼

学习历程


个人学习

接触计算机方面知识是在大一,当时只是为了考个二级,莫名其妙的入坑。从大一学习c语言吧,当时看的是谭浩强的书,勉强入门吧,之后也就看了《c与指针》之类的书。大一暑假开始学C  ,看了一些C  方面的书,《C   primer》,《编程思想》,《c  沉思录》,还有对我很有影响的《STL源码剖析》。那时候,对阿里有种向往,想进阿里,然后开始学java,也看了很多书,《java编程思想》,《java web开发-王者归来》之类的。


然后大二开始投了阿里和腾讯。腾讯连笔试都没过,阿里就面了个java,到二面挂了,当时颇受打击。当时笔试题有好多linux的,然后大二暑假就开始学linux,一开始看完了《鸟哥的linux私房菜》,之后又是各种linux书籍,学shell,看数据库,看架构。选择运维是个意外,但也是一种逃避吧。大三一年就在linux中挣扎,很痛苦。linux学习中发现运维的面很广,自己就选了devops,看了很多,也学习了很多。


书籍推荐

linux

鸟哥私房菜

《 Linux 内核设计与实现》

《Linux从入门到精通(第2版)》

linux就是这个范儿

《Linux与Unix Shell 编程指南》

《unix环境高级编程第二版》《unix操作系统设计与实现》

官方文档


网络

TCP协议族

TCP详解(1,2,3)


操作系统

现代操作系统

深入理解计算机操作系统

操作系统概念


大数据

hadoop核心技术

Hadoop权威指南

《Hadoop技术内幕-深入解析MapReduce架构设计与实现原理》和《Hadoop技术内幕-深入解析Hadoop Common和HDFS架构设计与实现原理》


自动化运维

python自动化运维

saltstack技术入门与实战

ansible自动化运维


点击阅读原文与作者进行更多交流~