小鱼求职复盘(没过,就是想记一下)
第一关:笔试
研发岗(需要写代码):Java、前端和c++
考试内容:数据结构,操作系统
题型:单选、多选、问答、编程题(编程语言不限)
非研发岗:测试、运维、交付、管培生
考试内容:计算机网络、linux简单命令
题型:单选、多选、问答
个人本意想投前端,害怕不过选了测试(结果也没过)
回忆题目:
前面是选择题,就平时的一些计算机网络练习题(非常后悔没有好好复习),然后大概是问答。
浏览器中输入www.baidu.com,按下回车后发生了什么
第一步 浏览器查找该域名的 IP 地址
第二步 浏览器根据解析得到的IP地址向 web 服务器发送一个 HTTP 请求
第三步 服务器收到请求并进行处理
第四步 服务器返回一个响应
第五步 浏览器对该响应进行解码,渲染显示
第六步 页面显示完成后,浏览器发送异步请求
TCP 三次握手
为了保证数据能到达目标,TCP采用三次握手策略。
-
发送端首先发送一个带SYN(synchronize)标志的数据包给接收方【第一次的seq序列号是随机产生的,这样是为了网络安全,如果不是随机产生初始序列号,黑客将会以很容易的方式获取到你与其他主机之间的初始化序列号,并且伪造序列号进行攻击】
-
接收端收到后,回传一个带有SYN/ACK(acknowledgement)标志的数据包以示传达确认信息【SYN 是为了告诉发送端,发送方到接收方的通道没问题;ACK 用来验证接收方到发送方的通道没问题】
-
最后,发送端再回传一个带ACK标志的数据包,代表握手结束
若在握手某个过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包
Q:为什么要三次握手?
三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的
-
第一次握手,发送端:什么都确认不了;接收端:对方发送正常,自己接受正常
-
第二次握手,发送端:对方发送,接受正常,自己发送,接受正常 ;接收端:对方发送正常,自己接受正常
-
第三次握手,发送端:对方发送,接受正常,自己发送,接受正常;接收端:对方发送,接受正常,自己发送,接受正常
第二关:面试
初面:(面试的小姐姐超级温柔)
自我介绍,大概提问:
有考研吗?
介绍一下大学期间的兼职经验?
微信红包测试案例你会怎么设计?
你觉得你找到了一个bug,但是开发人员说不是,你要怎么办?
你简历写的意向岗位是前端,为什么投了测试岗位?
然后让我去在场的一位leader(据说是位很牛的大佬)那里再面一下:
自我介绍,提问:
你考研了吗?
考的什么学校?
你觉得你哪儿没考好?
多少分?(数学,英语,专业课都多少分)
为什么没考好有想过吗?
你说你比较坚定,既然考研了为什么没有选择二战?
家庭条件怎么样(是因为经济问题选择了工作吗?)
目标工作城市是哪里?
有什么项目经验吗?
介绍一下你的毕设作品和用到的技术?(框架,算法)(我回答的超级差劲)
你觉得你性格怎么样?
二面:(线上面试)
自我介绍,你了解测试这个岗位吗?你觉得你有什么相符的特长吗?(还有一些问题,但是想不起来了)
终面:(CTO面试)
自我介绍,
三次握手的流程,
四次挥手的原因,
浏览器输入网址按下回车发生了什么,
http和https哪个好,
TCP和UDP哪个更底层,
开锁和关锁,
你对自己未来的规划,
你别的offer是什么,
你具体想做什么,
你有经历过非常有挑战性的或者很有成就感的经历能说说嘛。
然后总结了一下:规划目的还是很模糊,准备不足,能力不够等等。
全程心凉了再凉,唯有一点惊喜的就是他们说我的在校成绩还看得过去,我很少被人夸奖,即使这是面试官的客套话我也很开心。
好了,就这样。如果有人看到了,奉劝各位还是要多多学习和做好面试准备。另外,希望大家都能有自信面对每一场面试,我本人就曾因不自信错过很多机会,害怕失败而不敢去尝试。