【日常实习失败面经】记人生第一次面试失败经历-字节跳动头条后台开发岗
个人情况与失败原因剖析
大家好,我是程序员阿浪,今年本科毕业前夕本来想着在研究生入学前空出来的3个月找一个日常实习,但是鉴于本人准备不充分,最后还是失败了,反思良久,这段经历虽然不光彩,但是我觉得有必要分享一下我的失败经历,希望大家不要走我的弯路。
另外也欢迎看官大大们关注我的公众号,不定期分享程序员的干货学习资料、实习面经或生活吐槽,期待我们一同成长:
总结面试失败原因如下:
-
原因1:天不时地不利人不和(
在面试通知发下来时,发现面试时间正好是毕业返校收拾行李的时候,无奈和面试官商量将面试时间往后挪了两天,感情好,今年毕业季不能全员返校,每个班级回校的同学需要尽可能帮忙收拾自己同寝室甚至同专业同学的行李。安排好的复习计划变成了为学院全天服务,hin难受wow T - T
-
原因2:准备时间不充分
学校的安排妨碍我准备面试的原因之一,但是假如没有别人打扰,正常按照我自己的节奏来准备,机会大吗?按照我从开始投递简历的时间算,大概只有两周的时间准备,通过的几率也很小。那时在网上搜索面经,都知道头条的算法难度是大厂里比较大的。并且刷算法题即使靠着准备保研时的老本也要复习才能捡起来,嗯,复习的阶段安排在了返校之后,然后就泡汤了。
-
原因3:面试时的失败表现
这是影响面试结果的最直接的原因,请看下一部分。
面试真实经历&算法题&题解代码
首先按照邮件的链接进入牛客网,牛客网在面试过程中切换屏幕面试官是知道的,而且面试官也提醒了过程中不能切换屏幕。
面试开始,首先进行自我介绍,然后对简历上的项目进行提问,大概过了15分钟,开始抛出一道算法题(见下方)。你需要先跟面试官探讨你的思路,然后开始写代码,大概又过了30分钟,代码没写完,思路还是错的。然后面试官很委婉的说面试结束了,然后等通知。最后让我问他有没有想问的,我竟然厚着脸皮问如果录取了是否可以线上实习,哎…面试小白,现在回首真的太多太多的不足了,在面试官面前暴露的一览无遗。
算法题目
字节跳动头条后台开发一面算法题:
设一个数组[1,2,4,6,9]
给定和10,输出数组中所有数组合成10的情况
数组中每个数可以随便用多少次
比如1+1+2+6=10
1+9=10
…
思路与当时的思考过程:
这道题用dfs,有多少种组成情况当然一想就是搜索,可惜当时一意孤行认为这是背包问题,最后背包解法没写出来,还和面试官很确定的说这道题一定是背包解法,如果我是面试官,我都想把我自己pass掉。
代码
dfs的核心在于退出条件,还有搜索策略要想清楚
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int array1[] = { 1,2,4,6,9 };
int target = 10;
vector<int>::iterator it;
void dfs(int sum, int i, vector<int> &v) {//sum当前累加和,i当前考虑的array1数组下标,v存放满足固定和的结果数组组合
if (sum == target)//退出条件
{
for (it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
cout << endl;
}
else if (i<=4&&sum<target) {//搜索策略
v.push_back(array1[i]);
//用这个数,则sum + array1[i],迭代进去还用这个数,当题干条件变为每个数只能用1次,那么第二个参数变为i+1
dfs(sum + array1[i], i, v);
v.pop_back();
//不用这个数,则sum + 0
dfs(sum, i + 1, v);//其实这一步的作用就是负责切换下标i
}
}
int main1() {
vector<int> v;
dfs(0, 0, v);
system("pause");
return 0;
}
运行结果:
感悟与结论
网上大部分的面经都是成功经历,但是我希望我的失败经历也能让你有所收获。
1.公司并不需要高分低能的高材生,面试官招的是可以为公司真正提供价值的优秀人才,即使学历再高,仅仅是简历初筛的敲门砖。所以尽可能提升自己的实力,在面试中出色稳定的发挥才是最重要的。
2.面试结束,大胆询问面试官对自己面试表现的评价和建议,即使这次面试没过,也能根据建议在之后的面试中避免同样的问题。
3.如果没有发现自己的喜欢的岗位,并且没有实习经历(像我一样的小白),建议多看看热门实习岗位的岗位要求,尽早学习公司里面用到的技术栈,为下一次实习面试做好准备。
我是程序员阿浪,期待你的关注~