个人背景:

迷茫受挫的大一:

楼主科班本科,大一尝试搞acm被大佬们虐惨了、参加院里的一个编程工作室又被拒了(有意思的是这个工作室后来来凉了)。。。 室友的成绩都比我好,觉得自己什么都做不成,陷入迷茫阶段,当时在河畔上看了很多干货帖子,最终准备投身开发。
例如:

初入前端:

选择前端开发是觉得有趣,后面越来越觉得兴趣真的是驱动长时间学习的主要动力。大一暑假开始学习前端相关知识,学习html、css、还有jquery,记得都是在w3cschool上学习,有了一点基础之后,大二开学参加了 星辰工作室 的秋招,工作室的面试至今让我记忆深刻,为数不多的两轮技术面试进来的,坎坎坷坷终于进入工作室有了学长的指引了。

加入工作室的大二:

在工作室跟着之前学长写的培养方案做一些小练习,自己也在学习一些有意思的:比如vue、微信小程序、尝试用nodejs,不过大多都是跟着网上的教程或者b站的视频跟着做,学的挺晕乎乎的。(这里能感觉到学习需循序渐进的重要性,基础不牢,早晚要回来补的)
大二的疫情给了很多时间自学,这段时间看了几本很重要的书《高性能JavaScript》、《你不知道的JS上》、《红宝书》、《JS语言精粹》, 同时在工作室完成了两个项目,两个项目分别用了vue、react两个框架,实际的项目实战把我从纸面上的“会代码”转变成了“会写代码”(有一个长时间开发的项目对成长很有帮助)
大二暑假一边写项目一遍看牛客网,这个时候看牛客网只是觉得想看看自己有哪些不足,针对性的不足的地方去补充。
学院大二的暑期实习集训很是垃圾、垃圾、垃圾,只能去垃圾华迪浪费生命,不能自己找就很离谱。

求职准备

大三找实习:

最初找实习的想法萌发于 工作室想推荐一个人去和学习合作的小公司实习,面试通过之后觉得或许可以去冲一冲大厂,这个时候开始准备简历,加上暑假刷牛客网上的面筋,基本80%的题能打出来,简单刷一点leetcode开始投实习岗位的简历,在河畔和北邮人论坛找到邮箱开始发简历,找学长学姐内推,先从小公司下手,第一个面试的是成都滴滴,面试很顺利(面筋),通过后,入职实习。
滴滴实习了三个月,后考虑转正,转战上海,面了上海字节基础架构,在上海实习了6个月离职秋招。
实习对成长的帮助真的很大,能够接触到正规的开发-部署流程,看到公司里大佬的代码怎么写的,横向比较同类型项目但不同的解决方案。

结果

八月中旬从字节离职开始秋招,这个时候已经错过了秋招提前批,只能准备秋招正式批了。(秋招提前批很多公司免笔试)
(实习过久,或多或者会耽误秋招的,也不要鸡蛋放在一个篮子里,身边也有转正失败的)

因为还没有挂过,其实也一直担心被挂,秋招心理压力还挺大的,还好有一起找工作的小伙伴相互鼓励。

时间: 集中八月投递完成笔试,面试集中在9月初的两周内。
秋招:

  • 字节转正offer
  • 阿里云offer
  • 快手生产效率平台offer
  • 网易云音乐offer
  • 美团基础平台offer
  • 京东(挂)
  • 准备投腾讯,结果内推被尼电学长拒之门外

补一句: 前端的ssp比例比后端的少,比如今年的阿里云开奖虽然yyds,但是前端最高也就看到27k,和后端30k遍地跑相比差多了。
11月开奖之后,除了美团大白菜 其他是sp/ssp

面筋

HTML/CSS

css实现垂直居中?
position有哪几种?对应的效果和用法
CSS选择器的优先级
BFC
SEO
标签
CSS画三角形
CSS动画
Iframe

移动端的三个视口
Download属性
CSS中的百分比

JavaScript

弱引用
基本包装类型
ES6新特性
判断类型的方法
Object.prototype.hasOwnProperty.call
原型链(你不知道的js上)?
变量提升
instanceOf原理
调用栈大小获取
浏览器的消息队列和事件循环
😵浏览器中的事件循环和node中的事件循环
setTimeOut & XMLHttpRequest
V8执行
代码执行流程
微任务和宏任务
async/await
Generator
new CreateObj操作做了什么
闭包
调用栈
垃圾回收机制
基于promise的简单封装
手写promise
事件冒泡和事件捕获
判断数组
箭头函数和普通函数区别
不能使用箭头函数的场景
😵原型继承函数Object.create
遍历对象的方法
requestAnimationFrame

React

长列表滚动到可是区域动态加载?
图片懒加载?
MV*模式(不考虑服务端渲染形式的MVC model2)
React事件系统
setState是同步执行还是异步执行(执行state的修改)
为什么引入Hooks? (from 官网
为什么不能给Hooks添加判断条件
🚩Hooks理解(摆脱生命周期)
?Hook中的闭包问题

浏览器

浏览器内核
CSS动画比JS高效
DNS-prefetch
性能分析
浏览器多进程架构
Perfromance怎么使用?
😵微信小程序相关?
浏览器的缓存(缓存的设置都是部署/后台来做)
输入url到渲染流程(浏览器角度)
JS操作对HTML解析器的影响
白屏
重排和重绘
减少重排/重绘的操作
window.onload和DOMContentLoaded有什么区别
MIME
😵跨域
浏览器对JS的限制
😵cookie和session

Node

Restful风格(http协议设计思想)
rector模式
node中事件循环

Nginx??

缓存优化(客户端缓存、服务端缓存)?
服务端开启gzip压缩?
计算机网络
CDN
状态码
HTTP0.9
HTTP1.0
HTTP1.1
Http2.0
HTTP3.0
Cookie
常见的数据提交方式

浏览器安全

CORS (cross origin resource sharing)
常见的数据传输格式
常用请求头解析:
三次握手四次挥手
为什么要三次握手?

工程化

前端优化方案
懒加载
埋点?
Polyfill
AMD和CMD区别

以上不全,有些简答常见没有记录。

网易云音乐

一面

  • 自我介绍
  • 为什么选择前端
  • 怎么学习前端
  • 字节实习工作介绍
  • 字节实习核心工作介绍
  • webpack构建流程
  • webpack如何实现各个模块之间的隔离
  • 为什么选择网易云音乐
  • 做题:两个路径之前的相对路径生成
  • 反问:
    这边具体的业务?
    岗位的定位是团队的哪个业务?

    二面

  • 自我介绍

  • 字节实习核心工作介绍(问的很细,有追问
  • 实习中工具的业务使用量
  • 实习中遇到的项目难点 (细、追问
  • react的理解
  • 受控表单和非受控表单
  • 正则熟悉吗? 不熟悉
  • 做题: 数组转对象 (考虑原型链影响)
  • 反问: 几面? 岗位的定位是团队的哪个业务?

    hr面

  • 自我介绍

  • 实习遇到难点
  • 自我评价
  • 有多少offer?
  • 选择offer考虑因素优先级?
  • 反问

    总监面

  • 自我介绍

  • 为什么选择前端?
  • 怎么学习前端?
  • 字节实习工作详细介绍(问的很细,从业务到代码架构)
  • vue和react比较
  • 老生常谈了
  • 从定位、思想、工程三个角度答
  • 项目最初创建如何技术选型
  • 不太会,扯了一波工程难度、社区方案等
  • 觉得有什么优势以及不足?
  • 平时看什么博客?
  • 知乎、medium、掘金、github、看书
  • 讲一个最近印象深刻的一个博客? (我说了一本书的某个章节
  • 接上面: 觉得 事件多路分解器 相对于 轮训 的优点
  • 本科学习的课程有没有在实际项目中应用过?
  • 说了关于编译原理在markdown渲染中的应用
  • 改造websocket中请求和响应无法对应时借鉴http2.0多路复用的机制
  • 实习中遇到的难点
  • 为什么实习中的项目使用websocket
    1.便于调试时开发人员使用network面板
    2.服务端推送功能
  • 反问
  • 加班
  • 团队定位
  • 团队中业务选择的自由度

    快手生产效率平台

    一面

  • 自我介绍

  • 字节实习详细介绍
  • 盒模型
  • 选择器优先级
  • 垂直居中方式
  • 跨域方式
  • cors详细说说、预检请求
  • jsonp原理(并手写)
  • 手写:拍扁数组函数
  • 手写:Promise.all
  • 使用 webSocket遇到的问题
  • 实习中构建工具的架构
  • webpack构建流程
  • babel了解吗? (不熟
  • react fiber的优化
  • fiber如何实现可中断更新
  • requestIdleCallback最初是如何实现的
  • 反问: 部门具体业务是什么?培养方案?工作时间?

    二面

    。。。
    前面有二十分钟的没有记录

  • 其他打包工具了解吗?

  • hooks理解
  • react和vue的比较
  • hooks缺点如何解决
  • h5适配方案介绍
  • 淘系这种适配方案有什么问题?
  • 最长连续子字符串
  • 反问

    三面

  • 自我介绍

  • 实习经历介绍
  • lowcode理解
  • 如何度量lowcode提供模块对业务的覆盖率
  • 线形代数中向量空间(忘了)
  • lowcode中如何实现组件联动
  • 图形化编程
  • 计算机和其他电器的主要区别
  • 最让我感到兴奋的计算机知识

    hr面

  • 自我介绍

  • 项目难点(问的很细)
  • 字节的优缺点
  • 手中offer情况
  • 能不能提前实习
  • 考虑offer因素排序
  • 反问

阿里云

一面

  • 面试官首先介绍部门
  • 自我介绍
  • 字节实习工作详细介绍
  • 插件可视化怎么做的
  • 如何定义组件颗粒度
  • lowcode介绍
  • 如何发布物料
  • 实习中完成的难点/亮点
  • 为什么使用redux
  • 为什么不在vue中使用redux,而在react中常用redux
  • redux源码理解
  • hooks理解
  • hooks如何替代了class component
  • map、 weakMap区别
  • 垃圾回收机制
  • 新生代垃圾回收机制算法
  • dom如何被渲染到浏览器中
  • 虚拟DOM的理解
  • 前端异步方法
  • Promise的构造函数是异步还是同步的
  • http1.0、 1.1、 2.0 区别
  • 场景题: 画一个五角形,如何给这个形状中某个区域填充颜色?(计算机图形学中点填充算法/线填充算法
  • 反问
    (一面很耐心,反问的解答都很详细)

    二面

  • 死锁

  • tcp三次握手原因
  • tcp四次挥手原因
  • 堆、栈区别
  • 堆、栈垃圾回收机制
  • 闭包是什么
  • 闭包有什么作用
  • 闭包为什么不能被其他直接访问
  • 原型是什么
  • 原型链
  • 原型链终点
  • vdom主要用来做什么
  • 浏览器渲染过程
  • 浏览器渲染时html、css、js优先级
  • 重排和重绘区别
  • 跨域指的是什么
  • 什么不受跨域影响
  • 跨域的解决方案
  • cors原理
  • react、vue比较
  • 实习中最艰难的挑战(三个)
  • 有拿到其他offer?
  • 如何学习新的东西?
  • 如何快速找到前端学习方法?
  • 反问

    hr面

  • 自我介绍

  • 为什么从滴滴转到字节实习
  • 两段实习的不同
  • 实习中最大的收获
  • 自己的长处、不足
  • 选择offer关注的因素
  • 平时如何学习,交流
  • 为什么选择前端
  • 其他兴趣爱好
  • 反问
  • 有其他 offer 吗

    美团

    一面

  • 自我介绍

  • lowcode平台介绍
  • 实习业务介绍
  • 实习中自己实现的功能
  • lowcode如何应对复杂场景
  • 项目中遇到的难点以及细节
  • hooks的理解
  • mobx和redux区别
  • 实现柯里化
  • promise理解
  • async await 直接return Promise问题
  • 事件循环
  • Map和Set和Array区别
  • array自身的方法和外部方法区别
  • forEach性能和for let 性能比较
  • 性能优化方案
  • 垃圾回收机制
  • node写过吗: 没有
  • ts: type和interface 区别
  • ts: 内置工具泛型
  • 反问

二面

  • 自我介绍
  • 字节实习介绍
  • 字节实习自己主要完成的工作
  • 实习中构建工具架构的介绍
  • lowcode工具的介绍
  • 如何计算dom元素相交点计算
  • 大学课程
  • AST
  • HTML如何编译成语法树
  • 三次握手
  • 四次挥手
  • 做题: 斜遍历数组
  • 反问

    三面

  • 自我介绍

  • 如何平衡上课和实习
  • 编译原理说的什么
  • 有限自动机
  • 瀑布模型
  • http发包流程
  • http头部都有哪些
  • 数据库第一范式 (???忘了
  • 如何学习前端
  • react hooks 源码
  • react router原理介绍(问了两遍,尴尬的我说了两遍)
  • 做题:最长公共子序列-II
  • 做题:连续子数组的最大和

    hr面

  • 问的很常规问题

    京东

    一面:

  • 自我介绍

  • 拿到offer了嘛
  • 为什么不留在字节

    二面:

  • 自我介绍

  • 字节实习经历介绍
  • 为什么不留在字节
  • 实习中遇到的难点
  • 实习中lowcode平台
  • 反问

除此之外:如果对某些领域有深入的了解是很好的加分项(用来面试耗时间
如: lowcode、webpack原理、微前端、垃圾回收、函数式编程、某些源码实现

结尾

早点规划,我觉得规划半年以上的都能拿到offer,早早背题,前端的算法考的都不难,leetcode至今我也只刷了六十几道;能实习就去实习,哪怕只是实习两个月,涨涨见识也好,主要是能看到自己的不足。
感谢河畔的上学长学姐经验分享,希望这篇也能有点帮助。