对于很多没有学历优势的人来说,面试大厂是非常困难的,大多数的人毕业只找到一个名不经传的小公司过着三点一线的生活,我也是一样,直到生活上的变故,才让我有了新的想法和目标,因此我这个二本渣渣也奋斗了起来,竟拿下了字节P6岗。今天分享这波面经,主要是希望能够激励到同样被学历所困扰的技术人,能够对职业生涯和技术规划有一个参考价值,感谢!
一面(一小时二十分钟)
一面是一个电话面试,下午6点左右特地找了一个地方电话面试,6点准时电话就过来了,不得不说,这方面还是专业的,时间有点远了,依稀记得一些题目。。。
一面:自我介绍;
static关键字;
怎么判断大小端;
怎么在main函数之前和之后执行代码;
程序的内存布局;
程序从产生到运行的全过程;
智能指针;
在浏览器输入网址到得到结果的全过程;
DNS协议;
https的实现;
手撕域名反转;
反问;
二面(一个小时)
二面是视频面试,还是个周六下午。。。
自我介绍;
c++的特性;
c++的多态的实现;
define与inline的区别;
字节对齐(说出规则以及现场求解一个结构体的内部地址分配);
智能指针(解决循环引用的问题);
程序从产生到运行的全过程;
静态链接与动态链接;
https协议;
TCP头部字段以及序列号的作用;
http各版本的区别;
缺页中断;
页面置换算法
手撕三数之和;
反问;
个人觉得二面发挥不错,如期来到三面;
三面
周五上午,接到了第三面的面试通知,约的是隔周三上午 10:30 。第三面面试官时不时的面带笑容,给人很轻松的感觉。
自我介绍;
手撕算法字符编码(将多次出现的字母依次在前面编号,只出现一次的不动)–面试官很好,在我提出的第一种思路上不断提示改进,简化了不少代码;
开始谈项目
深挖进程线程(某个线程崩溃,进程会不会崩溃,以及改变了很多问法,应该是想引导出c++的异常处理机制)
https协议;
dns协议;
然后问了意向工作城市以及反问尬聊。
很开心顺利拿到字节客户端的意向书,再接再厉!
###学习经验总结
(一)调整好心态
心态是一个人能否成功的关键,如果不调整好自己的心态,是很难静下心来学习的,尤其是现在这么浮躁的社会,大部分的程序员的现状就是三点一线,感觉很累,一些大龄的程序员更多的会感到焦虑,而且随着年龄的增长,这种焦虑感会越来越强烈,那么唯一的解决办法就是调整好自己的心态,要做到自信、年轻、勤奋。这样的调整,一方面对自己学习有帮助,另一方面让自己应对面试更从容,更顺利。
(二)时间挤一挤,制定好计划
一旦下定决心要提升自己,那么再忙的情况下也要每天挤一挤时间,切记不可“两天打渔三天晒网”。另外,制定好学习计划也是很有必要的,有逻辑有条理的复习,先查漏补缺,然后再系统复习,这样才能够做到事半功倍,效果才会立竿见影。
(三)不断学习技术知识,更新自己的知识储备
对于一名程序员来说,技术知识方面是非常重要的,可以说是重中之重。要面试大厂,自己的知识储备一定要非常丰富,若缺胳膊少腿,别说在实际工作当中,光是面试这一关就过不了。对于技术方面,首先基础知识一定要扎实,包括自己方向的语言基础、计算机基础、算法以及编程等等。
结合自身的一个学习经历,总结了一套非常系统的复习包,包括思维脑图、Android基础知识、JAVA知识点汇总、Android扩展知识点、Android开源库源码分析、设计模式汇总、Gradle知识点汇总、常见面试算法题汇总等等。
最后:
总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。
面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。
、每次遇到的难点知识,做好积累,实践和总结。