最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 一年半前端人的求职路

    正文概述 掘金(贩卖焦虑)   2021-03-16   614

    首发个人博客 ?

    种一棵树,最好的时机是十年前,其次是现在

    【面试】2020年底面经

    个人情况

    2018.9开始实习,2019.7毕业于某二本。老东家前端团队100人左右,社招基本不算实习经验,算是一年半经验出去战斗。

    一、先说原因

    1、想看看外面的世界

    2018.9年实习 -> 2019.7转正 -> 2021.3离职,没见过外面的世界,自己说不上来老东家的一些好与坏,只是感觉在一家公司呆久了,不管是同事、环境、技术相关,都趋于一种小变化的节奏。至于这是好是坏,因人而异吧。

    2、个人成长

    写了很久的相似业务,感觉对自己的成长来说,帮助很小。一直是vue,一直是toB,一直都是his系统。近一年以来,基本也是自己在负责两个项目,很想和别人一起做项目,学习大佬的姿势。也很想做做其他的产品,或者toC等等,想让自己能接触更多的东西。打听了有赞技术挺强,用的也是大厂偏爱的React,自己想转这方面的,也是为了一个大厂梦,所以自己需要做出一些改变。

    3、生活的压力

    结婚需要房子,杭州的房价又不低,必须得去奋斗,说白了还是缺钱。提离职之前也大概了解了老东家的涨幅,下家给的翻倍,没办法拒绝。也是为了提高自己的base,为以后做做准备。

    二、面试结果(按顺序排)

    1、微点(offer)

    出去面试的第一家,3轮技术+一轮hr,给的薪资还可以,其他年终1-3个月,单休+五险一金最低,自己就不考虑了

    2、涂鸦(现场挂)

    信心满满的去现场面,被锤了一顿。次要原因是:我给的pdf简历,重点的地方用其他颜色标记了。结果涂鸦hr打印出来的简历这些标重点的都没了。面试官也很无奈,只能拣其他能看见的关键字问,我又不太熟,就只能GG了。给自己的打击挺大的。。。主要原因还是自己菜?

    3、海康(一面20mins挂)

    一面二十多分钟,然后给我挂了?

    4、端点(offer)

    一面电话,二面现场,三面HR电话。技术栈react,前端七八十人左右,给的薪资也还行,听说那边90%是3个月年终,本来是要去的,后面有了有赞的offer。

    5、有赞(offer)

    前后大概一周,年前最后一个工作日收到offer,自己提了离职。这里写下主要的问题吧,有想看我的回答的可以去博客瞅两眼【面试】2020年底面经

    6、字节跳动(一面1h20mins挂)

    年前拿了有赞的offer,准备去了。可惜的时候没有面过大厂。快到离职日期的时候,朋友帮我内推了一下字节,带着试一试的心态,简单准备了一下。一面1h20min,个人感觉没有想象的那么难,编程题没做好,是自己的问题,再加油吧??。

    面试中个人问题

    1、话太多

    一个问题自己能说好久,说着说着就跑题了。自己面试实习生,也遇到过这样的。这样会给自己在面试管的印象扣分。面试还是拣重点的回答,回答也不能太短,需要在中间给面试官提问的时间。

    2、答非所问

    不会就是不会,很多知识点,如果是没听过的,或者自己没去了解过的,就不要扯,这样只会拉长面试的时间。某些知识点不会,直接说。面试官就接着下一个问题了,也能让面试官更全面的了解自己。

    3、算法薄弱

    遇到算法题,总是想着用暴力法解决,写的代码有点难看。多去刷刷题,没有基础的,每种类型的刷几道简单的就行,像我这种比较初级的程序员,考的基本是简单的算法题。

    有赞面经

    一面电话 (1h)

    1. 讲讲最近写的项目
    2. 讲讲自己写的打印插件,vue-iframe-print,和其他打印方式对比。分页问题,默认背景图如何显示(知道有 css,但是记不住是那个),自定义样式等等
    3. 权限系统(RBAC),具体实现,接口权限校验。通用接口如何校验,可复用的业务接口如何校验
    4. 讲一讲OAuth
    5. 微前端(项目在用) 为什么要用微前端,和 iframe 对比了一下。
    6. 实现一个水平垂直居中?flex:1 含义? 一道场景题
    7. margin 塌陷?有没有遇到过其他 css 问题?
    8. vue 响应式原理
    9. 组件 data 为什么是一个函数?
    10. vue Object.defineProperty 缺陷?数组 7 个方法怎么重写的?
    11. dep 依赖搜集与 watcher 派发更新流程?dep 是发布者还是订阅者?怎么知道每一个 watcher 要通知哪一个 dep?
    12. keep-alive 原理?
    13. 讲一讲虚拟 dom
    14. 讲一讲vue diff 算法
    15. 为什么使用 key 能提升 diff 性能
    16. this 指向的理解?声明时和运行时指向?箭头函数指向?修改 this 指向?
    17. call,apply,bind 区别?讲一下实现一个 bind 的思路
    18. 函数柯里化概念,常用场景?
    19. 关于缓存的一些东西?如何提高缓存命中率?
    20. 详细描述一下输入 URL 到页面打开的过程,尽量详细些?
    21. 数组和链表在计算机中存储的方式?计算机中增加一个数组元素的方式?
    22. 你有什么想问我的?

    然后约了二面,视频 coding

    一面视频 coding(45mins)

    /**
     * 1. 实现一个函数,判断两个变量值是否相等
     *
     * 注意
     * - 数据类型不限于示例,尽可能考虑边界
     * - function 引用相等即可
     */
    const foo1 = {
      a: 1,
      b: "1",
      c: NaN,
      d: [
        {
          a: 1,
          b: 2,
        },
      ],
      f: {
        a: 1,
      },
      g: null,
    };
    
    const foo2 = {
      a: 1,
      b: "1",
      c: NaN,
      d: [
        {
          a: 1,
          b: 2,
        },
      ],
      f: {
        a: 1,
      },
      g: null,
    };
    
    function isEqual(target1, target2) {}
    console.log(isEqual(foo1, foo2), "isEqual");
    
    /**
     * 2. 实现 getValue 函数来获取path对应的值
     */
    var object = { a: [{ b: { c: 3 } }] }; // path: 'a[0].b.c'
    var array = [{ a: { b: [1] } }]; // path: '[0].a.b[0]'
    
    function getValue(target, valuePath, defaultValue) {}
    
    console.log(getValue(object, "a[0].b.c", 0)); // 输出3
    console.log(getValue(array, "[0].a.b[0]", 12)); // 输出 1
    console.log(getValue(array, "[0].a.b[0].c", 12)); // 输出 12
    
    /**
     * 问题 3
     * 将一天24小时按每半小划分成48段,我们用一个位图表示选中的时间区间,例如`110000000000000000000000000000000000000000000000`,
     * 表示第一个半小时和第二个半小时被选中了,其余时间段都没有被选中,也就是对应00:00~01:00这个时间区间。一个位图中可能有多个不连续的
     * 时间区间被选中,例如`110010000000000000000000000000000000000000000000`,表示00:00-1:00和02:00-02:30这两个时间区间被选中了。
     *
     * 要求:写一个函数timeBitmapToRanges,将上述规则描述的时间位图转换成一个选中时间区间的数组。
     * 示例输入:`"110010000000000000000000000000000000000000000000"`
     * 示例输出:`["00:00~01:00", "02:00~02:30"]`
     */
    function timeBitmapToRanges(str) {}
    
    console.log(
      timeBitmapToRanges("110010000000000000000000000000000000000000000000")
    );
    console.log(
      timeBitmapToRanges("110011000000110000000000000000000000000000001111")
    );
    

    二面现场( 1h20mins)

    上来就是两页纸,我人懵了。。。因为已经做过线上 coding 了,没做好心理准备~~~,也没复习这方面的。。。。自己这方面也比较薄弱,两题写了 20mins 左右。

    1. 大数相加: 给定两个字符串形式的非负整数 num1 和 num2 ,计算它们的和。leetcode 415. 字符串相加
    2. 写一个事件 Event 类,实现 on,off,emit,once 功能,同时 on 要支持 debounce。eg:on('click',function(){},500)
    3. 介绍下让自己成长最大的项目?
    4. 你觉得现在遇到的最难的问题是什么?
    5. 为什么要做微前端?
    6. 回到写的第二道题,说到了 setTimeout 设定的时间,函数能准确按时执行吗?setTimeout 怎么能做到准时?
    7. js 是单线程还是多线程?为什么?支不支持多线程?支持多线程的方式有哪些?node端多线程知不知道?进程和线程的区别?进程内存计算机如何分配?线程资源如何分配?
    8. 跨域的解决方案
    9. 如何实现移动端 1px 边框
    10. 什么是html 可替换元素?
    11. 一个图片对应多个 cdn 地址,如果第一个地址不能用了,需要换成下一个,怎么做?
    12. vue 生命周期详细描述下?改变组件 data 里面的东西会触发什么生命周期?
    13. vue2.x 响应式原理?Object.defineProperty 的一些参数?
    14. for in可以遍历出来那些东西?for in可以遍历数组吗?可以遍历出那些东西?
    15. vue组件 scoped作用?实现原理?其他的css隔离方案?
    16. 怎么用ES5 去实现ES6类的继承?
    17. 你觉得 eslint 有哪些规则比较有用?
    18. http1.1和http2的区别?http1.1中做了哪些项目优化?http1.1中用的哪些优化手段,会在http2中失效?http2.0还存在什么问题?http3了解吗?

    聊了近一个半小时,终于结束了~~~面试小哥说让我等会,告诉了我卫生间在那,就走了,面试体验还是挺不错的,有些不知道的问题。面试官会换种问法,实在答不出来也会跟你说答案。

    三面(50mins)

    1. 自我介绍
    2. 说一说最近一年做的最好的业务?你觉得你做的最出彩的地方是哪里?
    3. 处方打印,不同格式如何设置?
    4. 离线缓存 存在什么问题?
    5. 讲一讲权限系统?除了RBAC,还了解哪些权限设计吗?RBAC的优点?
    6. 给你一个需求:除了预设角色,某个人可以单独做其他的事情,怎么办?
    7. 讲一讲你们做的微前端? 父应用如何加载多个子应用? 路由整合是如何做的?
    8. 讲一讲局部打印的实现?
    9. api-proxy是如何实现的?业务越来越复杂,nginx是不是每次都要改?怎么解决?怎么做一个全局代理?在本地如何调试线上代码?
    10. 讲一下项目中定制化需求如何处理?更优雅的方式?面试官举了一个有赞的场景例子:关于不同商家后台,某个商家多了一个菜单?某个商家在通用页面A中有特殊的两个按钮?如何处理这种个性化的问题?深入一点,如何把个性化需求开放给其他商家自己开发?
    11. 如果让你写一个single-spa,你怎么做?两个子应用的app.js如何切换?js、css如何隔离?作为攻击者,如何突破用proxy实现的一个沙箱环境,或者说子应用如何才能访问父应用的window对象?
    12. 讲一讲项目中的全键盘操作?keyup监听怎么做的?addEventListener第三个参数?如何阻止冒泡事件?怎么阻止部分按键?
    13. 讲一讲oAuth 2.0
    14. 你为什么想出来看机会?对下一份工作期望是怎么样的?你现在是怎么学习的?
    15. 你有什么想问的?

    接着就让我等一下,估计是去讨论去了,自己也知道,接下来如果有hr来,就80%过了。找个理由说hr不在的,基本就凉了。。。

    四面(HR 40mins)

    等待的时间是非常煎熬的~ 一会(忘记了是多久,差不多10分钟?),HR小姐姐来了,换了个位置,开始面对面谈。

    1. 刚刚聊下来感觉怎么样?
    2. 对自己1-3年的规划
    3. 前端方面有没有犯过比较大的故障?绩效好的情况下为什么要考虑机会?
    4. 你觉得自己还能在现在的业务中成长多少?或者说你还能为现在的业务做什么?
    5. 平时自己的学习方式?
    6. 你希望自己3年以后能达到什么水平?你觉得自己和P6差距在哪?
    7. 平时的工作节奏?
    8. 你对加入有赞的一些期待是什么?薪资是怎么样的期待?有没有其他offer?
    9. 你有什么想问的?

    问了下什么时候能给结果?也说了自己有三个offer,年前需要给答复,HR小姐姐说,明天尽快。

    等我到门口的时候,又问了下离职时间。这个时候自己才感觉有戏~~~~

    拿offer & 提离职

    第二天中午,hr给我电话了,下午发了满意的offer。接着自己就去找主管提离职了,主管说有点突然,他要开车回家,就搁置了一下,到晚上的时候,自己又主动找了下主管,当时也没说出结果,最后晚上十一点多,大领导打电话来问我离职的原因,自己说了成长和钱的问题,最后和主管约定了离职日期。

    一些感想

    离职想法产生之前,自己并没有太多准备。遗憾的是没有把大厂都面一遍,字节是离职前一周的面的,没什么准备,卒。网易找了内推,hr说资历太浅,卒。脉脉上找了个阿里内推,给我投个H5技术专家,气死人?,卒。总体来说,没有个三年经验也挺难的,我2021.2投的,算是一年半经验,很多大厂简历都过不去。

    幸运的是,年前拿到了offer,避免了年后的激烈竞争?

    学习资源

    • 人人都能看得懂的Leetcode力扣刷题教程合集 不错的算法视频讲解
    • 种一棵树,最好的时机是十年前,其次是现在 分享个人学习的东西
    • 字节飞书的学习计划 - 超清楚(必看) 字节前端知识梳理,很清楚,建议收藏
    • 冴羽的博客 淘宝大神总结的前端基础
    • vue 源码分析 个人感觉讲的不错,带你从头实现一个vue
    • 前端面试之道 很全面,啥都有。可以来一波系统复习
    • 大厂面试题每日一题 没事就来刷一刷
    • awesome-coding-js 用JavaScript实现的算法和数据结构
    • 前端进阶积累 包含算法题,可以看看
    • 拉钩各种一块钱的课 - 良心推荐 不想买的,可以借号给你

    内推(非996)!!!

    基本信息

    HC真的很多,我所在的部门前端20个HC,其他部门也可内推

    • base:杭州西湖
    • 邮箱:wujunjie@youzan.com
    • 微信:V798595965
    • 福利:每月月底发薪!每月980补贴!五险一金最高比例全额!14薪!
    • 配置:Apple 13寸M1芯片16+256GB ,2K显示器,机械键盘
    • 节奏:周35,六点多就走了,124,九点跑,企业打车免费不限额
    • 其他:7天年假,每年加1天。超大健身房。全程跟进简历进度

    有其他问题都可以加微信问我

    岗位要求

    • 资深前端开发工程师/技术专家 点击查看详情
    • 技术栈:React + TypeScript + Node(不强制技术栈)
    • 简历写明:毕业学校和时间、GitHub个人地址、个人博客等

    一年半前端人的求职路


    起源地下载网 » 一年半前端人的求职路

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元