从3月6号在线笔试到3月8号技术一面二面,短短3天的时间,让我尝到了求职的不易,这是我第一次正儿八经参加面试,还是专业面试,3月7号晚上接到一面邀请短信的时候,有些高兴又有些担心,还差点失了眠。我做Web有一年半了,但是早期的时候,给自己定位全栈,学的东西很杂,也不深入,尽管勉勉强强做了些项目有一些成绩,但是真正开始了解前端也只是半年前,也是这半年我开始知道自己前端的水平还停留在5,6年前传统Web前端的地步。我是知道这学期校方要求去参加实习的,所以那时候突然就觉得很慌,自己一直以来的自信和骄傲都站不住脚了。于是,那段时间,我关注了大量的技术类公众号,每天坚持读一读,了解这个世界最新的技术尤其是前端的技术革新,以至于不会闭门造车;除此之外,我开始去打磨自己前端的基本功,我去找了《JS高程(第三版)》,一共700多页,闲暇的时候就读一读,这本书让我真正见识到了JS的厉害之处,想要学好JS还真不是件易事;我的CSS基础很弱,知识零碎不系统,为此我买了《精通CSS(第三版)》,大概400页,这本书的第三版也是今年二月底才上市销售的,我已经看了一半,内容很不错,知识系统而且有大量高级CSS的用法和实例,如果想提高CSS能力或是了解CSS的工作原理,我极力推荐这本书。
其实,做完笔试题目后,我是有些惊讶的,因为笔试27道题(25道不定项选择题,1道算法,1道JS高级API的用法),几乎80%的内容是有关JS的,虽然现在JS很火,而且基本上中台前台业务都有JS一力承担,但是作为Web前端实习生这个岗位,我觉得这样的试题比例有些偏颇了。我没记错的话,HTML的内容没有考,CSS的也仅仅考了一两道。幸好,我是先看的《JS高程》后看的《精通CSS》,要不然要惨了。凭着我的记忆,题目的内容大概有这些:
function proxy(){
//to do
}
var animal = {};
var rabbit = {
name : ''
};
proxy(animal);
animal.name = 'rabbit';
console.log(rabbit.name);
题目大概就是这样的,没有任何解释,给我一段代码,让我补全proxy函数,也没告诉我最后console.log
输出的rabbit.name
到底是多少?我猜想这里是让animal对象代理rabbit,因为兔子肯定属于动物嘛,用动物代理兔子,实现代理后,动物的属性变了会导致相应的兔子的属性也发生变化。那这不就是一个简单的单向数据绑定吗? 给animal对象加上一个访问器属性并让变化及时响应到rabbit对象上去就好了。实现这一代理,使用Object.defineProperty这个API就可以完成。
// 买卖股票最大收益问题
//假设有一个数组 , 如[1,2,3,4,5,6,7],数组中的第i项(i=0,1,2...)表示第i+1天的股票价格
//你可以任意的买入和卖出股票,以获取一定差价利润,但是规定在下一次买入之前你要卖出你的股票,
//且不允许同一天买和卖 ,现在要求输入价格数组,输出最大的收益,下面几个例子
//input : [1,2,3,4,5,6,7] output: 6 (第一天买入,最后一天卖出,收益最大)
//input : [7,1,5,3,4,2,1] output:5 (第二天买入,第三天卖出,第四天买入,第五天卖出,收益最大)
笔试大概就是个这个情况,总体来说,题目中等难度。下面说一下我的专业一面,面试我的是一个很年轻的小伙子,感觉比我大不了多少岁,(长舒一口气~)。事实上,如我料想的一样,一面不是很难,整个过程聊的还挺愉快,问的问题不多,我回答的比较多 (为了拖时间啊,问的问题越少出现翻车的可能性就越小啊) 。还有一个我觉得比较好的技巧,就是你在思考问题的时候,不要默不作声,不要把你的面试官凉着,你顺带着把你的思考过程说给面试官听,这样即避免了让面试官等你的尴尬,又显得你的水平比较高,而且即使一个问题你不知道如何回答,也不至于一句话也不说,这样可以给面试官留下好印象,会加分不少的。还有一点,请注意礼貌,保持轻松,保持微笑,我就是全程和面试官聊着天面试完的。一面里的问题,我个人觉得专业性的问题不多,下面是我记忆中的几个问题:
// 一个数组,例如 [3,30,34, 5,9],将其中的项重新组合,使得拼接起来的数字最大
//比如上面那个数组 ,最大数便是 ’9534330‘
// input : 一个整数数组 output : 最大的拼接整数
这个题如何解,不再详解,提示一下,利用基数排序的高位比较法,但是像 3 30 34 这几个数,高位都是 3 ,如何比较?提示一下,需要给 3 补一个低位 ,关键就是到底补几?
一面我只记得了这几个问题,一面后那个面试官小哥哥直接让我去扫码等待二面,心里喜忧参半。因为当时快5点了,马上今天的面试就到结尾了,这时候面试官都是想赶紧结束去吃饭的,所以形势对我很不利啊,但没办法啊,等了大概20-30分钟,人家直接来找我了,但是公众号显示的是还没到我啊(黑人问号???),虽然还没准备好,但只能硬着头皮上了(cry) 。果不其然,面试官看了我的简历后,然后问了我一个要吐血的问题,当场蒙蔽(cry),这个问题是:
面试我的是一个看起来稍微年长些的前辈,我此时的内心独白是 “ 卧槽 ,姜还是老的辣呀 ,我这是上来送人头的节奏啊 " ,不过我尽量往HTTP和TCP的方面扯了一点,面试官说不对,然后就给我简单解释了一下。我这里结合面试官的解释,和我下来后的查阅,总结为以下内容:
以上内容仅作参考,有更好的答案可以评论区评论,一起交流一下!下面接着正文说,
function a(notify){
setTimeout(function(){
console.log('1');
notify();
},150);
}
function b(notify){
setTimeout(function(){
console.log('2');
notify();
},100);
}
function c(notify){
setTimeout(function(){
console.log('3');
notify();
},300);
}
let queue = [a,b,c];
let num = 2;
function execute(queue , num){
//to do
}
题目中 a,b,c表示三个要执行的事务,queue是一个执行队列,num是可使用的最大窗口数(每个窗口每次只能执行一个事务),现在补全execute函数和notify函数,来正确调度这三个事务,最后的输出应该是 2,1,3 。
这个题有两个关键点,一个是队列的调度,先进先出策略;一个是事务执行完后如何通知其他待处理事务。 当时,我没有写完,时间关系面试官让我大概说了下思路,后来有一些小问题,面试官又带着我给我现场编了一手程,并给我解释,佩服!下面是我下来有尝试写完了的代码,仅供参考
function execute(queue , num){
var curNum = new Object();
curNum.num = num;
while(queue.length!=0){ //队列不为空就一直执行调度
if(curNum != 0){ //窗口不为空时,从队列中取一个任务
(queue.shift())(function(){
curNum.num++; //此时a,b,c中curNum共享一个内存地址,这样就达到通知的效果
});
curNum.num--; //队列中取出一个执行,窗口减一
}
}
}
总体来说,CVTE实习生专业面试的问题不是很难,主要是看一些基本的编程能力,逻辑思维能力以及一些项目经验。很多更专业的问题都没有问,比如HTML语义化,CSS布局,JS高级API,浏览器解析原理等这些我觉得可能要问的问题,结果都没问
今天,也就是3月10号,我刚去面试完hr面,感觉表现一般,不像专业面试那样更有把握。官方给出1-3工作日的答复时间,现在静待“佳”音吧!希望可以拿到Offer ,后期结果出来了在做补充!
今天是3月14号,星期四,CVTE终面后的第四天,结果终于出来了,很荣幸被CVTE认可了。回想这4天,心里还挺忐忑的,这是我第一次面试,而且HR面个人感觉不太好(下面详细说),所以今天当看到自己通过的时候还是很开心的。下面就HR面(也被称为综合面试),来说说大概的问的内容,我的回答保密起见就不再多说了。
其实HR面的面试官很温柔,说话也很平和,而且走技术岗的HR面一般相对也轻松。但是因为我理工科,嘴笨,不太会表达,虽然面试的时候气氛还挺好的,和HR聊的也挺开心的。但是下来自我反省了一下觉得自己的回答很平常,有的地方还结结巴巴的,可能是我的态度很好加了不少分吧。
基本上,比较印象深刻的就是这些问题,当然也问了一些其他的,有些忘记了。
——从面试厅出来后,我觉得回答不是很好,于是走向一进门的休息区,想要好好反省一下自己的回答。
——坐在沙发上的我越想越不对劲,对自己的回答后悔不已(就是上面那个问题,你懂的)
——抬头,看到旁边有位小姐姐,为了排解我抑郁的心情,我和小姐姐聊了聊
——我 : 我觉得我要凉了啊
——小姐姐: 为什么这样说?
——我 :因为我面试的时候说了,我还有另一家的面试,这不是有些凉了吗?
——小姐姐:那怎么会凉呢?如果你没有别的面试,反而会减分的
——我 :为啥?
——小姐姐:因为没有的话,说明你能力有问题啊,HR看问题是从多个角度的,你说这个无所谓的,不影响
——我一想,好像也是,我还在奇怪为啥这位小姐姐,会这么优秀,可以去当HR了
——这是,刚刚面试我的那位面试官出来倒水,和这位小姐姐打了个招呼
——小姐姐:这个小伙说他感觉自己凉了,因为自己说了有别的面试
——面试官:这个没关系的。 转身去倒水了
——我 ??? 一脸懵逼
——小姐姐:你是不是觉得自己已经凉了?我是面试官
惊了 , 后来和小姐姐又聊了一会就走了 ,真是奇妙而傻逼(我自己)的经历