科班小前端的大厂求职路

本人今年研一,两年制硕士,今年实习。本科前半段迷茫在科班的基础理论学习和课程作业中,大一大二对前端一无所知,没想关心太多,只想保研就好。大二暑假参加一项学校项目,第一次接触前端,一脸茫然,发现软件工程还有很多值得探寻的地方。大三保研形势已定,于是参加各种比赛,摸索自己的兴趣所在,终于在一系列比赛种尝到了前端的甜头——原来好看的页面这么吃香(当时就是这么粗浅的认识),于是决定正式入坑,带着起初“前端能让页面好看”这般粗浅好笑的见识,打开新世界,一步步丰富自身,直到今年春招刚好两年半。春招战线很长,从二月中旬一直延续至今,赛程仅刚好过半,目前取得初步成果:

  1. 网易雷火三轮技术+HR,拿到offer。
  2. 字节跳动教育业务三轮技术+HR,拿到offer。
  3. 美团两轮技术,leader就给了通过,在等offer。
  4. 阿里淘系目前三面结束,被大leader全方位调教,现在准备交叉面,无论成败收获都很多。
  5. 腾讯PCG到第四面,战线很长,不知能否过关。

在这里把分享面经,附带我自己的简要回答和思考。对于基础问题,大家可以查漏补缺,建议收藏;对于场景或者高层思考型问题,大家参考即可,这些都是面试官根据自己部门或每个人的履历定制的。轮次越多,问题也就越偏向高层,需要大家更多的总结思考,找到平衡,甚至再生产。

网易雷火三轮技术+HR

一面

一面一般都是基础,在回答问题的基础上,最好能主动发散广度深度,面试官印象会很好。

  • 介绍下自己并聊聊项目。

    • 这个因人而异,要大方得体,讲出重点。主要围绕项目是什么,为何要做这个项目,解决了什么痛点,你在其中负责了什么工作,遇到并解决了什么问题,如何和不同模块合作,把控了多少架构。后两点需要一定思考和积累,把前面的讲清楚能满足一些面试官,但是大厂面试官常常会希望你说一些架构和整体方面的理解,是加分项。

  • 如何用await和async写一个睡眠函数?
function sleep(time){
    return new Promise(function(resolve,reject){    
        setTimeout(()=>resolve('over'),time);
    });
}

async function run(time){
    let result = await sleep(time);
    console.log(result);
}

run(3000);
  • 说说inline元素和inline-block元素的区别。
    • CSS基础题,我从布局方面不换行和尺寸方面inline设置宽高无效,inline-block可以来讲,还发散了一些CSS元素体系讲了讲。
  • inline元素的margin有用吗?
    • 是一个很刁钻的切入口,大家常常忽略对inline元素的研究,还好我平时比较喜欢捣鼓CSS,其实再默认水平方向的文档下,设定水平方向margin是有效的,垂直方向无效。
  • 讲讲html如何添加事件监听,事件处理有哪些阶段?
    • 添加事件监听很简单,document.addEventListener就能直接来,事件阶段按时间顺序有捕获,目标,冒泡三段。
  • 说出三个你知道的不常用的html标签。
    • 一般都问那些常用的,结果面试官反其道行之,很佩服。当时只答出