2022暑期实习面经
写在前面
2022今年的暑期实习实在太难找了,首先互联网行情不太好,继而又碰到上海疫情,所谓互联网寒冬吧,很多简历都是石沉大海,约了面试大部分时候也是被面试官怼,每天每日都很焦虑失眠,还好柳暗花明最后得到了自己想要的结果。也希望所有人能够收到自己满意的offer,以下内容纯属个人面试经历和总结,如有错误请指正,不喜勿喷。
个人情况
中科大软件工程硕士在读,Java/GO/C++后端(服务端)方向,之前没有过实习,项目有一个GO的后端项目(图片兴趣社区)
目前三个offer,最后选择了字节
- 北京字节商业化 JAVA开发
- 杭州华为ict计算产品线 C++/GO
- 上海哔哩哔哩网关 GO
经历二十余轮面试,面试过程写了个表格,飞书文档
关于面试
简历和投递
- 简历pdf格式一页纸,基本算是行业规范
- 简历不要出现大篇幅的校园经历,除了华为,基本没有面试官关注这个,多写点技术项目
- 简历上所有的技术栈一定要会,不会的千万别写上去
- 写了就是给自己挖坑,你写的技术栈面试官基本都用过,会让你他的底层原理,讲不出来他就会觉得你简历很水很水,想过就很难了
- 关于投递,建议找熟人内推,或者找牛客,不建议在学校大群里找,我在科软群里找的,要么面试挂,要么简历不过,大群里发的你的同学都可以看到,都投那你的简历在他眼里就没什么亮点了
面试技巧
面试中
- 回答问题,最好思考一下再回答,不要一听到问题就一股脑说出来,这时候大概率你说的东西会很乱没有逻辑性
- 遇到不会的问题,一定不要沉默不说话
- 小题大说.比如问你tcp4次挥手的最后的time wait ,你不会,你就说说tcp协议
- 大题小说. 你就说期中几个你比较熟悉的点就行了
- 转移其他类似的问题,比如问我java线程池,我说没用过不清楚,但是我知道他的作用大概是分配多个线程,在用的时候直接在池子里拿以达到减小创建销毁线程的开销的目的,类似内存池巴拉巴拉不就说了一堆.
- 实话实说,不会就是不会,一个小小实习你还想对我有多高的要求对吧
- 在面试的结尾,一般面试官会问你还有什么想说的,你可以说一些煽情的话,提高面试通过机率
- 就比如说我面阿里,你就表明你对阿里的崇拜,做梦都想进阿里的这个意思,实力不行态度来凑,然后希望面试官给个机会
复盘很重要
我一般会在面试的时候开启手机/电脑的录音,录音复盘
- 总结不会的知识点,抓紧补 我之前面腾讯问我gin原理,我不会,回去复盘了,第二天字节面又问了
- 倾听自己的说话方式 语速,思维逻辑
- 揣测面试官心理状态,换位思考,你是面试官会怎么样
一些建议
面试挂了很正常
在最开始面试的时候,基本面一次挂一次,回来想想,当时没有什么面试经验,遇到不会的问题基本就是紧张到沉默,面多了都变老油条了,不会我也能给你扯一大堆东西出来。所以面试就像打怪升级,前面挂了很正常,不要太忧伤。
不要妄自菲薄
很多岗位只是不匹配而已,或者你们组内来了个大佬被排序下去了,真正面试进去也就是curd
此处不留爷,自有留爷处,海投战术肯定会有公司要
不要相信任何hr的承诺
hr的嘴最会骗人了,offer到手前面试不能停!特别是今年这个行情下!
关于几个厂
字节
字节有一个面评系统,记录了你每次面试的面试官的评价,基本上如果只要一面挂了后面就很难捞起来了,所以我建议先面面其他的公司攒攒经验再来面字节.我之前就是两次一面挂,字节没人捞了,投了七八个岗位都是简历筛掉了!后来找熟人才捞了起来!
字节面试就三个部分 项目-八股-算法 , 不同部门有不同的侧重点,但是基本上算法要做出来,不然大概率寄,所以算法不好的,先去力扣刷刷题再来!
腾讯
腾讯如果没收到面试邀请,可以每天更新一次简历,会排序更前一些,亲测有效.
另外工作地点建议改深圳,深圳实习岗位多
腾讯笔试120分钟 5道算法
美团
美团的笔试过后如果很长时间没收到面试邀请,可以改改期望工作地址试试,上海改北京
美团笔试120分钟 5道算法
华为
科软的hxd记得简历学校地址一定得填合肥,别填苏州,不然不会给你发笔试
华为的笔试3题600分,按样例通过数给分,要拿100+分数才能约面试,面试特别简单
可以试试骗测试样例,一般有两个样例,可以混10%的分
阿里
阿里的系统一次可以填三个志愿,记得填满
然后如果三个都挂了,可以发邮件给官方改志愿的,意思就是无限面
然后阿里面试基本上使用的都是电话,so,你懂我说的意思了嘛
阿里笔试90分钟 10道选择+3道算法
关于算法
ACM做题问题
算法除了是面试必考内容外,不少公司在面试之前会有一个笔试(一般是牛客)来考察候选人的基本功,华为和阿里很看重笔试成绩,很多写力扣的同学就要注意格式了。
万能开头
这三句话每句话都有自己的含义,仔细理解
#include<bits/std++.h>
using namespace std;
#define N 100005
自处理输入输出问题
一定得用printf()和scanf()
cin cout会有自同步的问题,太慢会超时
骗测试样例
很多公司是按通过率来给分的,这就造成了可以骗样例,一般一题有两到三个样例,做不到的题骗就完事
if(第一个样例) printf(第一个结果);
else printf(第二个结果);
看题先看数据规模
1e18 o(logn)
1e5 o(n)或o(nlogn)
1e3 o(n*n)
1e2 o(n^3)
空间的话c语言一般开到1-2M空间(50w个int)基本就会爆内存
有些不必要的暴力解就别写了,实在想不出来再写上骗通过率
关于链表和树的输入问题
这一部分面试官最喜欢考的就是链表题和二叉树的题,字节用飞书,腾讯用腾讯会议,其他公司用牛客,除了牛客的部分,基本都需要自己写测试样例,这就涉及到如何创建链表和二叉树的问题了
创建链表(建议链表都用带头节点的)
typedef struct LinkNode{
int data;
LinkNode * next;
LinkNode(int val){
this->data=val;
this->next=NULL;
}
}*LinkList;
//尾插法创建
LinkList createList(int a[],int n){
LinkNode* head=new LinkNode(-1);
LinkNode* tail=head;
for(int i=0;i<n;i++){
LinkNode* newNode=new LinkNode(a[i]);
tail->next=newNode;
tail=newNode;
}
return head;
}
创建树形结构
typedef struct BTNode{
int data;
BTNode *left,*right;
BTNode(int val){
this->data=val;
left=right=NULL;
}
}*BiTree;
//注意这时a的下标从1开始,下标为n结束
BiTree createBiTree(int a[],int n,int k){
if(k>n) return NULL;
//if(a[k]==-1) return NULL;
BTNode *newNode = new BTNode(a[k]);
newNode->left = createBiTree(a,n,2*k);
newNode->right = createBiTree(a,n,2*k+1);
return newNode;
}
算法题汇总
算法题得多练,力扣前200刷完感觉就差不多了
1.有效的括号字符串 力扣678
2.最大子数组和 力扣53
3.爬楼梯
5.乘积最大子数组
6.合并两个无序链表
7. 二叉树的锯齿形层序遍历
8.链表的快速排序
9.链表的归并排序
面试问题
这一部分有点多,我写在另外一个帖子里了
这一部分的核心逻辑就是把面试中遇到的问题(主要是不会的整理下来),写得有点乱,还是看个人整理
mysql面试整理https://blog.csdn.net/July1101/article/details/124859633
Java面试整理https://blog.csdn.net/July1101/article/details/124859282
Go语言相关https://blog.csdn.net/July1101/article/details/124859193
其他面试问题https://blog.csdn.net/July1101/article/details/124859593