先说结论,已经去了喜欢的公司,收到了几家喜欢的offer, 面经在最后
前言
我在10月底从鸭鸭离开后,想着趁这次机会好好去做下之前一直想做的事情,于是,我独自一人踏上了新疆的旅程。 我的计划是先玩一个月,期间读一两本书,再休息一段时间(做做自己想做的), 直到无聊,再去找工作。 所以,一开始我就能接受两三个月不上班,奥, no, 我就是如此计划
在做这个决定之前,并不是我一时的冲动,而是内心一直的渴望,我渴望一个人去看看,即使可能孤独,我也不想浪费这个时机。 所以这是一次勇敢的出发,当然一切未知。所幸的是,我是一个幸运的人,一路上遇到了非常多热情友善的人,而且看到了巨好看的风景跟巨好吃的美食。
这手抓饭巨香
再南疆之行散团后,百无聊赖的我突然想回去了,有点想家,(可能就是工作久了就特别想去外面看看, 闲得时间久了又想做点事情) ,于是我买了喀什到杭州的机票,回来了(又去了趟广州hhh), 也给自己留了一个遗憾(北疆),也是下次再去的理由
准备
既然准备要面试了,欲先善其事, 必先利其器, 准备工作必不可少,我的计划跟策略如下
简历
首先是需要准备一份简历,这个其实蛮重要的,项目就突出什么情况下解决了什么问题,效果怎样,当然这个每个人都不同,主要就是看你平时对业务的熟悉,以及为什么你要选择用这些技术栈去实现。 也可以简单说下你的收获。
还有就是个人介绍模块,除了你的联系方式外(电话,wechat, 邮箱),可以说一段话来介绍下自己,以及你的博客,github之类的。可以让面试官有其他的途径去了解你。如我的
before
after
可能有点二逼啊,但意思就是这个意思
基础知识的梳理
这块我的思路是平时就有意的去积累, 构建自己的知识🌲 , 什么是树呢? 就是知识不是一个单个的点,而是可以互相联系起来的,可能最开始我们学习一个东西的时候,并不理解,但是随着我们经历的变多。再反过来去看,可能会有不一样的理解。就比如闭包,我之前并没有清晰的认知,一知半解。 但是当我了解了redux源码,以及什么记忆函数,一些设计模式之后,发现闭包是可以实现这些高级的技巧。那这就是联系。
关于这点,我想说的是,勿临渴而掘井, 越早行动起来越好。去构建自己的知识树,并尽可能联系运用在现在的项目中
前端小白半年准备,成功进入BAT · Issue #16 · brickspert/blog 可以看ahooks作者砖家写的,我觉得很棒了
chatgpt
chatgpt是我准备面试期间用的最多的工具,我一般会这样用(ai助理)
- 让其作为一个面试官,我来应聘资深/高级前端,来对我进行面试
- 询问一个知识点的概念
- 给出一些算法/笔试题的解法
- 了解一些方案,mock一些数据
大概是这样,你可以用它每一天给你发起一次模拟面试,然后你可以尝试回答他提出来的那些问题,如果有不会的,你可以问他,并理解,我会选择去查对应的书(js 高级程序设计, es6 , vuejs设计与实现等)并做到理解
弱点补偿
这个很重要,你要明确自己的弱点在哪里,比如,表达 ? 沟通 ? 或者 心态 ? 去做一些练习,当然,这个很简单,你就去做之前羞于去做的事情就好了,比如主动请妹子吃饭,主动组织活动,演讲,爬山等等
也可以看书,思考,写一些ppt, 做一些分享,将自己的想法体系化,结构化。就这样,我在新疆路上一个很重要的收获就是, 如果什么都觉得尴尬,那可能会错失一些美好的瞬间
面试
投递
准备一周就差不多了,可能三四天左右就行,你可以投递简历了,我的策略是
- 先小后大(心仪),来找找感觉。
- 心仪的找人内推,熟人同学 or 脉脉好友, 因为这样他会帮你过下简历,看看匹配度,让你修改,或者给你侧重点
复盘
然后每次面试后都及时的复盘, 哪怕你不想去,哪怕这家公司给你留下不好的面试体验,不要紧,反思我,如何能做的更好。 当然,我面下来,很多公司体验都非常棒,尤其是腾讯,阿里,海康,基本很有礼貌,而且问题由浅入深,很有深度广度。
复盘就是要明确这次面试过程中,自己那些是欠缺的,那些没有回答上来,原因是啥,我建议最好一面二面可以主动去问面试官这次面试怎样,友善的面试官一般会告诉你,那些不错,那些可能不太好的地方,以及,他们需要的是怎样的人。有了这些信息,你可以再去查缺补漏。完善自己的知识库。
交流
本质上面试就是一个交流的过程,技能是一方面,能聊到一起,是否是对的人,可能也很重要,你的初面很可能就是你以后的tl或者同事,所以你需要交流来让别人了解你,基本上就是言简意赅、礼貌得体、清晰悦耳
心态
现在马上过年了,招聘的企业也不是很多,可能经常简历经常石沉大海,多天杳无音讯。 以及面了,但是多天没结果。 很可能会自我怀疑。 进而失去信心。那这里,就是我要重点分享的。
面试,是双方选择的过程,跟你炒股一样,你在选择一家伟大的公司,别人也在选择你。除了运气之外, 能做的,就是准备好,不断的进步, 越来越好。
面对上面的情况,我一般会出去一个人逛逛, 跑跑步。听听歌。然后要么就去看看书。周末了,爬爬山,及时的调整过来。
我在面试腾讯的过程中,觉得每一轮都好慢,可能有时候你觉得聊的不错,但就是迟迟等不到下一轮,而下次你可能觉得面的一般,却又很快收到了下一轮。 我都经历过,我给自己的说法是,把每一次的面试都当作是初试来准备,来看待,即使拿了offer, 也当作什么都没有,只有一无所有,才会竭尽全力。 这就是我的心态。 我很自信,源于我明白,重要的是心态上一定要坚信自己的价值。 哪怕技术不如人,但是我依旧有长处的地方。坚信。
面经
这块我觉得从两个方面去聊,一个是, 从产品(投资者)的角度去分析行业,公司。 一个就是具体的面经
分析行业
首先,你要明确自己要去什么公司,一般人可能没有这个概念,我也没有,但是,我眼光独到,我选择鸭鸭就是我看好并喜欢这个行业,而且,我运气不错。 我可以列下自己的,作为参考
- 物联网 (海康威视(萤石网络)、涂鸦、 小米IoT)
- 新能源车企 (零跑、 极氪、 吉利)
- AI、金融 (蚂蚁)
- 直播电商 (无忧、遥望科技)
- bat
可以去搜索对应的招股书,新闻,以及各大投资证劵机构的pdf。 (直接google xxx.pdf)就行
我想以巴菲特致股东的信中的话来说明这个过程, 一个投资者如果想成功,必须将两种能力结合在一起,一是判断优秀企业的能力,一是将自己的思维和行为与市场中弥漫的极易传染的情绪隔离开来的能力。
坚持与合适的人、合适的企业打交道,与人为善、良性互动、相濡以沫、相互尊重、相得益彰、交相辉映。
面经
阿里/腾讯/海康/聚水潭/曹操/吉利/大华/遥望/蚂蚁... 面试 (建议直接问chatGPT)
- 请描述CSS中的层叠(Cascade)和继承(Inheritance)规则,以及它们在实际开发中的应用。
- flex布局
- 原型链,闭包,this (之间的联系)
- 讲一讲闭包陷阱
- 事件轮训
- 讲一下 promise (原理, all 缺点, allSelect)
- ts和js的区别 , 为什么用ts
- weakMap跟map区别,深拷贝? 记忆函数?
- 什么是异步编程?如何处理异步操作?
- 解释模块化开发的概念,并比较CommonJS和ES6模块的区别。
- 说一说浏览器 HTTP 缓存? 项目里你用什么保证来请求到最新资源? 根 index.html 下有没有缓存?如何保证加载到最新的资源?
- 讲一讲跨域吧。同源协议和同域协议是什么?不符合同域协议会触发跨域吗?
- 前端安全(或者说质量管控) github.com/brickspert/...
- url 输入到页面展示, cdn ? 哪一些操作会触发重排和重绘 ? 如何减少?
- 三次握手,四次挥手,为啥?
- mqtt
- 蓝牙ble,wifi, nbiot , zigbee
框架
- 聊一聊现在的框架react, vue
- 谈一下你对虚拟dom , 渲染器的理解
- diff 策略是什么?
- react fiber 架构解决了什么问题? 为啥, fiber节点的属性
- 为什么 hooks 不能在循环判断等语句内使用?
- React Next SSR 如何实现的?
- 了解哪些全局状态管理库?redux 的设计模式是? redux原理(www.yuque.com/fe9/basic/c...)
- Webpack 打包的流程? loader 和 plugin 的区别?
- react的话有什么优化的
- class跟func组件你的理解
- angular里面的依赖注入咋回事
- React 中是如何处理事件机制的?
项目&其他
- 微应用原理, js隔离,css隔离,通信有没有了解过除了quankun其他的框架, 微前端性能问题 ?
- 前端如何排查内存泄漏的问题, 如何优化卡顿 (什么情况下会导致内存泄漏), 如何解决 。(常见的内存泄漏场景有哪些?
- 前端性能优化
- 怎么监测到js报错 (项目稳定性) 埋点的意义 , 前端白屏了怎么办
- 代码风格指南?
- 小程序相关 (基本原理 + ray的实现思想), 你怎么看小程序?
- 你觉得你在团队中是一个怎样的角色
- docker
- 网关
- oop 面向对象设计思想
- 项目中的一些难点,以及怎么样解决,自己的思考
- 服务端渲染
笔试
- div拖拽
- promise.all
- eventEmmiter
- 找到数组中最多出现的元素,并返回下标 (map结构) ,查找字符串中出现最多的字符和个数
- 列表转数结构,数转列表 , 说下实现的复杂度, 递归
- 二分法查找
- LRU的实现 (最近最少使用)
- 实现一个渲染器将虚拟dom转为真实dom (参考 vuejs设计与实现这本书), 当然也可以实现服务端渲染ssr的
- 判断括号字符串是否有效
- 版本号比较
- 数组对象分类,并排序
大概这些,说到最后,自己已经三四年没有准备过了,很多都不知道怎么下手,前同事,面试官给了我很多帮助,我可能写的不好,欢迎大家交流。加我,一块玩耍hhh