背景
字节跳动推荐架构前端实习岗位的面试经历。这次面试让我深刻体会到了实际工程经验的重要性,面试官不仅关注理论知识,更注重对实习项目中技术细节的深入理解。
一面
实习项目深挖
拷打实习经历
平常只是调接口,用SDK并没有仔细思考其中的细节,这下被拷打了
面试官对实习项目进行了深入的技术挖掘,暴露了我对项目底层实现缺乏深入思考的问题。
小流量实验系统
1. 小流量实验相关
2. 有没有了解过小流量平台是如何分配流量的,如果让你设计呢?
埋点系统深入
3. 埋点相关问题
4. 埋点是如何上报的?是发送一个请求更快还是请求一个资源更快?为什么?
5. SDK应该有什么功能收集信息?
6. 埋点本身的底层原理,如果埋点很多会影响页面性能吗?如何尽可能的减少埋点的影响?
网络协议
7. 浏览器里面同时能发送多少个HTTP请求?
8. HTTP1和HTTP2区别
9. HTTP和HTTPS区别
浏览器存储
10. 介绍一下Cookie的作用
11. 携带Cookie的前提
12. Cookie和LocalStorage区别
HTTP请求
13. 常用请求类型
14. GET和POST区别
15. 请求常见状态码,301和302区别
跨域问题
16. 跨域问题,跨域的场景下一个接口会发送几次请求?预检请求?
算法题
17. 数组扁平化
18. 打乱数组
19. 26进制转换
二面(记不太清了)
实习经验
1. 聊实习经历
2. 遇到过哪些难点?
框架对比
3. Vue2和Vue3区别
4. Vue和React区别
算法题
5. 最长连续递增子序列
6. 字符串全排列
面试感受与反思
主要问题
实习经验不够深入
- 只停留在使用层面,没有深入思考底层原理
- 对SDK、埋点系统等工具的实现机制缺乏了解
- 缺乏对实际工程问题的深度思考
工程实践经验不足
- 对小流量实验、埋点系统等业务场景理解不深
- 缺乏系统设计的思维和经验
- 对性能优化的实际操作经验有限
字节推荐架构面试特点
注重实际工程经验
- 深入挖掘实习项目的技术细节
- 关注对业务系统的理解程度
- 考察解决实际问题的能力
系统设计思维
- 不仅要知道怎么用,更要知道怎么设计
- 考察对复杂系统的理解和设计能力
- 注重性能优化和工程实践
基础知识扎实
- HTTP协议、浏览器机制等基础要牢固
- 算法能力仍然是考察重点
- 框架原理和对比分析
经验教训
实习期间应该注意的问题
深入理解项目
- 不要只满足于完成功能,要思考实现原理
- 主动了解使用的SDK、工具的底层机制
- 多问为什么,培养技术好奇心
关注业务系统
- 了解公司的技术架构和业务流程
- 学习小流量实验、埋点系统等实际业务场景
- 思考如何优化和改进现有系统
积累工程经验
- 关注性能优化的实际操作
- 学习系统设计的思维方法
- 多参与技术讨论和分享
面试准备建议
项目经验准备
- 对参与的每个项目都要能深入讲解技术细节
- 准备项目中遇到的技术难点和解决方案
- 思考项目的优化空间和改进方向
系统设计能力
- 学习常见的系统设计模式
- 了解大厂的技术架构和解决方案
- 培养从0到1设计系统的思维
基础知识巩固
- HTTP协议、浏览器机制要熟练掌握
- 算法和数据结构要持续练习
- 框架原理要深入理解
总结
这次面试让我意识到,仅仅会使用工具和框架是不够的,更重要的是要理解背后的原理和设计思想。推荐架构这样的业务部门,更看重候选人解决实际工程问题的能力和系统设计思维。
虽然这次面试暴露了很多问题,但也为我指明了努力的方向:
- 在实习中要更加主动地学习和思考
- 不仅要完成任务,更要理解业务和技术的深层逻辑
- 培养系统性思维,关注工程实践