记录一下自8月中旬到职之后筹备以及找工作的经验,会提到集体感触到的招聘状况和一些前端面试题.会依照以下几个点来开展.
  • 背景信息(集体相干)
  • 整体找工作的感触
  • 整体节奏(工夫安顿)
  • 面试题整顿(含算法题)
  • 感悟和总结

背景信息(集体相干)

一般二本,计算机专业,三年工作教训(一年爬虫,两年前端+全栈),前端岗位,技术栈次要是vue.js + node.js.简历上略微好的点应该就是在猎豹的工作经验和爬虫的工作背景.整体看来就是很个别般的.

整体找工作感触

在经验整个过程之后对找工作前的一些点的思考,心愿缩小一些同学对往年待业局势的误判.

  • 整体待业局势的感触

因为受疫情影响,整体经济大局势是不好的,很多企业都在裁人,所以整体hc缩小,工作不好找,这是在脉脉或者v2ex论坛外面很多人的反馈.然而我集体感触是往年招人的还是挺多的,就拿我的状况来说,我找工作始终用的boss直聘(boss招聘打钱),下面有300+条音讯都看不过去(这个有点小窍门,上面会提到),只有第一周我回了一些比拟中意的hr简历,剩下的两周都没有再投简历.
联合约面试的状况来看,招聘次要集中在滴滴,美团,字节这三家.boss上发消息的10个外面有6个字节的.美团换着部门面面了三次,滴滴面了两次.面了三周的工夫,基本上每天两场.最初陆陆续续拿到了6个offer.
起初我也剖析了,整体hc缩小是不假,但可能是10个小厂缩小了20个hc,一个大厂涨了12个hc这样的状况,hc少了然而更集中了.
我的论断就是,有些事别老听他人说,要小马过河,本人去试试.
另外,我也有点困惑,往年找工作的这个状况到底是3年的工作教训带来的还是猎豹的工作经验带来的.

  • Github我的项目star数和集体博客对面试的影响

我在github上有一个500+ star的我的项目,还有平时有写博客的习惯,我从改简历开始就推敲这些点该怎么表白更好,只管我在每次自我介绍的时候都会提到在开发之余我会写写本人的我的项目和博客,然而目前github我的项目根本没有人问的,博客也只有百度5面和去哪儿二面的时候才有问到.
所以,这部分怎么说呢,属于精益求精的,要搞好外围能力,不要把这些看太重,除非你这这两点十分十分优良.

  • 对于视频面和现场面

视频面的确不便,面试成本低,写代码也更不便,然而呢,视频面节奏比较慢,基本上不会一面之后立马二面,我见过最快的视频面隔了一个小时进入下一面,其余的都隔着1-3天不等.不如现场面畅快,往年的现场面基本上都能当场轻松的拿到offer.

  • boss上遇到的一些问题

    • 我发现把boss的求职状态设置成[退职-暂不思考]比设置成[到职-随时到岗]更有用,设置成[退职-暂不思考]而后每天还失常的刷boss会收到更多的音讯,集体感触,无理论根据.
    • boss上有一部分人,不是hr也是不是team leader,然而也会找你要简历,这部分八成是赚内推处分的,我的简历就被莫名其妙的推过几次,对于这种状况我模棱两可,然而如果你有确定的内推人的话,最好甄别一下这种状况,把内推处分留给小伙伴.

整体节奏(工夫安顿)

第一周,次要用来回顾一下基础知识,看了下一些比拟重要的知识点,没怎么看面试题,面试题基本上都是通过面试来查漏补缺的.同时开始约下周的面试.
第二周,开始面试,根本都是视频面,上午一场下午一场,好留进去工夫整顿遇到的问题.周六日根本不约面试,同时开始约下周的面试.这周的面试基本上全挂一面,惨不忍睹,当然也有拿offer的,作为保底.这不重要,重要的是查漏补缺,找出本人筹备的和面试的差距.好对症下药.
第三周,面试节奏加快了一点,面试题都过了一遍了,所以这周基本上都能进二面了,也拿到了一些offer,这时候去推掉第二周拿到的offer.
第周围,这时候面试节奏更慢了,基本上是第三周面试进入比价靠后的面试和一些长期约的面试.这时候拿到的offer之后去推掉上周的offer.这周之后基本上面试完结,找工作告一段落,纠结纠结手里的offer,作出决定,而后等着入职就行了.

面试题整顿

惯例知识点

在第一周的时候整顿基础知识的时候偏重回顾的一些知识点,这里列一下

  • js基础知识
  • 从输出url到取得页面经验的所有事件(越细越好)
  • 原型链
  • 继承
  • es6新个性
  • DOM事件和事件流
  • 盒子模型
  • 事件循环
  • BFC
  • Flex
  • Promise原理以及手写代码
  • vue响应式原理
  • vue虚构dom & diff算法
  • 前端性能优化
  • 防抖和节流
  • HTTP缓存
  • 常见算法(排序洗牌等)

面试中遇到的高频题(跟下面会有重合)

  • 事件循环
  • 原型链
  • vue响应式原理
  • HTTP缓存
  • 防抖和节流
  • vue3解决什么问题
  • Vue 为什么不能检测数组和对象的变动,怎么解决(为什么通过索引操作数组不能触发响应式)
  • vue router原理
  • v-model实现原理
  • vue.nexttick
  • https的过程
  • 性能优化
  • promise(基本上要求能够手写Promise.all办法,这个问的最多)
  • async/await
  • 从输出url到看到页面经验的所有事件(越细越好,这道题知识点十分多)
  • 跨域造成起因以及解决方案
  • 深拷贝和浅拷贝(也会问到JSON.stringify JSON.parse这种计划的弊病)
  • 箭头函数和一般函数有什么区别
  • 最近在看什么新技术

低频然而须要留神的面试题

  • CSRF & XSS
  • chrome设置小于12px字体
  • node和浏览器事件循环有何不同
  • webpack tree shaking
  • map & set
  • 前端有哪些技术(腾讯面试题,面试官会顺着你说的技术一个一个开展问)
  • 实现一个call/bind(call,apply,bind区别)
  • get 和 post 的区别
  • BFC
  • yield
  • 如何给localStorage加上max-age性能
  • Object.defineProperties都有那些参数,以及参数解释
  • requestAnimation
  • 手写原型链和js各种继承模式
  • 让你从新做你做过的我的项目有什么能够改良的中央
  • 让一个元素隐没的几种做法,有何不同,对子元素的影响
  • 如何遍历对象(接下来会问有何不同)
  • 搜寻框输出须要留神的点(其实还是在问防抖)
  • 原生实现inserAfter
  • 事件委托利用场景,e.target和e.currentTarget区别
  • HTTP缓存,对应字段,cache-contron都有那些值
  • new过程都产生了什么

面试遇到的算法题

  • 排序算法(冒泡,快排)
  • 洗牌算法
  • v1.2.3 v0.3.0 这样的版本号比大小(找简略办法,不要轻易写一个循环的版本)
  • 广度优先遍历
  • 用O(n)的复杂度合并两个有序数组
  • 数组生成树形构造
    var arr = [        { id: 1, value: "节点1", p_id: 0 },        { id: 2, value: "节点2", p_id: 1 },        { id: 3, value: "节点3", p_id: 1 },        { id: 4, value: "节点4", p_id: 2 },        { id: 5, value: "节点5", p_id: 0 },        { id: 6, value: "节点6", p_id: 5 },        { id: 7, value: "节点7", p_id: 6 },        { id: 8, value: "节点8", p_id: 6 },    ];    // 输入    [{        "id": 1,        "value": "节点1",        "p_id": 0,        "children": [            {                "id": 2,                "value": "节点2",                "p_id": 1,                "children": [                    {                        "id": 4,                        "value": "节点4",                        "p_id": 2,                        "children": []                    }                ]            },            {                "id": 3,                "value": "节点3",                "p_id": 1,                "children": []            }        ]    },    {        "id": 5,        "value": "节点5",        "p_id": 0,        "children": [            {                "id": 6,                "value": "节点6",                "p_id": 5,                "children": [                    {                        "id": 7,                        "value": "节点7",                        "p_id": 6,                        "children": []                    },                    {                        "id": 8,                        "value": "节点8",                        "p_id": 6,                        "children": []                    }                ]            }        ]    }]
  • 数组L型输入
// L型输入var arr = [    ['1', '2', '3'],    ['4', '5', '6'],    ['7', '8', '9'],];// 输入大抵程序 1 4 7 8 9 2 5 6 3
  • 数组求排列组合
// 数组排列组合var arr = [    ['A', 'B', 'C'],    [1, 2, 3],    ['X', 'Y', 'Z'],];// 输入相似 A1X A1Y A1Z ...
  • 实现一个函数 find(obj, str),满足
var obj = {a:{b:{c:1}}};find(obj,'a.b.c') //1find(obj,'a.d.c') //undefined
  • 乒乓球较量判断输赢(这个表白起来吃力,然而是个贴合理论开发场景的例子.不常见,然而不难)

这些是能回顾进去的局部,算法题广泛没有那么难,递归比拟多,另外能用简略的形式就用简略的形式,这样能力凸显能力.

感悟和总结

  • 肯定要防止相似面试官问你我的项目中遇到什么问题没,你说没问题都解决了这样的答复,根本必挂(网易二面教训)
  • 下面的面试题同一个问题会有不同的表述,所以要认真审题,搞清楚问的知识点,防止面试官问在第三层,而你只答在第一层这样的事件,太拉跨(腾讯一面教训)
  • 找工作是个概率的事件,面试的次数多了就会中
  • 内推有时会可能会有意想不到的加持(面作业帮的领会)
  • 日常咱们要注意构建本人的基础知识体系,这样在面试筹备筹备的时候不必恶补太多基础知识

最初心愿在找工作的同学放弃心态,都能顺利找到现实的工作.